@next-bricks/ai 1.16.2 → 1.16.3
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/{2159.78a33336.js → 2159.efbfe3f1.js} +2 -2
- package/dist/chunks/{2159.78a33336.js.map → 2159.efbfe3f1.js.map} +1 -1
- package/dist/chunks/{5425.00e59631.js → 5425.fdd269c2.js} +2 -2
- package/dist/chunks/{5425.00e59631.js.map → 5425.fdd269c2.js.map} +1 -1
- package/dist/chunks/{7041.6b19ff9b.js → 7041.1c3e361e.js} +2 -2
- package/dist/chunks/7041.1c3e361e.js.map +1 -0
- package/dist/chunks/{774.b65640d6.js → 774.17d37fdf.js} +2 -2
- package/dist/chunks/{774.b65640d6.js.map → 774.17d37fdf.js.map} +1 -1
- package/dist/chunks/{chat-agent.732a50fd.js → chat-agent.ac416200.js} +2 -2
- package/dist/chunks/{chat-agent.732a50fd.js.map → chat-agent.ac416200.js.map} +1 -1
- package/dist/chunks/main.259c8d7a.js +2 -0
- package/dist/chunks/{main.ba01c37c.js.map → main.259c8d7a.js.map} +1 -1
- package/dist/index.3d543f97.js +2 -0
- package/dist/{index.09ae6f20.js.map → index.3d543f97.js.map} +1 -1
- package/package.json +2 -2
- package/dist/chunks/7041.6b19ff9b.js.map +0 -1
- package/dist/chunks/main.ba01c37c.js +0 -2
- package/dist/index.09ae6f20.js +0 -2
package/dist/bricks.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_ai=self.webpackChunk_next_bricks_ai||[]).push([[2159],{2159:(e,t,a)=>{a.r(t),a.d(t,{default:()=>s});var n=a(8769),l=a.n(n),r=a(6430),c=a(
|
|
2
|
-
//# sourceMappingURL=2159.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_ai=self.webpackChunk_next_bricks_ai||[]).push([[2159],{2159:(e,t,a)=>{a.r(t),a.d(t,{default:()=>s});var n=a(8769),l=a.n(n),r=a(6430),c=a(8369),m=(0,r.wrapBrick)("eo-link");function s(e){var{data:t,params:a}=e,r=(0,n.useRef)(null),s=(0,n.useMemo)((()=>null!=t&&t.length?function(e){var t,a=[],n=e[0];return null===(t=Object.keys(n))||void 0===t||t.forEach((e=>{a.push({title:e,dataIndex:e,key:e})})),a}(t):[]),[t]),i=(0,n.useMemo)((()=>l().createElement("colgroup",null,s.map(((e,t)=>l().createElement("col",{key:t,style:{width:200,minWidth:200}}))))),[s]);return l().createElement("div",{className:"table-wrapper"},t.length?l().createElement("div",{className:"table-container"},l().createElement("div",{className:"table-content",ref:r},l().createElement("table",null,i,l().createElement("thead",null,l().createElement("tr",null,s.map(((e,t)=>l().createElement("th",{key:t,className:"".concat(e.key)},e.title))))),l().createElement("tbody",null,t.map(((e,t)=>l().createElement("tr",{key:t},s.map(((t,a)=>{var n,r=(n=e[t.key])&&"object"==typeof n?JSON.stringify(n):n;return l().createElement("td",{key:a,title:r},"#showKey"===t.key?function(e){if(Array.isArray(e)){var t=e[0]||"-",a=e.slice(1,e.length).join(",");return a?"".concat(t,"(").concat(a,")"):t}return e}(e[t.key]):r)})))))))),null!=a&&a.objectId?l().createElement("div",{className:"open-more"},l().createElement(m,{href:"".concat((0,c.getBasePath)(),"next-cmdb-instance-management/next/").concat(a.objectId,"/list"),target:"_blank"},"查看更多")):null):l().createElement("div",{className:"empty-tip"},"无数据"))}}}]);
|
|
2
|
+
//# sourceMappingURL=2159.efbfe3f1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/2159.
|
|
1
|
+
{"version":3,"file":"chunks/2159.efbfe3f1.js","mappings":"2LAKMA,GAAcC,EAAAA,EAAAA,WAA2B,WAiChC,SAASC,EAAcC,GASnC,IARDC,KAAMC,EAAU,OAChBC,GAODH,EACOI,GAAkBC,EAAAA,EAAAA,QAAuB,MASzCC,GAAUC,EAAAA,EAAAA,UAAQ,IAClBL,SAAAA,EAAYM,OAjCpB,SAA8BP,GAA6B,IAAAQ,EACnDH,EAAyB,GACzBI,EAAYT,EAAK,GAQvB,OAPsB,QAAtBQ,EAAAE,OAAOC,KAAKF,UAAU,IAAAD,GAAtBA,EAAwBI,SAASC,IAC/BR,EAAQS,KAAK,CACXC,MAAOF,EACPG,UAAWH,EACXA,IAAKA,GACL,IAEGR,CACT,CAuBaY,CAAqBhB,GAEvB,IACN,CAACA,IAEEiB,GAAcZ,EAAAA,EAAAA,UAAQ,IAExBa,IAAAA,cAAA,gBACGd,EAAQe,KAAI,CAACC,EAAGC,IAEbH,IAAAA,cAAA,OACEN,IAAKS,EACLC,MAAO,CACLC,MAAO,IACPC,SAAU,WAOrB,CAACpB,IAEJ,OACEc,IAAAA,cAAA,OAAKO,UAAU,iBACZzB,EAAWM,OACVY,IAAAA,cAAA,OAAKO,UAAU,mBACbP,IAAAA,cAAA,OAAKO,UAAU,gBAAgBC,IAAKxB,GAClCgB,IAAAA,cAAA,aACGD,EACDC,IAAAA,cAAA,aACEA,IAAAA,cAAA,UACGd,EAAQe,KAAI,CAACQ,EAAMN,IAEhBH,IAAAA,cAAA,MAAIN,IAAKS,EAAOI,UAAS,GAAAG,OAAKD,EAAKf,MAChCe,EAAKb,WAMhBI,IAAAA,cAAA,aACGlB,EAAWmB,KAAI,CAACQ,EAAWN,IAExBH,IAAAA,cAAA,MAAIN,IAAKS,GACNjB,EAAQe,KAAI,CAACU,EAAQC,KACpB,IAvDJC,EAuDUC,GAvDVD,EAuD6BJ,EAAKE,EAAOjB,OAtD3B,iBAAVmB,EACXE,KAAKC,UAAUH,GAEjBA,EAoDa,OACEb,IAAAA,cAAA,MAAIN,IAAKkB,EAAShB,MAAOkB,GACP,aAAfH,EAAOjB,IA9FpC,SAA8BmB,GAC5B,GAAII,MAAMC,QAAQL,GAAQ,CACxB,IAAMM,EAAWN,EAAM,IAAM,IACvBO,EAASP,EAAMQ,MAAM,EAAGR,EAAMzB,QAAQkC,KAAK,KAEjD,OADYF,EAAS,GAAHV,OAAMS,EAAQ,KAAAT,OAAIU,EAAM,KAAMD,CAElD,CACE,OAAON,CAEX,CAsFgCU,CAAqBd,EAAKE,EAAOjB,MACjCoB,EACD,UASpB/B,SAAAA,EAAQyC,SACPxB,IAAAA,cAAA,OAAKO,UAAU,aACbP,IAAAA,cAACvB,EAAW,CACVgD,KAAI,GAAAf,QAAKgB,EAAAA,EAAAA,eAAa,uCAAAhB,OAAsC3B,EAAOyC,SAAQ,SAC3EG,OAAO,UACR,SAID,MAGN3B,IAAAA,cAAA,OAAKO,UAAU,aAAY,OAInC,C","sources":["webpack:///./src/chat-view/components/MessageItem/Markdown/CodeBlock/Table/index.tsx"],"sourcesContent":["import React, { useMemo, useRef } from \"react\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nexport type TableColumn = {\n title: string;\n dataIndex: string;\n key: string;\n width?: string;\n};\n\nfunction cmdbInstanceShowName(value: string | string[]): string {\n if (Array.isArray(value)) {\n const firstKey = value[0] || \"-\"; // 第一个show key为undefined时展示-\n const resKey = value.slice(1, value.length).join(\",\");\n const res = resKey ? `${firstKey}(${resKey})` : firstKey;\n return res;\n } else {\n return value;\n }\n}\n\nfunction computedTableColumns(data: Record<string, any>[]) {\n const columns: TableColumn[] = [];\n const matchItem = data[0];\n Object.keys(matchItem)?.forEach((key) => {\n columns.push({\n title: key,\n dataIndex: key,\n key: key,\n });\n });\n return columns;\n}\n\nexport default function TableComponent({\n data: dataSource,\n params,\n}: {\n data: Record<string, unknown>[];\n params: {\n objectId: string;\n [k: string]: unknown;\n };\n}) {\n const tableContentRef = useRef<HTMLDivElement>(null);\n\n const toString = (value: any) => {\n if (value && typeof value === \"object\") {\n return JSON.stringify(value);\n }\n return value;\n };\n\n const columns = useMemo((): TableColumn[] => {\n if (dataSource?.length) {\n return computedTableColumns(dataSource);\n }\n return [];\n }, [dataSource]);\n\n const getColGroup = useMemo(() => {\n return (\n <colgroup>\n {columns.map((_, index) => {\n return (\n <col\n key={index}\n style={{\n width: 200,\n minWidth: 200,\n }}\n ></col>\n );\n })}\n </colgroup>\n );\n }, [columns]);\n\n return (\n <div className=\"table-wrapper\">\n {dataSource.length ? (\n <div className=\"table-container\">\n <div className=\"table-content\" ref={tableContentRef}>\n <table>\n {getColGroup}\n <thead>\n <tr>\n {columns.map((item, index) => {\n return (\n <th key={index} className={`${item.key}`}>\n {item.title}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {dataSource.map((item: any, index) => {\n return (\n <tr key={index}>\n {columns.map((column, tdIndex) => {\n const content = toString(item[column.key]);\n return (\n <td key={tdIndex} title={content}>\n {column.key === \"#showKey\"\n ? cmdbInstanceShowName(item[column.key])\n : content}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n {params?.objectId ? (\n <div className=\"open-more\">\n <WrappedLink\n href={`${getBasePath()}next-cmdb-instance-management/next/${params.objectId}/list`}\n target=\"_blank\"\n >\n 查看更多\n </WrappedLink>\n </div>\n ) : null}\n </div>\n ) : (\n <div className=\"empty-tip\">无数据</div>\n )}\n </div>\n );\n}\n"],"names":["WrappedLink","wrapBrick","TableComponent","_ref","data","dataSource","params","tableContentRef","useRef","columns","useMemo","length","_Object$keys","matchItem","Object","keys","forEach","key","push","title","dataIndex","computedTableColumns","getColGroup","React","map","_","index","style","width","minWidth","className","ref","item","concat","column","tdIndex","value","content","JSON","stringify","Array","isArray","firstKey","resKey","slice","join","cmdbInstanceShowName","objectId","href","getBasePath","target"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_ai=self.webpackChunk_next_bricks_ai||[]).push([[5425],{5425:(e,t,s)=>{s.r(t);var n,a,i,r,o,h,l,c,u,d,g,A,p,v,y,w,f,k,m,I,S,E=s(918),L=s(6121),M=s(829),C=s(2740),b=s(8769),W=s.n(b),x=s(3741),q=s(6430),R=s(15),P=s(1465),N=s(2442),_=s(3830),B=s(205),T=s(8894),j=s(5679),O=s(1123),U=s(6780),D=s(6567),{defineElement:H,property:F}=(s(6329),s(2896),(0,x.createDecorators)()),J=new WeakMap,Z=new WeakMap,z=new WeakMap,G=new WeakMap,K=new WeakMap,Q=new WeakMap,V=new WeakMap,X=new WeakMap,Y=new WeakMap;class $ extends q.ReactNextElement{constructor(){super(...arguments),(0,E.A)(this,J,i(this)),(0,E.A)(this,Z,(r(this),o(this))),(0,E.A)(this,z,(h(this),l(this))),(0,E.A)(this,G,(c(this),u(this))),(0,E.A)(this,K,(d(this),g(this))),(0,E.A)(this,Q,(A(this),p(this))),(0,E.A)(this,V,(v(this),y(this))),(0,E.A)(this,X,(w(this),f(this))),(0,E.A)(this,Y,(k(this),m(this))),I(this)}get sessionId(){return(0,M.A)(J,this)}set sessionId(e){(0,L.A)(J,this,e)}get agentId(){return(0,M.A)(Z,this)}set agentId(e){(0,L.A)(Z,this,e)}get debug(){return(0,M.A)(z,this)}set debug(e){(0,L.A)(z,this,e)}get showAvatar(){return(0,M.A)(G,this)}set showAvatar(e){(0,L.A)(G,this,e)}get showSessionList(){return(0,M.A)(K,this)}set showSessionList(e){(0,L.A)(K,this,e)}get readonly(){return(0,M.A)(Q,this)}set readonly(e){(0,L.A)(Q,this,e)}get showLike(){return(0,M.A)(V,this)}set showLike(e){(0,L.A)(V,this,e)}get enterInterval(){return(0,M.A)(X,this)}set enterInterval(e){(0,L.A)(X,this,e)}get quickAnswerConfig(){return(0,M.A)(Y,this)}set quickAnswerConfig(e){(0,L.A)(Y,this,e)}render(){return W().createElement(ee,{agentId:this.agentId,debug:this.debug,sessionId:this.sessionId,readonly:this.readonly,showAvatar:this.showAvatar,showSessionList:this.showSessionList,showLike:this.showLike,quickAnswerConfig:this.quickAnswerConfig,enterInterval:this.enterInterval})}}function ee(e){var{agentId:t,sessionId:s,showAvatar:n,showSessionList:a=!0,readonly:i=!1,showLike:r=!0,quickAnswerConfig:o,enterInterval:h,debug:l=!1}=e,{sessionEnd:c,sessionLoading:u,activeSessionId:d,msgEnd:g,msgLoading:A,msgList:p,sessionList:v,loading:y,chatting:w,searchStr:f,setAgent:k,handleIsLike:m,handleChat:I,stopChat:S,createSession:E,deleteSession:L,checkSession:M,setSearchStr:C,querySessionHistory:b}=(0,N.F)({agentId:t,sessionId:s,enterInterval:h,debug:l});return W().createElement(R.t.Provider,{value:{sessionEnd:c,sessionLoading:u,activeSessionId:d,sessionList:v,msgEnd:g,msgLoading:A,msgList:p,chatting:w,loading:y,searchStr:f,showLike:r,readonly:i,quickAnswerConfig:o,setAgent:k,handleIsLike:m,handleChat:I,stopChat:S,createSession:E,deleteSession:L,checkSession:M,setSearchStr:C,querySessionHistory:b}},W().createElement("div",{className:"chat-view-container"},a&&W().createElement("div",{className:"chat-view-selector"},W().createElement(_.Z,null)),W().createElement("div",{className:"chat-view-content"},W().createElement(P.M,{showAvatar:n}),!i&&W().createElement(B.D,null))))}n=$,({e:[i,r,o,h,l,c,u,d,g,A,p,v,y,w,f,k,m,I],c:[S,a]}=(0,C.A)(n,[H("ai.chat-view",{styleTexts:[T.A,j.A,O.A,U.A,D.A]})],[[F(),1,"sessionId"],[F(),1,"agentId"],[F({type:Boolean}),1,"debug"],[F({type:Boolean}),1,"showAvatar"],[F({type:Boolean}),1,"showSessionList"],[F({type:Boolean}),1,"readonly"],[F({type:Boolean}),1,"showLike"],[F({type:Number}),1,"enterInterval"],[F({attribute:!1}),1,"quickAnswerConfig"]],0,void 0,q.ReactNextElement)),a();var te=s(6330),se=s(9740),ne=s(4635),ae=s(6902),ie=s(2559);function re(e,t,s){return s((0,ie.A)(e,t))}var oe,he,le,ce,ue,de,ge,Ae,pe,ve,ye,we,fe,ke,me,Ie,Se,Ee,Le,Me,Ce=s(1148),be=s(
|
|
2
|
-
//# sourceMappingURL=5425.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_ai=self.webpackChunk_next_bricks_ai||[]).push([[5425],{5425:(e,t,s)=>{s.r(t);var n,a,i,r,o,h,l,c,u,d,g,A,p,v,y,w,f,k,m,I,S,E=s(918),L=s(6121),M=s(829),C=s(2740),b=s(8769),W=s.n(b),x=s(3741),q=s(6430),R=s(15),P=s(1465),N=s(2442),_=s(3830),B=s(205),T=s(8894),j=s(5679),O=s(1123),U=s(6780),D=s(6567),{defineElement:H,property:F}=(s(6329),s(2896),(0,x.createDecorators)()),J=new WeakMap,Z=new WeakMap,z=new WeakMap,G=new WeakMap,K=new WeakMap,Q=new WeakMap,V=new WeakMap,X=new WeakMap,Y=new WeakMap;class $ extends q.ReactNextElement{constructor(){super(...arguments),(0,E.A)(this,J,i(this)),(0,E.A)(this,Z,(r(this),o(this))),(0,E.A)(this,z,(h(this),l(this))),(0,E.A)(this,G,(c(this),u(this))),(0,E.A)(this,K,(d(this),g(this))),(0,E.A)(this,Q,(A(this),p(this))),(0,E.A)(this,V,(v(this),y(this))),(0,E.A)(this,X,(w(this),f(this))),(0,E.A)(this,Y,(k(this),m(this))),I(this)}get sessionId(){return(0,M.A)(J,this)}set sessionId(e){(0,L.A)(J,this,e)}get agentId(){return(0,M.A)(Z,this)}set agentId(e){(0,L.A)(Z,this,e)}get debug(){return(0,M.A)(z,this)}set debug(e){(0,L.A)(z,this,e)}get showAvatar(){return(0,M.A)(G,this)}set showAvatar(e){(0,L.A)(G,this,e)}get showSessionList(){return(0,M.A)(K,this)}set showSessionList(e){(0,L.A)(K,this,e)}get readonly(){return(0,M.A)(Q,this)}set readonly(e){(0,L.A)(Q,this,e)}get showLike(){return(0,M.A)(V,this)}set showLike(e){(0,L.A)(V,this,e)}get enterInterval(){return(0,M.A)(X,this)}set enterInterval(e){(0,L.A)(X,this,e)}get quickAnswerConfig(){return(0,M.A)(Y,this)}set quickAnswerConfig(e){(0,L.A)(Y,this,e)}render(){return W().createElement(ee,{agentId:this.agentId,debug:this.debug,sessionId:this.sessionId,readonly:this.readonly,showAvatar:this.showAvatar,showSessionList:this.showSessionList,showLike:this.showLike,quickAnswerConfig:this.quickAnswerConfig,enterInterval:this.enterInterval})}}function ee(e){var{agentId:t,sessionId:s,showAvatar:n,showSessionList:a=!0,readonly:i=!1,showLike:r=!0,quickAnswerConfig:o,enterInterval:h,debug:l=!1}=e,{sessionEnd:c,sessionLoading:u,activeSessionId:d,msgEnd:g,msgLoading:A,msgList:p,sessionList:v,loading:y,chatting:w,searchStr:f,setAgent:k,handleIsLike:m,handleChat:I,stopChat:S,createSession:E,deleteSession:L,checkSession:M,setSearchStr:C,querySessionHistory:b}=(0,N.F)({agentId:t,sessionId:s,enterInterval:h,debug:l});return W().createElement(R.t.Provider,{value:{sessionEnd:c,sessionLoading:u,activeSessionId:d,sessionList:v,msgEnd:g,msgLoading:A,msgList:p,chatting:w,loading:y,searchStr:f,showLike:r,readonly:i,quickAnswerConfig:o,setAgent:k,handleIsLike:m,handleChat:I,stopChat:S,createSession:E,deleteSession:L,checkSession:M,setSearchStr:C,querySessionHistory:b}},W().createElement("div",{className:"chat-view-container"},a&&W().createElement("div",{className:"chat-view-selector"},W().createElement(_.Z,null)),W().createElement("div",{className:"chat-view-content"},W().createElement(P.M,{showAvatar:n}),!i&&W().createElement(B.D,null))))}n=$,({e:[i,r,o,h,l,c,u,d,g,A,p,v,y,w,f,k,m,I],c:[S,a]}=(0,C.A)(n,[H("ai.chat-view",{styleTexts:[T.A,j.A,O.A,U.A,D.A]})],[[F(),1,"sessionId"],[F(),1,"agentId"],[F({type:Boolean}),1,"debug"],[F({type:Boolean}),1,"showAvatar"],[F({type:Boolean}),1,"showSessionList"],[F({type:Boolean}),1,"readonly"],[F({type:Boolean}),1,"showLike"],[F({type:Number}),1,"enterInterval"],[F({attribute:!1}),1,"quickAnswerConfig"]],0,void 0,q.ReactNextElement)),a();var te=s(6330),se=s(9740),ne=s(4635),ae=s(6902),ie=s(2559);function re(e,t,s){return s((0,ie.A)(e,t))}var oe,he,le,ce,ue,de,ge,Ae,pe,ve,ye,we,fe,ke,me,Ie,Se,Ee,Le,Me,Ce=s(1148),be=s(8369),We=s(3757),xe=s(356),{defineElement:qe,property:Re,event:Pe,method:Ne}=(0,x.createDecorators)(),_e=(0,b.forwardRef)(Ge),Be=new WeakMap,Te=new WeakMap,je=new WeakMap,Oe=new WeakSet,Ue=new WeakMap,De=new WeakMap,He=new WeakMap,Fe=new WeakMap,Je=new WeakMap,Ze=new WeakMap;class ze extends q.ReactNextElement{constructor(){super(...arguments),(0,ne.A)(this,Oe),(0,E.A)(this,Be,(he(this),ce(this))),(0,E.A)(this,Te,(ue(this),de(this))),(0,E.A)(this,je,(ge(this),Ae(this))),(0,E.A)(this,Ue,(ye(this),e=>{re(Oe,this,pe).emit(e)})),(0,E.A)(this,De,we(this)),(0,E.A)(this,He,(me(this),e=>{re(Oe,this,fe).emit(e)})),(0,E.A)(this,Fe,Ie(this)),(0,E.A)(this,Je,(Le(this),e=>{re(Oe,this,Se).emit(e)})),(0,E.A)(this,Ze,(0,b.createRef)())}get agentId(){return(0,M.A)(Be,this)}set agentId(e){(0,L.A)(Be,this,e)}get conversationId(){return(0,M.A)(Te,this)}set conversationId(e){(0,L.A)(Te,this,e)}postMessage(e){var t;return null===(t=(0,M.A)(Ze,this).current)||void 0===t?void 0:t.postMessage(e)}sendRequest(e,t,s){var n;return null===(n=(0,M.A)(Ze,this).current)||void 0===n?void 0:n.sendRequest(e,t,s)}render(){return W().createElement(_e,{ref:(0,M.A)(Ze,this),agentId:this.agentId,conversationId:this.conversationId,onMessagesUpdate:(0,M.A)(Ue,this),onBusyChange:(0,M.A)(He,this),onConversationIdChange:(0,M.A)(Je,this)})}}function Ge(e,t){var{agentId:s,conversationId:n,onMessageChunkPush:a,onMessagesUpdate:i,onBusyChange:r,onConversationIdChange:o}=e,h=(0,b.useRef)(!1),[l,c]=(0,b.useState)(!1),[u,d]=(0,b.useState)();(0,b.useEffect)((()=>{d(n)}),[n]),(0,b.useEffect)((()=>{h.current&&(null==o||o(u))}),[u,o]);var g=(0,b.useRef)(0),A=(0,b.useCallback)((()=>g.current++),[]),[p,v]=(0,b.useState)([]),y=(0,b.useCallback)((e=>{null==a||a(e),v((t=>{var 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,(0,se.A)((0,se.A)({},e.delta),{},{key:e.key,partial:e.partial})])}))}),[a]),w=(0,b.useCallback)(function(){var e=(0,te.A)((function*(e,t,s){if(!l){var n=A(),a=A(),i=u;try{c(!0),null==y||y({key:n,delta:{content:e,role:"user"}});var r=(0,We.createSSEStream)(new URL(t,"".concat(location.origin).concat((0,be.getBasePath)())).toString(),s);yield Promise.race([r,new Promise((e=>setTimeout(e,1e3)))]),null==y||y({key:a,delta:{content:"",role:"assistant"},partial:!0});var o,h=yield r,g=!1,p=!1;try{for(var w,f=(0,Ce.A)(h);g=!(w=yield f.next()).done;g=!1){var k=w.value;null==y||y({delta:k.delta,key:a,partial:!0}),k.conversationId&&!i&&d(i=k.conversationId)}}catch(e){p=!0,o=e}finally{try{g&&null!=f.return&&(yield f.return())}finally{if(p)throw o}}v((e=>{var t=e[e.length-1];return null!=t&&t.partial&&(t.partial=!1),[...e]}))}catch(e){console.error("stream failed:",e),v((e=>{var t=e[e.length-1],s=e;return(null==t?void 0:t.key)===a&&(t.content?(t.partial=!1,t.failed=!0):s=e.slice(0,-1)),[...s,{role:"assistant",content:"系统错误",key:A(),failed:!0}]}))}finally{c(!1)}return i}}));return function(t,s,n){return e.apply(this,arguments)}}(),[l,u,A,y]);return(0,b.useImperativeHandle)(t,(()=>({sendRequest:w,postMessage:e=>w(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,input:e,stream:!0,conversationId:u}),headers:{"giraffe-contract-name":"easyops.api.aiops_chat.manage.LLMChatProxy"}})})),[s,u,w]),(0,b.useEffect)((()=>{h.current&&(null==r||r(l))}),[l,r]),(0,b.useEffect)((()=>{h.current&&(null==i||i(p))}),[p,i]),(0,b.useEffect)((()=>{h.current=!0}),[]),null}oe=ze,({e:[ce,ue,de,ge,Ae,pe,ve,ye,we,fe,ke,me,Ie,Se,Ee,Le,he],c:[Me,le]}=(0,C.A)(oe,[qe("ai.chat-agent",{styleTexts:[xe.A]})],[[Re(),1,"agentId"],[Re(),1,"conversationId"],[Ne(),2,"postMessage"],[Ne(),2,"sendRequest"],[Pe({type:"messages.update"}),1,"messagesUpdate",e=>(0,M.A)(je,e),(e,t)=>(0,L.A)(je,e,t)],[Pe({type:"busy.change"}),1,"busyChangeEvent",e=>(0,M.A)(De,e),(e,t)=>(0,L.A)(De,e,t)],[Pe({type:"conversationId.change"}),1,"conversationIdChangeEvent",e=>(0,M.A)(Fe,e),(e,t)=>(0,L.A)(Fe,e,t)]],0,(e=>Ze.has((0,ae.A)(e))),q.ReactNextElement)),le()},356:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(6758),a=s.n(n),i=s(935),r=s.n(i)()(a());r.push([e.id,":host{display:none}",""]);const o=r.toString()},1148:(e,t,s)=>{function n(e){var t,s,n,i=2;for("undefined"!=typeof Symbol&&(s=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(s&&null!=(t=e[s]))return t.call(e);if(n&&null!=(t=e[n]))return new a(t.call(e));s="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function a(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return a=function(e){this.s=e,this.n=e.next},a.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var s=this.s.return;return void 0===s?Promise.resolve({value:e,done:!0}):t(s.apply(this.s,arguments))},throw:function(e){var s=this.s.return;return void 0===s?Promise.reject(e):t(s.apply(this.s,arguments))}},new a(e)}s.d(t,{A:()=>n})}}]);
|
|
2
|
+
//# sourceMappingURL=5425.fdd269c2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/5425.00e59631.js","mappings":"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","sources":["webpack:///./src/chat-view/index.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///./src/chat-agent/index.tsx","webpack:///./src/chat-agent/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncIterator.js"],"sourcesContent":["import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { ChatViewContext, QuickAnswerConfig } from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput } from \"./components/SearchInput.js\";\nimport styleText from \"./styles.shadow.css\";\nimport loadStyleText from \"./components/loading.shadow.css\";\nimport markdownStyleText from \"./components/MessageItem/Markdown/markdown.shadow.css\";\nimport quickAnswerListStyleText from \"./components/QuickAnswerList/quickAnswerList.shadow.css\";\nimport CodeBlockStyleText from \"./components/MessageItem/Markdown/CodeBlock/CodeBlock.shadow.css\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * AI 对话终端\n */\nexport\n@defineElement(\"ai.chat-view\", {\n styleTexts: [\n styleText,\n loadStyleText,\n markdownStyleText,\n quickAnswerListStyleText,\n CodeBlockStyleText,\n ],\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 * 是否为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 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 render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\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 quickAnswerConfig={this.quickAnswerConfig}\n enterInterval={this.enterInterval}\n />\n );\n }\n}\n\nexport interface ChatViewProps {\n agentId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n enterInterval?: number;\n debug?: boolean;\n}\n\nexport function ChatViewComponent({\n agentId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n quickAnswerConfig,\n enterInterval,\n debug = false,\n}: ChatViewProps) {\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 checkSession,\n setSearchStr,\n querySessionHistory,\n } = useChatViewInfo({\n agentId,\n sessionId,\n enterInterval,\n debug,\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 readonly,\n quickAnswerConfig,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\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 && <SearchInput />}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\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 conversationId?: string;\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 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 conversationId: string | undefined;\n\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n @method()\n sendRequest(content: string, url: string, options: Options<MessageChunk>) {\n return this.#ref.current?.sendRequest(content, url, options);\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 | undefined>;\n\n #handleConversationIdChange = (conversationId: string | undefined) => {\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 conversationId={this.conversationId}\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 | undefined): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | undefined>;\n sendRequest(\n content: string,\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | undefined>;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n conversationId: propConversationId,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n\n const [busy, setBusy] = useState(false);\n const [conversationId, setConversationId] = useState<string | undefined>();\n\n useEffect(() => {\n setConversationId(propConversationId);\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 sendRequest = useCallback(\n async (content: string, url: string, options: Options<MessageChunk>) => {\n if (busy) {\n return;\n }\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId = conversationId;\n try {\n setBusy(true);\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: content,\n role: \"user\",\n },\n });\n const request = createSSEStream<MessageChunk>(\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 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 pushPartialMessage?.({\n delta: value.delta,\n key: assistantKey,\n partial: true,\n });\n if (value.conversationId && !currentConversationId) {\n setConversationId((currentConversationId = value.conversationId));\n }\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 // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\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 } finally {\n setBusy(false);\n }\n return currentConversationId;\n },\n [busy, conversationId, getMessageChunkKey, pushPartialMessage]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n sendRequest,\n postMessage(content: string) {\n return sendRequest(\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 input: content,\n stream: true,\n conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n }),\n [agentId, conversationId, sendRequest]\n );\n\n useEffect(() => {\n didMountRef.current && onBusyChange?.(busy);\n }, [busy, onBusyChange]);\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","export default function _asyncIterator(r) {\n var n,\n t,\n o,\n e = 2;\n for (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n if (t && null != (n = r[t])) return n.call(r);\n if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n t = \"@@asyncIterator\", o = \"@@iterator\";\n }\n throw new TypeError(\"Object is not async iterable\");\n}\nfunction AsyncFromSyncIterator(r) {\n function AsyncFromSyncIteratorContinuation(r) {\n if (Object(r) !== r) return Promise.reject(new TypeError(r + \" is not an object.\"));\n var n = r.done;\n return Promise.resolve(r.value).then(function (r) {\n return {\n value: r,\n done: n\n };\n });\n }\n return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {\n this.s = r, this.n = r.next;\n }, AsyncFromSyncIterator.prototype = {\n s: null,\n n: null,\n next: function next() {\n return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n },\n \"return\": function _return(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.resolve({\n value: r,\n done: !0\n }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n },\n \"throw\": function _throw(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n }\n }, new AsyncFromSyncIterator(r);\n}"],"names":["_ChatView","defineElement","property","createDecorators","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","ChatView","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_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_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","sessionId","_classPrivateFieldGet","v","_classPrivateFieldSet","agentId","debug","showAvatar","showSessionList","readonly","showLike","enterInterval","quickAnswerConfig","render","React","ChatViewComponent","this","_ref","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","checkSession","setSearchStr","querySessionHistory","useChatViewInfo","ChatViewContext","Provider","value","className","SessionList","MessageList","SearchInput","_ChatView2","e","c","_initClass","_applyDecs","styleTexts","styleText","loadStyleText","markdownStyleText","quickAnswerListStyleText","CodeBlockStyleText","type","Boolean","Number","attribute","_classPrivateGetter","s","r","a","assertClassBrand","_ChatAgent","event","method","ChatAgentComponent","forwardRef","LegacyChatAgentComponent","_ChatAgent_brand","WeakSet","_handleMessagesUpdate","_handleBusyChange","_handleConversationIdChange","ChatAgent","_classPrivateMethodInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_get_messagesUpdate","emit","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","conversationId","_get_conversationIdChangeEvent","createRef","postMessage","content","_classPrivateFieldGet2","current","sendRequest","url","options","_classPrivateFieldGet3","ref","onMessagesUpdate","onBusyChange","onConversationIdChange","_ref2","propConversationId","onMessageChunkPush","didMountRef","useRef","setBusy","useState","setConversationId","useEffect","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","length","key","delta","partial","_objectSpread","_ref3","_asyncToGenerator","userKey","assistantKey","currentConversationId","role","request","createSSEStream","URL","concat","location","origin","getBasePath","toString","Promise","race","resolve","setTimeout","_iteratorError","stream","_iteratorAbruptCompletion","_didIteratorError","_step","_iterator","_asyncIterator","next","done","err","return","error","console","keep","failed","slice","_x","_x2","_x3","apply","useImperativeHandle","body","JSON","stringify","input","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","o","_","has","_checkInRHS","___CSS_LOADER_EXPORT___","push","module","id","n","t","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","AsyncFromSyncIteratorContinuation","Object","reject","then","prototype"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/5425.fdd269c2.js","mappings":"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","sources":["webpack:///./src/chat-view/index.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///./src/chat-agent/index.tsx","webpack:///./src/chat-agent/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncIterator.js"],"sourcesContent":["import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { ChatViewContext, QuickAnswerConfig } from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput } from \"./components/SearchInput.js\";\nimport styleText from \"./styles.shadow.css\";\nimport loadStyleText from \"./components/loading.shadow.css\";\nimport markdownStyleText from \"./components/MessageItem/Markdown/markdown.shadow.css\";\nimport quickAnswerListStyleText from \"./components/QuickAnswerList/quickAnswerList.shadow.css\";\nimport CodeBlockStyleText from \"./components/MessageItem/Markdown/CodeBlock/CodeBlock.shadow.css\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * AI 对话终端\n */\nexport\n@defineElement(\"ai.chat-view\", {\n styleTexts: [\n styleText,\n loadStyleText,\n markdownStyleText,\n quickAnswerListStyleText,\n CodeBlockStyleText,\n ],\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 * 是否为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 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 render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\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 quickAnswerConfig={this.quickAnswerConfig}\n enterInterval={this.enterInterval}\n />\n );\n }\n}\n\nexport interface ChatViewProps {\n agentId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n enterInterval?: number;\n debug?: boolean;\n}\n\nexport function ChatViewComponent({\n agentId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n quickAnswerConfig,\n enterInterval,\n debug = false,\n}: ChatViewProps) {\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 checkSession,\n setSearchStr,\n querySessionHistory,\n } = useChatViewInfo({\n agentId,\n sessionId,\n enterInterval,\n debug,\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 readonly,\n quickAnswerConfig,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\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 && <SearchInput />}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\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 conversationId?: string;\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 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 conversationId: string | undefined;\n\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n @method()\n sendRequest(content: string, url: string, options: Options<MessageChunk>) {\n return this.#ref.current?.sendRequest(content, url, options);\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 | undefined>;\n\n #handleConversationIdChange = (conversationId: string | undefined) => {\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 conversationId={this.conversationId}\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 | undefined): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | undefined>;\n sendRequest(\n content: string,\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | undefined>;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n conversationId: propConversationId,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n\n const [busy, setBusy] = useState(false);\n const [conversationId, setConversationId] = useState<string | undefined>();\n\n useEffect(() => {\n setConversationId(propConversationId);\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 sendRequest = useCallback(\n async (content: string, url: string, options: Options<MessageChunk>) => {\n if (busy) {\n return;\n }\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId = conversationId;\n try {\n setBusy(true);\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: content,\n role: \"user\",\n },\n });\n const request = createSSEStream<MessageChunk>(\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 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 pushPartialMessage?.({\n delta: value.delta,\n key: assistantKey,\n partial: true,\n });\n if (value.conversationId && !currentConversationId) {\n setConversationId((currentConversationId = value.conversationId));\n }\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 // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\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 } finally {\n setBusy(false);\n }\n return currentConversationId;\n },\n [busy, conversationId, getMessageChunkKey, pushPartialMessage]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n sendRequest,\n postMessage(content: string) {\n return sendRequest(\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 input: content,\n stream: true,\n conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n }),\n [agentId, conversationId, sendRequest]\n );\n\n useEffect(() => {\n didMountRef.current && onBusyChange?.(busy);\n }, [busy, onBusyChange]);\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","export default function _asyncIterator(r) {\n var n,\n t,\n o,\n e = 2;\n for (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n if (t && null != (n = r[t])) return n.call(r);\n if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n t = \"@@asyncIterator\", o = \"@@iterator\";\n }\n throw new TypeError(\"Object is not async iterable\");\n}\nfunction AsyncFromSyncIterator(r) {\n function AsyncFromSyncIteratorContinuation(r) {\n if (Object(r) !== r) return Promise.reject(new TypeError(r + \" is not an object.\"));\n var n = r.done;\n return Promise.resolve(r.value).then(function (r) {\n return {\n value: r,\n done: n\n };\n });\n }\n return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {\n this.s = r, this.n = r.next;\n }, AsyncFromSyncIterator.prototype = {\n s: null,\n n: null,\n next: function next() {\n return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n },\n \"return\": function _return(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.resolve({\n value: r,\n done: !0\n }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n },\n \"throw\": function _throw(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n }\n }, new AsyncFromSyncIterator(r);\n}"],"names":["_ChatView","defineElement","property","createDecorators","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","ChatView","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_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_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","sessionId","_classPrivateFieldGet","v","_classPrivateFieldSet","agentId","debug","showAvatar","showSessionList","readonly","showLike","enterInterval","quickAnswerConfig","render","React","ChatViewComponent","this","_ref","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","checkSession","setSearchStr","querySessionHistory","useChatViewInfo","ChatViewContext","Provider","value","className","SessionList","MessageList","SearchInput","_ChatView2","e","c","_initClass","_applyDecs","styleTexts","styleText","loadStyleText","markdownStyleText","quickAnswerListStyleText","CodeBlockStyleText","type","Boolean","Number","attribute","_classPrivateGetter","s","r","a","assertClassBrand","_ChatAgent","event","method","ChatAgentComponent","forwardRef","LegacyChatAgentComponent","_ChatAgent_brand","WeakSet","_handleMessagesUpdate","_handleBusyChange","_handleConversationIdChange","ChatAgent","_classPrivateMethodInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_get_messagesUpdate","emit","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","conversationId","_get_conversationIdChangeEvent","createRef","postMessage","content","_classPrivateFieldGet2","current","sendRequest","url","options","_classPrivateFieldGet3","ref","onMessagesUpdate","onBusyChange","onConversationIdChange","_ref2","propConversationId","onMessageChunkPush","didMountRef","useRef","setBusy","useState","setConversationId","useEffect","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","length","key","delta","partial","_objectSpread","_ref3","_asyncToGenerator","userKey","assistantKey","currentConversationId","role","request","createSSEStream","URL","concat","location","origin","getBasePath","toString","Promise","race","resolve","setTimeout","_iteratorError","stream","_iteratorAbruptCompletion","_didIteratorError","_step","_iterator","_asyncIterator","next","done","err","return","error","console","keep","failed","slice","_x","_x2","_x3","apply","useImperativeHandle","body","JSON","stringify","input","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","o","_","has","_checkInRHS","___CSS_LOADER_EXPORT___","push","module","id","n","t","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","AsyncFromSyncIteratorContinuation","Object","reject","then","prototype"],"sourceRoot":""}
|