@next-bricks/ai-portal 0.57.0 → 0.58.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 +24 -24
- package/dist/chunks/1488.89557180.js +2 -0
- package/dist/chunks/1488.89557180.js.map +1 -0
- package/dist/chunks/151.b87bccc0.js +2 -0
- package/dist/chunks/151.b87bccc0.js.map +1 -0
- package/dist/chunks/2232.75f1ab0f.js +2 -0
- package/dist/chunks/2232.75f1ab0f.js.map +1 -0
- package/dist/chunks/3848.01a4987f.js +3 -0
- package/dist/chunks/3848.01a4987f.js.map +1 -0
- package/dist/chunks/4002.68156a0e.js +3 -0
- package/dist/chunks/4002.68156a0e.js.map +1 -0
- package/dist/chunks/7041.d7408449.js +2 -0
- package/dist/chunks/7041.d7408449.js.map +1 -0
- package/dist/chunks/9496.08074e2b.js +2 -0
- package/dist/chunks/9496.08074e2b.js.map +1 -0
- package/dist/chunks/chat-box.1b2a4a02.js +2 -0
- package/dist/chunks/chat-box.1b2a4a02.js.map +1 -0
- package/dist/chunks/chat-input.3ca07b82.js +2 -0
- package/dist/chunks/chat-input.3ca07b82.js.map +1 -0
- package/dist/chunks/chat-stream.a7c4f58d.js +2 -0
- package/dist/chunks/chat-stream.a7c4f58d.js.map +1 -0
- package/dist/chunks/cruise-canvas.b444c4ca.js +2 -0
- package/dist/chunks/cruise-canvas.b444c4ca.js.map +1 -0
- package/dist/chunks/{main.a8c98afa.js → main.703a0465.js} +2 -2
- package/dist/chunks/{main.a8c98afa.js.map → main.703a0465.js.map} +1 -1
- package/dist/examples.json +20 -20
- package/dist/images/96be9327.png +0 -0
- package/dist/index.7d751c21.js +2 -0
- package/dist/index.7d751c21.js.map +1 -0
- package/dist/manifest.json +216 -199
- package/dist/types.json +1295 -546
- package/dist-types/chat-box/index.d.ts +3 -12
- package/dist-types/chat-input/index.d.ts +5 -2
- package/dist-types/chat-stream/ChatStream.d.ts +1 -1
- package/dist-types/chat-stream/UserMessage/UserMessage.d.ts +3 -2
- package/dist-types/chat-stream/index.d.ts +3 -1
- package/dist-types/chat-stream/interfaces.d.ts +2 -1
- package/dist-types/cruise-canvas/CanvasContext.d.ts +0 -2
- package/dist-types/cruise-canvas/CruiseCanvas.d.ts +1 -1
- package/dist-types/cruise-canvas/FileList/FileList.d.ts +2 -1
- package/dist-types/cruise-canvas/Nav/Nav.d.ts +3 -6
- package/dist-types/cruise-canvas/NodeRequirement/NodeRequirement.d.ts +3 -2
- package/dist-types/cruise-canvas/i18n.d.ts +0 -2
- package/dist-types/cruise-canvas/index.d.ts +3 -1
- package/dist-types/cruise-canvas/interfaces.d.ts +2 -5
- package/dist-types/cruise-canvas/useConversationDetail.d.ts +2 -2
- package/dist-types/cruise-canvas/useConversationGraph.d.ts +0 -1
- package/dist-types/shared/FilePreview/FilePreview.d.ts +9 -0
- package/dist-types/shared/FilePreview/FilePreviewDrawer.d.ts +6 -0
- package/dist-types/shared/FilePreview/i18n.d.ts +18 -0
- package/dist-types/shared/FileUpload/GlobalDragOverlay.d.ts +8 -0
- package/dist-types/shared/FileUpload/GlobalDragOverlay.spec.d.ts +1 -0
- package/dist-types/{chat-box → shared/FileUpload}/UploadButton.d.ts +2 -0
- package/dist-types/shared/FileUpload/UploadedFiles.d.ts +10 -0
- package/dist-types/shared/FileUpload/acceptFiles.d.ts +1 -0
- package/dist-types/shared/FileUpload/acceptFiles.spec.d.ts +1 -0
- package/dist-types/shared/FileUpload/i18n.d.ts +18 -0
- package/dist-types/{chat-box → shared/FileUpload}/interfaces.d.ts +1 -1
- package/dist-types/shared/PlanProgress/PlanProgress.d.ts +15 -0
- package/dist-types/shared/PlanProgress/i18n.d.ts +15 -0
- package/dist-types/shared/TaskContext.d.ts +4 -2
- package/dist-types/shared/bricks.d.ts +1 -0
- package/dist-types/shared/interfaces.d.ts +23 -5
- package/dist-types/shared/useFilesUploading.d.ts +12 -0
- package/dist-types/shared/useFilesUploading.spec.d.ts +1 -0
- package/dist-types/shared/useServiceFlowPlan.d.ts +2 -0
- package/dist-types/shared/useServiceFlowPlan.spec.d.ts +1 -0
- package/package.json +2 -2
- package/dist/chunks/1510.ba18a788.js +0 -2
- package/dist/chunks/1510.ba18a788.js.map +0 -1
- package/dist/chunks/161.6c50f07c.js +0 -3
- package/dist/chunks/161.6c50f07c.js.map +0 -1
- package/dist/chunks/1864.7e31d8fe.js +0 -2
- package/dist/chunks/1864.7e31d8fe.js.map +0 -1
- package/dist/chunks/6995.65da5073.js +0 -2
- package/dist/chunks/6995.65da5073.js.map +0 -1
- package/dist/chunks/7279.af201b60.js +0 -3
- package/dist/chunks/7279.af201b60.js.map +0 -1
- package/dist/chunks/7868.f4c744a7.js +0 -2
- package/dist/chunks/7868.f4c744a7.js.map +0 -1
- package/dist/chunks/9270.e909e789.js +0 -2
- package/dist/chunks/9270.e909e789.js.map +0 -1
- package/dist/chunks/chat-box.4d1d4fd9.js +0 -2
- package/dist/chunks/chat-box.4d1d4fd9.js.map +0 -1
- package/dist/chunks/chat-input.dd3d2035.js +0 -2
- package/dist/chunks/chat-input.dd3d2035.js.map +0 -1
- package/dist/chunks/chat-stream.9f07e680.js +0 -2
- package/dist/chunks/chat-stream.9f07e680.js.map +0 -1
- package/dist/chunks/cruise-canvas.eca7469a.js +0 -2
- package/dist/chunks/cruise-canvas.eca7469a.js.map +0 -1
- package/dist/index.b1550ef8.js +0 -2
- package/dist/index.b1550ef8.js.map +0 -1
- package/dist-types/chat-box/FileListComponent.d.ts +0 -8
- package/dist-types/cruise-canvas/FilePreview/FilePreview.d.ts +0 -6
- /package/dist/chunks/{7279.af201b60.js.LICENSE.txt → 3848.01a4987f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{161.6c50f07c.js.LICENSE.txt → 4002.68156a0e.js.LICENSE.txt} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[9270],{625:(e,t,a)=>{function n(e){switch(e){case"input-required":return{lib:"antd",theme:"filled",icon:"pause-circle"};case"completed":return{lib:"antd",theme:"filled",icon:"check-circle"};case"failed":return{lib:"antd",theme:"filled",icon:"close-circle"};case"terminated":return{lib:"antd",theme:"filled",icon:"stop"};case"working":return{lib:"antd",icon:"loading-3-quarters",spinning:!0};default:return{lib:"antd",theme:"filled",icon:"clock-circle"}}}a.d(t,{W:()=>n})},9270:(e,t,a)=>{a.d(t,{C:()=>Ge});var n=a(18769),i=a.n(n),s=a(30348),l=a(53373),o=a.n(l),r=a(67101),c=a(50045);function d(e,t,a,i,s,l){const o=null==l?void 0:l.showHumanActions,r=null==l?void 0:l.skipActivitySubTasks;return(0,n.useMemo)((()=>{if(!e)return{messages:[],lastDetail:null};const{chunks:n,jobMap:l}=(0,c.a)(t,a,i,s,r),d=[];let m={role:"assistant",chunks:[]},p=null;for(const e of n)if("job"===e.type){var u;const t=e.job;t.toolCall&&(p={type:"job",id:t.id}),"completed"===t.state&&null!==(u=t.messages)&&void 0!==u&&u.length&&t.messages.every((e=>"user"===e.role))?(m.chunks.length>0&&d.push(m),d.push({role:"user",content:t.messages.flatMap((e=>e.parts.map((e=>"text"===e.type?e.text:"")))).join(""),cmd:t.cmd,fromSkippedSubTask:e.fromSkippedSubTask}),m={role:"assistant",chunks:[]}):m.chunks.push(e),t.humanAction&&(m.chunks.length>0&&d.push(m),o&&d.push({role:"user",content:t.humanAction}),m={role:"assistant",chunks:[]})}else m.chunks.push(e),"error"!==e.type&&(p={type:e.type,id:e.task.id});let f=d.length>0;if(f&&"assistant"===m.role&&0===m.chunks.length){const e=d[d.length-1];"user"===e.role&&e.fromSkippedSubTask&&(f=!1)}return(m.chunks.length>0||f)&&d.push(m),{messages:d,jobMap:l,lastDetail:p}}),[e,t,i,s,a,o,r])}var m=a(30672),p=a(72591),u=a.n(p),f=a(1740),b=a.n(f),h=a(88128),g=a.n(h),v=a(30855),x=a.n(v),k=a(93051),E=a.n(k),w=a(73656),y=a.n(w),A=a(26598),I={};I.styleTagTransform=y(),I.setAttributes=x(),I.insert=g().bind(null,"head"),I.domAPI=b(),I.insertStyleElement=E(),u()(A.A,I);const T=A.A&&A.A.locals?A.A.locals:void 0;var N=a(77388);function S(e){let{content:t,cmd:a}=e;return i().createElement("div",{className:T.user},a&&i().createElement(N._,{cmd:a}),t)}var j=a(35754),C={};C.styleTagTransform=y(),C.setAttributes=x(),C.insert=g().bind(null,"head"),C.domAPI=b(),C.insertStyleElement=E(),u()(j.A,C);const _=j.A&&j.A.locals?j.A.locals:void 0;var F=a(40177),D=a(35430),V=a(89575),z=a(41030),R=a(50094),P={};P.styleTagTransform=y(),P.setAttributes=x(),P.insert=g().bind(null,"head"),P.domAPI=b(),P.insertStyleElement=E(),u()(R.A,P);const q=R.A&&R.A.locals?R.A.locals:void 0;var G=a(36903),L=a(69606),O=a(42854),U=a(86976),W=a(65438),J={};J.styleTagTransform=y(),J.setAttributes=x(),J.insert=g().bind(null,"head"),J.domAPI=b(),J.insertStyleElement=E(),u()(W.A,J);const B=W.A&&W.A.locals?W.A.locals:void 0;function H(e){let{job:t}=e;const[a,s]=(0,n.useState)("medium"),l=(0,n.useCallback)((e=>{s(e)}),[]);return i().createElement("div",{className:o()(B.view,{[B.large]:"large"===a})},i().createElement(U.y,{job:t,onSizeChange:l}))}var M=a(76720);const X=(0,n.createContext)({lastDetail:null,setUserClosedAside:()=>{}});function K(e,t){switch(e){case"completed":return{className:q.completed,icon:{lib:"antd",theme:"filled",icon:"check-circle"}};case"submitted":case"working":return"terminated"===t?{icon:{lib:"fa",prefix:"far",icon:"circle-stop"}}:{className:q.working,icon:{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}};case"input-required":return{className:q["input-required"],icon:{lib:"fa",prefix:"far",icon:"circle-user"}};case"failed":return{className:q.failed,icon:{lib:"fa",prefix:"fas",icon:"xmark"}};case"canceled":case"terminated":return{className:q.canceled,icon:{lib:"fa",prefix:"far",icon:"circle-stop"}};case"skipped":return{icon:{lib:"fa",prefix:"fas",icon:"ban"}};default:return{icon:{lib:"fa",prefix:"far",icon:"clock"}}}}function Y(e){var t,a;let{job:s,isSubTask:l}=e;const r=s.toolCall,c=(null==r||null===(t=r.annotations)||void 0===t?void 0:t.title)||(null==r?void 0:r.name),d=null==r?void 0:r.name,p=!!r,{conversationState:u,setActiveDetail:f,setSubActiveDetail:b}=(0,n.useContext)(M.j),{lastDetail:h,setUserClosedAside:g}=(0,n.useContext)(X),{className:v,icon:x}=(0,n.useMemo)((()=>K(s.state,u)),[s.state,u]),[k,E]=(0,n.useMemo)((()=>{var e;const t=[],a=[],n=[];let i="llm_answer"===d;return null===(e=s.messages)||void 0===e||e.forEach((e=>{if("tool"===e.role)for(const o of e.parts){var s;if("data"===o.type)switch(null===(s=o.data)||void 0===s?void 0:s.type){case"markdown":t.push(o.data.content);break;case"cmdb_instance_detail":var l;a.push(o.data),i||(i=Object.keys("object"===(null===(l=o.data)||void 0===l||null===(l=l.outputSchema)||void 0===l?void 0:l.type)?o.data.outputSchema.properties:o.data.detail).length>6)}else"file"===o.type&&n.push(o.file)}})),[t.join(""),a,n]}),[s.messages,d]),[w,y]=(0,n.useState)(!1);return i().createElement("div",{className:o()({[q.collapsed]:w})},i().createElement("div",{className:q.main},null===(a=s.messages)||void 0===a?void 0:a.map(((e,t)=>{var a;return"tool"===e.role?null:i().createElement("div",{key:t,className:o()(q.message,G.A.markdown)},null===(a=e.parts)||void 0===a?void 0:a.map(((e,t)=>i().createElement(i().Fragment,{key:t},"text"===e.type&&i().createElement(L.w,{className:o()(q["message-part"],G.A["markdown-wrapper"]),content:e.text})))))}))),p&&i().createElement(i().Fragment,null,i().createElement("div",{className:o()(q.heading,v),onClick:()=>y((e=>!e))},i().createElement("div",{className:q.icon},i().createElement(m.Bj,x)),i().createElement("div",{className:q.title},s.instruction||c),i().createElement(m.Bj,(0,V.A)({className:q.caret},F.ae))),i().createElement("div",{className:q.body},i().createElement("div",{className:q.tool,onClick:()=>{const e={type:"job",id:s.id};(l?b:f)((t=>(0,z.isEqual)(t,e)?t:e)),(0,z.isEqual)(e,h)&&g(!1)}},i().createElement(m.Bj,{lib:"lucide",icon:"square-chevron-right"}),c),i().createElement("div",{className:q.content},k&&i().createElement("div",{className:o()(q.markdown,G.A.markdown)},i().createElement(L.w,{className:G.A["markdown-wrapper"],content:k})),E.map(((e,t)=>i().createElement("div",{key:t,className:q.box},i().createElement(O.H,e)))),s.generatedView?i().createElement(H,{job:s}):null))))}var Q=a(48952);function Z(e){let{chunk:t,isSubTask:a}=e;return"job"===t.type?i().createElement(Y,{job:t.job,isSubTask:a}):"error"===t.type?i().createElement("div",{className:q.error},t.error):i().createElement($,{chunk:t,isSubTask:a})}function $(e){let{chunk:t,isSubTask:a}=e;const{conversationState:s,setActiveDetail:l,setSubActiveDetail:r}=(0,n.useContext)(M.j),{setUserClosedAside:c,lastDetail:d}=(0,n.useContext)(X),[p,u]=(0,n.useState)(!1),{type:f,task:b}=t,{className:h,icon:g}=(0,n.useMemo)((()=>K("flow"===t.type?"completed":b.state,s)),[t.type,s,b.state]);return i().createElement("div",{className:o()({[q.collapsed]:p})},i().createElement("div",{className:o()(q.heading,h),onClick:()=>u((e=>!e))},i().createElement("div",{className:q.icon},i().createElement(m.Bj,g)),i().createElement("div",{className:q.title},"flow"===f?(0,Q.t)(Q.K.INITIATING_SERVICE_FLOW,{name:t.flow.name}):(0,Q.t)(Q.K.STARTING_SERVICE_FLOW_ACTIVITY,{name:t.activity.name})),i().createElement(m.Bj,(0,V.A)({className:q.caret},F.ae))),i().createElement("div",{className:q.body},i().createElement("div",{className:q.tool,onClick:()=>{const e={type:t.type,id:t.task.id};(a?r:l)((t=>(0,z.isEqual)(t,e)?t:e)),(0,z.isEqual)(e,d)&&c(!1)}},i().createElement(m.Bj,{lib:"lucide",icon:"route"}),"flow"===f?(0,Q.t)(Q.K.INITIATING_SERVICE_FLOW,{name:t.flow.name}):(0,Q.t)(Q.K.STARTING_SERVICE_FLOW_ACTIVITY,{name:t.activity.name}))))}var ee=a(17994),te={};te.styleTagTransform=y(),te.setAttributes=x(),te.insert=g().bind(null,"head"),te.domAPI=b(),te.insertStyleElement=E(),u()(ee.A,te);const ae=ee.A&&ee.A.locals?ee.A.locals:void 0;function ne(e){let{job:t}=e;return i().createElement("div",{className:ae.hil},i().createElement("div",{className:ae.content},i().createElement(m.Bj,{lib:"antd",icon:"exclamation-circle"}),(0,Q.t)(Q.K.HIL_TIPS,{name:t.hil.username})),t.requestHumanAction&&i().createElement("div",{className:ae.actions},i().createElement(D.n,{action:t.requestHumanAction,ui:"chat"})))}function ie(e){let{chunks:t,scopeState:a,isLatest:s,isSubTask:l}=e;const[o,r]=(0,n.useMemo)((()=>{const e=t[t.length-1];let n;if(e)switch(e.type){case"flow":case"activity":n=e.task.jobs[e.task.jobs.length-1];break;case"job":n=e.job;break;default:return[!1,void 0]}if(!s||F.Z5.includes(a))return[!1,n];for(const e of t)switch(e.type){case"flow":case"activity":if(e.task.jobs.some((e=>"input-required"===e.state)))return[!1,n];break;case"job":if("input-required"===e.job.state)return[!1,n]}return n&&"working"===n.state&&n.toolCall?[!1,n]:[!0,n]}),[s,t,a]);return i().createElement("div",{className:_.assistant},i().createElement(m.Bj,{lib:"easyops",category:"image",icon:"elevo-avatar-png",className:_.avatar}),i().createElement("div",{className:_.body},t.map(((e,t)=>i().createElement(Z,{key:t,chunk:e,isSubTask:l}))),o&&i().createElement("div",{className:_.texting}),s&&r&&!F.X4.includes(a)&&("working"===r.state||"input-required"===r.state)&&!r.humanAction&&(r.hil?i().createElement(ne,{job:r}):r.requestHumanAction&&i().createElement(D.n,{action:r.requestHumanAction,ui:"chat"}))))}var se=a(70046),le=a(62309),oe=a(83090),re={};re.styleTagTransform=y(),re.setAttributes=x(),re.insert=g().bind(null,"head"),re.domAPI=b(),re.insertStyleElement=E(),u()(oe.A,re);const ce=oe.A&&oe.A.locals?oe.A.locals:void 0;var de=a(39649),me=a(52616),pe=a(83685),ue={};ue.styleTagTransform=y(),ue.setAttributes=x(),ue.insert=g().bind(null,"head"),ue.domAPI=b(),ue.insertStyleElement=E(),u()(pe.A,ue);const fe=pe.A&&pe.A.locals?pe.A.locals:void 0;var be=a(625);let he=function(e){return e.WAITING="WAITING",e.EXECUTING="EXECUTING",e.PAUSED="PAUSED",e.SUCCEEDED="SUCCEEDED",e.FAILED="FAILED",e.TERMINATED="TERMINATED",e}({});const ge="bricks/ai-portal/FlowApp",ve=me.i18n.getFixedT(null,ge);var xe=a(99126);function ke(e,t,a){const i=(0,n.useRef)(!1),s=(0,n.useRef)(!1),[l,o]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{const e=t.current,n=a.current;if(s.current||!e||!n)return;const l=()=>{o(e.scrollTop+e.clientHeight+24<e.scrollHeight),i.current&&(s.current=e.scrollTop+e.clientHeight+6<e.scrollHeight)};let r;e.addEventListener("scroll",l);const c=new xe.A((()=>{s.current||(i.current=!1,e.scrollTo({top:n.scrollHeight,behavior:"instant"}),clearTimeout(r),r=setTimeout((()=>{i.current=!0}),100))}));return c.observe(n),()=>{c.disconnect(),e.removeEventListener("scroll",l)}}),[e]),{scrollable:l,scrollToBottom:(0,n.useCallback)((()=>{const e=t.current;null==e||e.scrollTo({top:null==e?void 0:e.scrollHeight,behavior:"instant"})}),[t])}}var Ee=a(86e3),we={};we.styleTagTransform=y(),we.setAttributes=x(),we.insert=g().bind(null,"head"),we.domAPI=b(),we.insertStyleElement=E(),u()(Ee.A,we);const ye=Ee.A&&Ee.A.locals?Ee.A.locals:void 0;function Ae(e){var t;let{flow:a,activity:s}=e;const{tasks:l,setActiveDetail:r}=(0,n.useContext)(M.j),c=(0,n.useMemo)((()=>l.find((e=>e.id===a.taskId))),[l,a.taskId]),d=(0,n.useMemo)((()=>a.spec.map((e=>{var t;return{...e,serviceFlowActivities:null===(t=e.serviceFlowActivities)||void 0===t?void 0:t.map((e=>{const t=l.find((t=>t.id===e.taskId));return{name:e.name,taskId:e.taskId,state:null==t?void 0:t.state,startTime:null==t?void 0:t.startTime,endTime:null==t?void 0:t.endTime}}))}}))),[a.spec,l]),p=(0,n.useMemo)((()=>Te(c.state)),[c.state]);return i().createElement("div",{className:fe.app},i().createElement("div",{className:fe.heading},i().createElement("div",{className:fe.header},i().createElement("div",{className:o()(fe.status,p.className)},i().createElement(m.Bj,p.icon),p.text),i().createElement("div",{className:fe.title},`${null!==(t=a.space)&&void 0!==t&&t.name?`${a.space.name} / `:""}${a.name}`)),i().createElement("div",{className:fe.chart},i().createElement(m.n$,{spec:d,activeActivityId:null==s?void 0:s.taskId,onActiveChange:e=>{e.detail&&r({type:"activity",id:e.detail})}}))),i().createElement("div",{className:fe.body},s?i().createElement(Ie,{activity:s}):i().createElement(m.F_,{className:fe.blank,description:"您还未选择活动",illustration:"serviceflows"})))}function Ie(e){let{activity:t}=e;const{tasks:a,errors:s}=(0,n.useContext)(M.j),l=(0,n.useMemo)((()=>a.find((e=>e.id===t.taskId))),[a,t.taskId]),o=l.state,{icon:r,className:c}=(0,n.useMemo)((()=>Te(o)),[o]),p=(0,n.useMemo)((()=>[{...l,parent:void 0}]),[l]),{messages:u}=d(!0,p,s),f=(0,n.useRef)(null),b=(0,n.useRef)(null),{scrollable:h,scrollToBottom:g}=ke(!0,f,b);return i().createElement(i().Fragment,null,i().createElement("div",{className:fe["activity-title"]},i().createElement(m.Bj,(0,V.A)({},r,{className:c})),t.name),i().createElement("div",{className:fe.chat,ref:f},i().createElement("div",{className:fe.messages,ref:b},u.map(((e,t,a)=>i().createElement("div",{className:fe.message,key:t},"user"===e.role?i().createElement(S,{content:e.content,cmd:e.cmd}):i().createElement(ie,{chunks:e.chunks,scopeState:l.state,isLatest:t===a.length-1,isSubTask:!0})))))),i().createElement("div",{className:ye["scroll-down"],style:{bottom:"30px"},hidden:!h,onClick:g},i().createElement(m.Bj,{lib:"antd",icon:"down"})))}function Te(e){const t=(0,be.W)(e);let a,n;switch(e){case"working":a=ve(he.EXECUTING),n=fe.working;break;case"completed":a=ve(he.SUCCEEDED),n=fe.completed;break;case"failed":a=ve(he.FAILED),n=fe.failed;break;case"input-required":a=ve(he.PAUSED),n=fe.paused;break;case"terminated":a=ve(he.TERMINATED);break;default:a=ve(e?he.EXECUTING:he.WAITING)}return{icon:t,text:a,className:n}}(0,me.initializeI18n)(ge,{en:{WAITING:"Waiting",EXECUTING:"Executing",PAUSED:"Paused",SUCCEEDED:"Succeeded",FAILED:"Failed",TERMINATED:"Terminated"},zh:{WAITING:"等待中",EXECUTING:"执行中",PAUSED:"暂停",SUCCEEDED:"成功",FAILED:"失败",TERMINATED:"已终止"}});const Ne={lib:"easyops",icon:"shrink"};function Se(e){let{detail:t,isSubTask:a,faded:s}=e;const{setActiveDetail:l,setSubActiveDetail:r}=(0,n.useContext)(M.j),{setUserClosedAside:c}=(0,n.useContext)(X),[d,p]=(0,n.useMemo)((()=>{const e=[],a=[],n=[];var i;return"job"===t.type&&(null===(i=t.job.messages)||void 0===i||i.forEach((t=>{if("tool"===t.role)for(const s of t.parts){var i;if("data"===s.type)switch(null===(i=s.data)||void 0===i?void 0:i.type){case"markdown":e.push(s.data.content);break;case"cmdb_instance_detail":a.push(s.data)}else"file"===s.type&&n.push(s.file)}}))),[e.join(""),a,n]}),[t]);return i().createElement("div",{className:o()(ce.aside,{[ce.sub]:a,[ce.faded]:s})},i().createElement("div",{className:ce.box},i().createElement("div",{className:ce.header},i().createElement("div",{className:ce.title},"Elevo's Computer"),i().createElement(m.Py,{icon:Ne,variant:"mini",onClick:()=>{a?r(null):(l(null),c(!0))}})),i().createElement("div",{className:ce.body},"job"===t.type?i().createElement(i().Fragment,null,i().createElement(de.t,{job:t.job,variant:"read-only"}),t.job.generatedView?i().createElement(je,{name:"View",source:t.job.generatedView.code,language:"jsx"}):d?i().createElement(je,{name:"Content",source:d,language:"md"}):p.length>0?i().createElement(je,{name:"CMDB",source:JSON.stringify(p,null,2),language:"json"}):null):i().createElement(Ae,{flow:t.flow,activity:t.activity}))))}function je(e){let{name:t,source:a,language:n}=e;return i().createElement("div",{className:o()(ce.app,ce.editor)},i().createElement("div",{className:ce.heading},`${t}.${n}`),i().createElement("div",{className:o()(ce.content,G.A.markdown)},i().createElement("div",{className:ce.scroller},i().createElement(m.yQ,{className:ce["code-block"],source:a,language:n,themeVariant:"elevo"}))))}var Ce=a(94625),_e=a(76239),Fe={};Fe.styleTagTransform=y(),Fe.setAttributes=x(),Fe.insert=g().bind(null,"head"),Fe.domAPI=b(),Fe.insertStyleElement=E(),u()(_e.A,Fe);const De=_e.A&&_e.A.locals?_e.A.locals:void 0;var Ve=a(86767),ze=a(98153),Re=a(88253),Pe=a(2367);const qe={lib:"easyops",icon:"share"};function Ge(e,t){var a;let{conversationId:l,initialRequest:c,replay:p,replayDelay:u,supports:f,showHumanActions:b,showFeedback:h,showFeedbackAfterFailed:g,showFeedbackOnView:v,showUiSwitch:x,previewUrlTemplate:k,showCases:E,exampleProjects:w,tryItOutUrl:y,onShare:A,onTerminate:I,onSubmitFeedback:T,onSwitchToCanvas:N,onFeedbackOnView:j,onDetailChange:C}=e;const{conversation:_,tasks:D,serviceFlows:V,errors:z,humanInputRef:R,skipToResults:P,watchAgain:q}=(0,r.u)(l,c,p,u),G=null!==(a=null==_?void 0:_.title)&&void 0!==a?a:"",L=null==_?void 0:_.state,O=F.QB.includes(L)||"input-required"===L,{flowMap:U,activityMap:W}=(0,Re.o)(V),{messages:J,jobMap:B,lastDetail:H}=d(!!_,D,z,U,W,{showHumanActions:b,skipActivitySubTasks:!0});(0,n.useEffect)((()=>{C({projectId:null==_?void 0:_.projectId})}),[C,null==_?void 0:_.projectId]);const K=(0,n.useMemo)((()=>B?[...B.values()].flatMap((e=>e.generatedView?{id:e.id,view:e.generatedView}:[])):[]),[B]),[Y,Z]=(0,n.useState)(!1),[$,ee]=(0,n.useState)(!1),[te,ae]=(0,n.useState)(!!h);(0,n.useEffect)((()=>{ae(!!h)}),[h]);const[ne,oe]=(0,n.useState)(),re=(0,n.useCallback)((e=>{Z(!0),T(e)}),[T]);(0,n.useImperativeHandle)(t,(()=>({feedbackSubmitDone:()=>{ee(!0),setTimeout((()=>{ae(!1)}),3e3)},feedbackSubmitFailed:()=>{Z(!1)},feedbackOnViewDone:e=>{oe((t=>{const a=new Set(t);return a.add(e),a}))}})),[]);const[ce,de]=(0,n.useState)(null),[me,pe]=(0,n.useState)(null),[ue,fe]=(0,n.useState)(null),[be,he]=(0,n.useState)(!1),ge=(0,n.useRef)(!1),ve=!!_;(0,n.useEffect)((()=>{if(ve){const e=setTimeout((()=>{ge.current=!0}),1e3);return()=>{clearTimeout(e)}}}),[ve]),(0,n.useEffect)((()=>{ge.current&&H&&!be&&pe(H)}),[H,be]),(0,n.useEffect)((()=>{(0,s.getRuntime)().applyPageTitle(G)}),[G]);const xe=(0,n.useCallback)(((e,t,a)=>{var n;null===(n=R.current)||void 0===n||n.call(R,e,t,a)}),[R]),Ee=J[0],we=(0,n.useMemo)((()=>{if("user"===(null==Ee?void 0:Ee.role))return Ee.content}),[Ee]),Ae=l,Ie=(0,n.useMemo)((()=>({conversationId:l,conversationState:L,tasks:D,errors:z,workspace:Ae,previewUrlTemplate:k,replay:p,showCases:E,exampleProjects:w,humanInput:xe,onShare:A,onTerminate:I,supports:f,activeExpandedViewJobId:ce,setActiveExpandedViewJobId:de,activeDetail:me,setActiveDetail:pe,subActiveDetail:ue,setSubActiveDetail:fe,submittingFeedback:Y,submittedFeedback:$,onSubmitFeedback:re,setShowFeedback:ae,showFeedbackOnView:v,onFeedbackOnView:j,feedbackDoneViews:ne,skipToResults:P,watchAgain:q,tryItOut(){const e=window.open(`${(0,s.getBasePath)().slice(0,-1)}${null!=y?y:"/elevo"}`,"_blank");e&&(e.__elevo_try_it_out={content:we})}})),[l,L,D,z,Ae,k,p,E,w,xe,A,I,f,ce,me,ue,Y,$,re,v,j,ne,P,q,we,y]),Te=(0,n.useMemo)((()=>({lastDetail:H,setUserClosedAside:he})),[H]),Ne=(0,n.useRef)(null),je=(0,n.useRef)(null),{scrollable:_e,scrollToBottom:Fe}=ke(ve,Ne,je),Ge=(0,Pe.U)(me,B,U,W),Le=(0,Pe.U)(ue,B,U,W);return i().createElement(M.j.Provider,{value:Ie},i().createElement(X.Provider,{value:Te},i().createElement("div",{className:De.container},i().createElement("div",{className:De.header},i().createElement("div",{className:De.left}),i().createElement("h1",null,G),i().createElement("div",{className:De.right},x&&i().createElement(m.Py,{className:De["navbar-switch-ui"],icon:F.Rq,variant:"mini",title:(0,Q.t)(Q.K.SWITCH_TO_CANVAS),onClick:N}),i().createElement(m.Py,{icon:qe,variant:"mini",onClick:A}))),ve?i().createElement(i().Fragment,null,i().createElement("div",{className:De.main,ref:Ne},i().createElement("div",{className:De.narrow,ref:je},J.map(((e,t,a)=>i().createElement("div",{className:De.message,key:t},"user"===e.role?i().createElement(S,{content:e.content,cmd:e.cmd}):i().createElement(ie,{chunks:e.chunks,scopeState:L,isLatest:t===a.length-1})))),p?(null==_?void 0:_.finished)&&i().createElement(ze.A,{finished:!0,ui:"chat"}):te&&("completed"===L||"failed"===L&&g)&&i().createElement(Ce.k,{className:De.feedback}))),i().createElement("div",{className:ye["scroll-down"],hidden:!_e,onClick:Fe},i().createElement(m.Bj,{lib:"antd",icon:"down"})),(p?null==_||!_.finished:null==f?void 0:f.chat)?i().createElement("div",{className:De.footer},i().createElement("div",{className:De.narrow},p?i().createElement(ze.A,null):i().createElement(se.s,{state:L,canChat:O}))):null):i().createElement("div",{className:De["loading-icon"]},i().createElement(m.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}))),i().createElement("div",{className:o()(De.aside,{[De.expanded]:!!Ge})},Ge&&i().createElement(Se,{detail:Ge,faded:!!Le}),Le&&i().createElement(Se,{detail:Le,isSubTask:!0})),ce&&i().createElement(le.f,{views:K}),x&&i().createElement("div",{className:o()(Ve.A.toolbar,De.toolbar)},i().createElement(m.Py,{icon:F.Rq,variant:"mini",title:(0,Q.t)(Q.K.SWITCH_TO_CANVAS),onClick:N}))))}},17994:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,".hil--e3zZFYQc{background:rgba(255,255,255,0.5);border-radius:8px;border:1px solid #ffffff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:13px 16px;margin-top:12px}.content--tmVj790o,\n.actions--wbNFKF3J{display:flex;align-items:center}.content--tmVj790o{gap:10px;flex-wrap:wrap}.actions--wbNFKF3J{justify-content:flex-end;margin-top:-3px}",""]),l.locals={hil:"hil--e3zZFYQc",content:"content--tmVj790o",actions:"actions--wbNFKF3J"};const o=l},26598:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,".user--HjXM9OHW{background:rgba(255,255,255,0.6);border-radius:24px;padding:8px 16px;width:-moz-fit-content;width:fit-content;max-width:500px;margin-left:auto;overflow-wrap:break-word;white-space:pre-wrap;font-size:16px;line-height:26px}",""]),l.locals={user:"user--HjXM9OHW"};const o=l},32360:(e,t,a)=>{e.exports=a.p+"images/72c24398.png"},35754:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,'.assistant--CrlgPgYL{display:flex}.body--sAIo2dhL{flex:1;min-width:0;padding:3px 0 3px 16px}.texting--Rpmsbpca{position:relative}.texting--Rpmsbpca::after{content:" ";animation:texting--Rpmsbpca 2s infinite;white-space:pre}.avatar--jaJhEiSV{font-size:32px}@keyframes texting--Rpmsbpca{0%{content:"\\00a0\\00a0\\00a0"}25%{content:".\\00a0\\00a0"}50%{content:"..\\00a0"}75%{content:"..."}100%{content:"\\00a0\\00a0\\00a0"}}',""]),l.locals={assistant:"assistant--CrlgPgYL",body:"body--sAIo2dhL",texting:"texting--Rpmsbpca",avatar:"avatar--jaJhEiSV"};const o=l},48952:(e,t,a)=>{a.d(t,{I:()=>l,K:()=>i,NS:()=>s,t:()=>o});var n=a(52616);let i=function(e){return e.SWITCH_TO_CANVAS="SWITCH_TO_CANVAS",e.INITIATING_SERVICE_FLOW="INITIATING_SERVICE_FLOW",e.STARTING_SERVICE_FLOW_ACTIVITY="STARTING_SERVICE_FLOW_ACTIVITY",e.HIL_TIPS="HIL_TIPS",e}({});const s="bricks/ai-portal/chat-stream",l={en:{SWITCH_TO_CANVAS:"Switch to canvas",INITIATING_SERVICE_FLOW:"Initiating service flow: {{ name }}",STARTING_SERVICE_FLOW_ACTIVITY:"Starting service flow activity: {{ name }}",HIL_TIPS:"Triggered HIL rule, waiting for {{ name }} to process."},zh:{SWITCH_TO_CANVAS:"切换为画布",INITIATING_SERVICE_FLOW:"发起业务流:{{ name }}",STARTING_SERVICE_FLOW_ACTIVITY:"开始业务流活动:{{ name }}",HIL_TIPS:"触发 HIL 规则,等待 {{ name }} 处理。"}},o=n.i18n.getFixedT(null,s)},50094:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,'.heading--lj5kJ2fg{display:flex;align-items:center;padding:5px 8px;margin:0 -8px 12px;cursor:pointer}.main--P8894aNV{font-size:16px;line-height:26px}.caret--XqX6mjyf{opacity:0;transition:transform 0.2s ease-in-out}.heading--lj5kJ2fg:hover{background:rgba(184,187,205,0.15);border-radius:8px}.heading--lj5kJ2fg:hover .caret--XqX6mjyf{opacity:1}.icon--l8SzaFlV{display:flex;align-items:center;margin-right:12px}.title--FZPCnJbE{color:#262626;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool--ugqSpeIM{background:#e2e5ef;border:1px solid #d4d4de;border-radius:13px;line-height:24px;padding:0 12px;width:-moz-fit-content;width:fit-content;font-size:12px;color:rgba(0,0,0,0.65);cursor:pointer;display:flex;align-items:center;gap:7px}.tool--ugqSpeIM eo-icon{font-size:14px;color:#8c8c8c}.body--p3Zt_jA4{padding-left:26px;margin-bottom:20px}.collapsed--cGSG2zk_ .body--p3Zt_jA4{display:none}.collapsed--cGSG2zk_ .caret--XqX6mjyf{transform:rotate(180deg);opacity:1}.content--pBkkWQ5e{margin-top:14px}.content--pBkkWQ5e .markdown--Ky2J85cs [class*="code-wrapper--"]::part(mermaid){background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;min-width:var(--cruise-canvas-node-width-medium);width:auto;max-width:100%}.content--pBkkWQ5e:empty{display:none}.message--okEUzWzg:first-child > .message-part--kxjYnHz0:first-child > :first-child{margin-top:0}.icon--l8SzaFlV{color:#abaab7}.completed--JWq7E1Jw .icon--l8SzaFlV{color:#0fbe59}.failed--uk7jDD7K .icon--l8SzaFlV{color:#f24c25}.working--dZiN0y04 .icon--l8SzaFlV{color:var(--elevo-color-brand)}.input-required--JSuPr8br .icon--l8SzaFlV{color:#12aacc}.canceled--LyMjPJQd .icon--l8SzaFlV{color:#fcaa07}ai-portal\\.chat-stream[hide-mermaid] .content--pBkkWQ5e .markdown--Ky2J85cs .mermaid{display:none}.error--n_Of3DwP{color:var(--color-error);white-space:pre-wrap;word-break:break-word}',""]),l.locals={heading:"heading--lj5kJ2fg",main:"main--P8894aNV",caret:"caret--XqX6mjyf",icon:"icon--l8SzaFlV",title:"title--FZPCnJbE",tool:"tool--ugqSpeIM",body:"body--p3Zt_jA4",collapsed:"collapsed--cGSG2zk_",content:"content--pBkkWQ5e",markdown:"markdown--Ky2J85cs",message:"message--okEUzWzg","message-part":"message-part--kxjYnHz0",completed:"completed--JWq7E1Jw",failed:"failed--uk7jDD7K",working:"working--dZiN0y04","input-required":"input-required--JSuPr8br",canceled:"canceled--LyMjPJQd",error:"error--n_Of3DwP"};const o=l},65438:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,".view--O8CNDdS_{background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px;width:var(--cruise-canvas-node-width-medium);max-width:100%;margin-top:14px}.large--jT3IWlRf{width:var(--cruise-canvas-node-width-large)}",""]),l.locals={view:"view--O8CNDdS_",large:"large--jT3IWlRf"};const o=l},76239:(e,t,a)=>{a.d(t,{A:()=>p});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s),o=a(20062),r=a.n(o),c=new URL(a(32360),a.b),d=l()(i()),m=r()(c);d.push([e.id,`ai-portal\\.chat-stream{display:flex;position:relative;width:100%;height:100%;overflow:hidden;background-color:#f3f3f4;background-image:url(${m});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:rgba(0,0,0,0.88);--cruise-canvas-node-width-small:330px;--cruise-canvas-node-width-medium:453px;--cruise-canvas-node-width-large:800px;--cruise-canvas-primary-color:var(--elevo-color-brand);--cruise-canvas-input-background:rgba(255,255,255,0.8);--cruise-canvas-input-box-shadow:0px 1px 0px 0px #ffffff,inset 0px 2px 4px 0px #b3bcf9}.container--IOwk4fR1{display:flex;flex-direction:column;position:relative;flex:1;min-width:0}.header--O9c4lNA3{height:54px;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.header--O9c4lNA3 h1{font-weight:500;font-size:14px;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.header--O9c4lNA3 .left--ed9ka1jF,.header--O9c4lNA3 .right--fs8TyVN3{width:56px}.header--O9c4lNA3 .right--fs8TyVN3{display:flex;align-items:center;justify-content:end;gap:8px}.main--KDIjetJs{overflow-y:auto;flex:1;padding:20px 24px}.narrow--xWih9UIb{width:100%;max-width:800px;margin:0 auto}.message--YIXGDQNi + .message--YIXGDQNi{margin-top:40px}.loading-icon--lagcmORP{flex:1;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff}.footer--aLZ8UWjM{padding:0 20px 24px}.aside--Xjd6To2A{width:0%;height:100%;transition:width 0.2s ease-in-out;position:relative}.expanded--xZgk3uBF{width:50%}.feedback--YbYylTcK{margin:24px auto 0}.toolbar--uiLshJmw{left:20px;bottom:20px}.navbar-switch-ui--hREVJ6zG{display:none}@media (max-width: 1123px){div.toolbar--uiLshJmw{display:none}.navbar-switch-ui--hREVJ6zG{display:block}}`,""]),d.locals={container:"container--IOwk4fR1",header:"header--O9c4lNA3",left:"left--ed9ka1jF",right:"right--fs8TyVN3",main:"main--KDIjetJs",narrow:"narrow--xWih9UIb",message:"message--YIXGDQNi","loading-icon":"loading-icon--lagcmORP",footer:"footer--aLZ8UWjM",aside:"aside--Xjd6To2A",expanded:"expanded--xZgk3uBF",feedback:"feedback--YbYylTcK",toolbar:"toolbar--uiLshJmw","navbar-switch-ui":"navbar-switch-ui--hREVJ6zG"};const p=d},83090:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,".aside--DDIdDtkt{padding:12px 12px 12px 0;height:100%}.faded--AsNxuT2v{opacity:0.4}.sub--d8EpebQt{position:absolute;top:16px;right:16px;left:-16px;height:calc(100% - 16px)}.box--niuFBiiQ{background:#ffffff;box-shadow:1px 1px 10px 0px rgba(0,10,26,0.1);border-radius:12px;height:100%;display:flex;flex-direction:column}.header--DPl_hrTp{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,0.15);padding:0 20px}.title--HlE9yRcJ{font-weight:500;font-size:16px;color:#262626}.body--OLKz1zeC{flex:1;min-height:0;padding:20px;display:flex;flex-direction:column}.app--UanK0TGf{flex:1;min-height:0;background:#ffffff;border-radius:9px;border:1px solid #ccd1de;margin-top:16px;overflow:hidden;display:flex;flex-direction:column}.heading--ngRi_rQ4{background:#e6e9f3;color:#5e6472;padding:5px 14px}.content--I2i0y65v{font-size:12px;flex:1;min-height:0;position:relative}.scroller--mLfznC_I{height:100%;overflow-x:hidden;overflow-y:auto;overflow:hidden auto;padding:10px}.scroller--mLfznC_I.loading--U1GWHEp9{display:flex;align-items:center;justify-content:center}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(wrapper){position:static;margin:0}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(pre){background:none!important;padding:0;border-radius:0;border:0}",""]),l.locals={aside:"aside--DDIdDtkt",faded:"faded--AsNxuT2v",sub:"sub--d8EpebQt",box:"box--niuFBiiQ",header:"header--DPl_hrTp",title:"title--HlE9yRcJ",body:"body--OLKz1zeC",app:"app--UanK0TGf",heading:"heading--ngRi_rQ4",content:"content--I2i0y65v",scroller:"scroller--mLfznC_I",loading:"loading--U1GWHEp9",editor:"editor--p_Sqs1os","code-block":"code-block--XiUVX7st"};const o=l},83685:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,".app--qxnx6yuG{border-radius:9px;border:1px solid #ccd1de;flex:1;min-height:0;display:flex;flex-direction:column}.heading--SbCRupnn{border-bottom:1px solid #ccd1de;border-radius:9px 9px 0 0;background-image:radial-gradient(circle at 1px 1px,#ddd 1px,transparent 0px);background-size:25px 25px;background-position:12px;max-height:50%;display:flex;flex-direction:column}.header--LGXNxV5J{display:flex;align-items:center;padding:16px 30px}.status--aqbJGBcl{background:#aeb3bc;border-radius:100px;height:40px;padding:9px 16px;display:flex;align-items:center;gap:8px;font-size:18px;color:#ffffff}.status--aqbJGBcl eo-icon{font-size:22px}.status--aqbJGBcl.paused--U1cc3Ksn{background:#f0a22e}.status--aqbJGBcl.working--f2PYqFo7{background:#4f69ff}.status--aqbJGBcl.completed--Ihiekkve{background:#08bf33}.status--aqbJGBcl.failed--kB8wxIZ0{background:var(--color-error)}.title--IRvB2t7z{font-weight:500;font-size:16px;margin-left:40px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart--mypbn8pI{padding:8px 22px 18px;overflow:auto;min-height:0}.body--jnk1EIz0{padding:16px 12px 12px;display:flex;flex:1;min-height:0;flex-direction:column;position:relative}.activity-title--hF6stwmT{font-weight:500;font-size:16px;display:flex;align-items:center;gap:6px;margin-bottom:16px}.activity-title--hF6stwmT eo-icon{font-size:20px;color:#8c8c8c}.activity-title--hF6stwmT .paused--U1cc3Ksn{color:#f0a22e}.activity-title--hF6stwmT .working--f2PYqFo7{color:#4f69ff}.activity-title--hF6stwmT .completed--Ihiekkve{color:#08bf33}.activity-title--hF6stwmT .failed--kB8wxIZ0{color:var(--color-error)}.chat--nEzTEXbV{background:rgba(227,228,229,0.4);border:1px solid rgba(0,0,0,0.1);border-radius:8px;padding:16px 20px;flex:1;min-height:0;overflow-y:auto}.messages--vLiwUYSP{width:100%;margin:0 auto}.message--Okzj6NDx + .message--Okzj6NDx{margin-top:40px}",""]),l.locals={app:"app--qxnx6yuG",heading:"heading--SbCRupnn",header:"header--LGXNxV5J",status:"status--aqbJGBcl",paused:"paused--U1cc3Ksn",working:"working--f2PYqFo7",completed:"completed--Ihiekkve",failed:"failed--kB8wxIZ0",title:"title--IRvB2t7z",chart:"chart--mypbn8pI",body:"body--jnk1EIz0","activity-title":"activity-title--hF6stwmT",chat:"chat--nEzTEXbV",messages:"messages--vLiwUYSP",message:"message--Okzj6NDx"};const o=l},86e3:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),s=a(40935),l=a.n(s)()(i());l.push([e.id,".scroll-down--st4A5sQ4{display:flex;align-items:center;justify-content:center;position:absolute;left:50%;bottom:120px;transform:translateX(-50%);width:32px;height:32px;font-size:12px;border-radius:16px;background:#ffffff;box-shadow:0px 4px 8px 0px rgba(0,0,0,0.06);border:1px solid rgba(0,0,0,0.02);cursor:pointer}.scroll-down--st4A5sQ4:hover{box-shadow:0px 6px 12px 0px rgba(0,0,0,0.1)}",""]),l.locals={"scroll-down":"scroll-down--st4A5sQ4"};const o=l}}]);
|
|
2
|
-
//# sourceMappingURL=9270.e909e789.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/9270.e909e789.js","mappings":"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","sources":["webpack:///./src/shared/getFlowOrActivityIcon.ts","webpack:///./src/chat-stream/useConversationStream.ts","webpack:///./src/chat-stream/UserMessage/UserMessage.module.css?84b2","webpack:///./src/chat-stream/UserMessage/UserMessage.tsx","webpack:///./src/chat-stream/AssistantMessage/AssistantMessage.module.css?a84b","webpack:///./src/chat-stream/NodeChunk/NodeChunk.module.css?1c0e","webpack:///./src/chat-stream/NodeView/NodeView.module.css?3001","webpack:///./src/chat-stream/NodeView/NodeView.tsx","webpack:///./src/chat-stream/StreamContext.ts","webpack:///./src/chat-stream/NodeChunk/getStateDisplay.ts","webpack:///./src/chat-stream/NodeChunk/NodeJob.tsx","webpack:///./src/chat-stream/NodeChunk/NodeChunk.tsx","webpack:///./src/chat-stream/HumanInTheLoop/HumanInTheLoop.module.css?e637","webpack:///./src/chat-stream/HumanInTheLoop/HumanInTheLoop.tsx","webpack:///./src/chat-stream/AssistantMessage/AssistantMessage.tsx","webpack:///./src/chat-stream/Aside/Aside.module.css?0aa1","webpack:///./src/chat-stream/Aside/FlowApp/FlowApp.module.css?5832","webpack:///./src/chat-stream/Aside/FlowApp/i18n.ts","webpack:///./src/chat-stream/useAutoScroll.ts","webpack:///./src/chat-stream/ScrollDownButton.module.css?e644","webpack:///./src/chat-stream/Aside/FlowApp/FlowApp.tsx","webpack:///./src/chat-stream/Aside/Aside.tsx","webpack:///./src/chat-stream/styles.module.css?c00e","webpack:///./src/chat-stream/ChatStream.tsx","webpack:///./src/chat-stream/HumanInTheLoop/HumanInTheLoop.module.css","webpack:///./src/chat-stream/UserMessage/UserMessage.module.css","webpack:///./src/chat-stream/AssistantMessage/AssistantMessage.module.css","webpack:///./src/chat-stream/i18n.ts","webpack:///./src/chat-stream/NodeChunk/NodeChunk.module.css","webpack:///./src/chat-stream/NodeView/NodeView.module.css","webpack:///./src/chat-stream/styles.module.css","webpack:///./src/chat-stream/Aside/Aside.module.css","webpack:///./src/chat-stream/Aside/FlowApp/FlowApp.module.css","webpack:///./src/chat-stream/ScrollDownButton.module.css"],"sourcesContent":["import type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport type { ConversationState, JobState, TaskState } from \"./interfaces\";\n\nexport function getFlowOrActivityIcon(\n state: TaskState | JobState | ConversationState | undefined\n): GeneralIconProps {\n switch (state) {\n case \"input-required\":\n return { lib: \"antd\", theme: \"filled\", icon: \"pause-circle\" };\n case \"completed\":\n return { lib: \"antd\", theme: \"filled\", icon: \"check-circle\" };\n case \"failed\":\n return { lib: \"antd\", theme: \"filled\", icon: \"close-circle\" };\n case \"terminated\":\n return { lib: \"antd\", theme: \"filled\", icon: \"stop\" };\n case \"working\":\n return { lib: \"antd\", icon: \"loading-3-quarters\", spinning: true };\n default:\n return { lib: \"antd\", theme: \"filled\", icon: \"clock-circle\" };\n }\n}\n","import { useMemo } from \"react\";\nimport type { ChatMessage, MessageFromAssistant } from \"./interfaces.js\";\nimport type {\n ActiveDetail,\n ActivityWithFlow,\n ConversationError,\n ServiceFlowRun,\n Task,\n} from \"../shared/interfaces.js\";\nimport { getFlatChunks } from \"../shared/getFlatChunks.js\";\n\nexport function useConversationStream(\n conversationAvailable: boolean,\n tasks: Task[],\n errors: ConversationError[],\n flowMap?: Map<string, ServiceFlowRun>,\n activityMap?: Map<string, ActivityWithFlow>,\n options?: {\n showHumanActions?: boolean;\n skipActivitySubTasks?: boolean;\n }\n) {\n const showHumanActions = options?.showHumanActions;\n const skipActivitySubTasks = options?.skipActivitySubTasks;\n\n return useMemo(() => {\n if (!conversationAvailable) {\n return {\n messages: [],\n lastDetail: null,\n };\n }\n\n const { chunks, jobMap } = getFlatChunks(\n tasks,\n errors,\n flowMap,\n activityMap,\n skipActivitySubTasks\n );\n const messages: ChatMessage[] = [];\n\n let prevAssistantMessage: MessageFromAssistant = {\n role: \"assistant\",\n chunks: [],\n };\n let lastDetail: ActiveDetail | null = null;\n for (const chunk of chunks) {\n if (chunk.type === \"job\") {\n const job = chunk.job;\n if (job.toolCall) {\n lastDetail = {\n type: \"job\",\n id: job.id,\n };\n }\n\n if (\n job.state === \"completed\" &&\n job.messages?.length &&\n job.messages.every((msg) => msg.role === \"user\")\n ) {\n if (prevAssistantMessage.chunks.length > 0) {\n messages.push(prevAssistantMessage);\n }\n messages.push({\n role: \"user\",\n content: job.messages\n .flatMap((msg) =>\n msg.parts.map((part) => (part.type === \"text\" ? part.text : \"\"))\n )\n .join(\"\"),\n cmd: job.cmd,\n fromSkippedSubTask: chunk.fromSkippedSubTask,\n });\n prevAssistantMessage = {\n role: \"assistant\",\n chunks: [],\n };\n } else {\n prevAssistantMessage.chunks.push(chunk);\n }\n\n if (job.humanAction) {\n if (prevAssistantMessage.chunks.length > 0) {\n messages.push(prevAssistantMessage);\n }\n if (showHumanActions) {\n messages.push({\n role: \"user\",\n content: job.humanAction,\n });\n }\n prevAssistantMessage = {\n role: \"assistant\",\n chunks: [],\n };\n }\n } else {\n prevAssistantMessage.chunks.push(chunk);\n if (chunk.type !== \"error\") {\n lastDetail = {\n type: chunk.type,\n id: chunk.task.id,\n };\n }\n }\n }\n\n let shouldAppendEmptyMessage = messages.length > 0;\n if (\n shouldAppendEmptyMessage &&\n prevAssistantMessage.role === \"assistant\" &&\n prevAssistantMessage.chunks.length === 0\n ) {\n const lastMessage = messages[messages.length - 1];\n if (lastMessage.role === \"user\" && lastMessage.fromSkippedSubTask) {\n shouldAppendEmptyMessage = false;\n }\n }\n\n if (prevAssistantMessage.chunks.length > 0 || shouldAppendEmptyMessage) {\n messages.push(prevAssistantMessage);\n }\n\n return { messages, jobMap, lastDetail };\n }, [\n conversationAvailable,\n tasks,\n flowMap,\n activityMap,\n errors,\n showHumanActions,\n skipActivitySubTasks,\n ]);\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./UserMessage.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./UserMessage.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport styles from \"./UserMessage.module.css\";\nimport type { CommandPayload } from \"../../shared/interfaces\";\nimport { ReadableCommand } from \"../../shared/ReadableCommand/ReadableCommand\";\n\nexport interface UserMessageProps {\n content: string;\n cmd?: CommandPayload;\n}\n\nexport function UserMessage({ content, cmd }: UserMessageProps) {\n return (\n <div className={styles.user}>\n {cmd && <ReadableCommand cmd={cmd} />}\n {content}\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./AssistantMessage.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./AssistantMessage.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeChunk.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeChunk.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeView.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeView.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","// istanbul ignore file: experimental\nimport React, { useCallback, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { CreatedView } from \"../../shared/CreatedView/CreatedView\";\nimport type { Job } from \"../../shared/interfaces\";\nimport styles from \"./NodeView.module.css\";\n\nexport interface NodeViewProps {\n job: Job;\n}\n\nexport function NodeView({ job }: NodeViewProps): JSX.Element {\n const [size, setSize] = useState<\"medium\" | \"large\">(\"medium\");\n\n const handleSizeChange = useCallback((value: \"medium\" | \"large\") => {\n setSize(value);\n }, []);\n\n return (\n <div\n className={classNames(styles.view, {\n [styles.large]: size === \"large\",\n })}\n >\n <CreatedView job={job} onSizeChange={handleSizeChange} />\n </div>\n );\n}\n","import { createContext, type Dispatch } from \"react\";\nimport type { ActiveDetail } from \"../shared/interfaces\";\n\nexport interface StreamContextValue {\n lastDetail: ActiveDetail | null;\n setUserClosedAside: Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const StreamContext = createContext<StreamContextValue>({\n lastDetail: null,\n setUserClosedAside: () => {},\n});\n","import type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport type {\n ConversationState,\n JobState,\n TaskState,\n} from \"../../shared/interfaces\";\nimport styles from \"./NodeChunk.module.css\";\n\nexport function getStateDisplay(\n state: JobState | TaskState | undefined,\n conversationState: ConversationState | undefined\n): {\n className?: string;\n icon: GeneralIconProps;\n} {\n switch (state) {\n case \"completed\":\n return {\n className: styles.completed,\n icon: {\n lib: \"antd\",\n theme: \"filled\",\n icon: \"check-circle\",\n },\n };\n case \"submitted\":\n case \"working\":\n if (conversationState === \"terminated\") {\n return {\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n },\n };\n }\n return {\n className: styles.working,\n icon: {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"loading-3-quarters\",\n spinning: true,\n },\n };\n case \"input-required\":\n return {\n className: styles[\"input-required\"],\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-user\",\n },\n };\n case \"failed\":\n return {\n className: styles.failed,\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"xmark\",\n },\n };\n case \"canceled\":\n case \"terminated\" as JobState:\n return {\n className: styles.canceled,\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n },\n };\n case \"skipped\":\n return {\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"ban\",\n },\n };\n default:\n return {\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"clock\",\n },\n };\n }\n}\n","import React, { useContext, useMemo, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { isEqual } from \"lodash\";\nimport type { CmdbInstanceDetailData } from \"../../cruise-canvas/interfaces.js\";\nimport styles from \"./NodeChunk.module.css\";\nimport sharedStyles from \"../../cruise-canvas/shared.module.css\";\nimport { WrappedIcon } from \"../../shared/bricks.js\";\nimport { EnhancedMarkdown } from \"../../cruise-canvas/EnhancedMarkdown/EnhancedMarkdown.js\";\nimport { CmdbInstanceDetail } from \"../../cruise-canvas/CmdbInstanceDetail/CmdbInstanceDetail.js\";\nimport { NodeView } from \"../NodeView/NodeView.js\";\nimport { TaskContext } from \"../../shared/TaskContext.js\";\nimport { StreamContext } from \"../StreamContext.js\";\nimport type { ActiveDetail, FileInfo, Job } from \"../../shared/interfaces.js\";\nimport { getStateDisplay } from \"./getStateDisplay.js\";\nimport { ICON_UP } from \"../../shared/constants.js\";\n\nexport interface NodeJobProps {\n job: Job;\n isSubTask?: boolean;\n}\n\nexport function NodeJob({ job, isSubTask }: NodeJobProps) {\n const toolCall = job.toolCall;\n const toolTitle = toolCall?.annotations?.title || toolCall?.name;\n const toolName = toolCall?.name;\n const showToolCall = !!toolCall;\n const { conversationState, setActiveDetail, setSubActiveDetail } =\n useContext(TaskContext);\n const { lastDetail, setUserClosedAside } = useContext(StreamContext);\n\n const { className, icon } = useMemo(() => {\n return getStateDisplay(job.state, conversationState);\n }, [job.state, conversationState]);\n\n const [toolMarkdownContent, cmdbInstanceDetails /* , files */] =\n useMemo(() => {\n const contents: string[] = [];\n const instanceDetails: CmdbInstanceDetailData[] = [];\n const files: FileInfo[] = [];\n let large = toolName === \"llm_answer\";\n job.messages?.forEach((message) => {\n if (message.role === \"tool\") {\n for (const part of message.parts) {\n if (part.type === \"data\") {\n switch (part.data?.type) {\n case \"markdown\":\n contents.push(part.data.content);\n break;\n case \"cmdb_instance_detail\":\n instanceDetails.push(part.data as CmdbInstanceDetailData);\n if (!large) {\n large =\n Object.keys(\n part.data?.outputSchema?.type === \"object\"\n ? part.data.outputSchema.properties\n : part.data.detail\n ).length > 6;\n }\n break;\n }\n } else if (part.type === \"file\") {\n files.push(part.file);\n }\n }\n }\n });\n\n const markdownContent = contents.join(\"\");\n\n return [markdownContent, instanceDetails, files] as const;\n }, [job.messages, toolName]);\n\n const [collapsed, setCollapsed] = useState(false);\n\n return (\n <div className={classNames({ [styles.collapsed]: collapsed })}>\n <div className={styles.main}>\n {job.messages?.map((message, index) =>\n message.role === \"tool\" ? null : (\n <div\n key={index}\n className={classNames(styles.message, sharedStyles.markdown)}\n >\n {message.parts?.map((part, partIndex) => (\n <React.Fragment key={partIndex}>\n {part.type === \"text\" && (\n <EnhancedMarkdown\n className={classNames(\n styles[\"message-part\"],\n sharedStyles[\"markdown-wrapper\"]\n )}\n content={part.text}\n />\n )}\n </React.Fragment>\n ))}\n </div>\n )\n )}\n </div>\n {showToolCall && (\n <>\n <div\n className={classNames(styles.heading, className)}\n onClick={() => setCollapsed((prev) => !prev)}\n >\n <div className={styles.icon}>\n <WrappedIcon {...icon} />\n </div>\n <div className={styles.title}>{job.instruction || toolTitle}</div>\n <WrappedIcon className={styles.caret} {...ICON_UP} />\n </div>\n <div className={styles.body}>\n <div\n className={styles.tool}\n onClick={() => {\n const detail: ActiveDetail = {\n type: \"job\",\n id: job.id,\n };\n (isSubTask ? setSubActiveDetail : setActiveDetail)((prev) =>\n isEqual(prev, detail) ? prev : detail\n );\n if (isEqual(detail, lastDetail)) {\n setUserClosedAside(false);\n }\n }}\n >\n <WrappedIcon lib=\"lucide\" icon=\"square-chevron-right\" />\n {toolTitle}\n </div>\n <div className={styles.content}>\n {toolMarkdownContent && (\n <div\n className={classNames(styles.markdown, sharedStyles.markdown)}\n >\n <EnhancedMarkdown\n className={sharedStyles[\"markdown-wrapper\"]}\n content={toolMarkdownContent}\n />\n </div>\n )}\n {cmdbInstanceDetails.map((detail, index) => (\n <div key={index} className={styles.box}>\n <CmdbInstanceDetail {...detail} />\n </div>\n ))}\n {job.generatedView ? <NodeView job={job} /> : null}\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n","import React, { useContext, useMemo, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { isEqual } from \"lodash\";\nimport styles from \"./NodeChunk.module.css\";\nimport type {\n MessageChunk,\n MessageChunkOfActivity,\n MessageChunkOfFlow,\n} from \"../interfaces.js\";\nimport { NodeJob } from \"./NodeJob.js\";\nimport { WrappedIcon } from \"../../shared/bricks\";\nimport { getStateDisplay } from \"./getStateDisplay.js\";\nimport { TaskContext } from \"../../shared/TaskContext\";\nimport { ICON_UP } from \"../../shared/constants\";\nimport { StreamContext } from \"../StreamContext\";\nimport { K, t } from \"../i18n\";\n\nexport interface NodeChunkProps {\n chunk: MessageChunk;\n isSubTask?: boolean;\n}\n\nexport function NodeChunk({ chunk, isSubTask }: NodeChunkProps) {\n if (chunk.type === \"job\") {\n return <NodeJob job={chunk.job} isSubTask={isSubTask} />;\n }\n\n if (chunk.type === \"error\") {\n return <div className={styles.error}>{chunk.error}</div>;\n }\n\n return <NodeTask chunk={chunk} isSubTask={isSubTask} />;\n}\n\ninterface NodeTaskProps {\n chunk: MessageChunkOfFlow | MessageChunkOfActivity;\n isSubTask?: boolean;\n}\n\nfunction NodeTask({ chunk, isSubTask }: NodeTaskProps) {\n const { conversationState, setActiveDetail, setSubActiveDetail } =\n useContext(TaskContext);\n const { setUserClosedAside, lastDetail } = useContext(StreamContext);\n const [collapsed, setCollapsed] = useState(false);\n const { type, task } = chunk;\n\n const { className, icon } = useMemo(() => {\n return getStateDisplay(\n chunk.type === \"flow\" ? \"completed\" : task.state,\n conversationState\n );\n }, [chunk.type, conversationState, task.state]);\n\n return (\n <div className={classNames({ [styles.collapsed]: collapsed })}>\n <div\n className={classNames(styles.heading, className)}\n onClick={() => setCollapsed((prev) => !prev)}\n >\n <div className={styles.icon}>\n <WrappedIcon {...icon} />\n </div>\n <div className={styles.title}>\n {type === \"flow\"\n ? t(K.INITIATING_SERVICE_FLOW, { name: chunk.flow.name })\n : t(K.STARTING_SERVICE_FLOW_ACTIVITY, {\n name: chunk.activity.name,\n })}\n </div>\n <WrappedIcon className={styles.caret} {...ICON_UP} />\n </div>\n <div className={styles.body}>\n <div\n className={styles.tool}\n onClick={() => {\n const detail = {\n type: chunk.type,\n id: chunk.task.id,\n };\n (isSubTask ? setSubActiveDetail : setActiveDetail)((prev) =>\n isEqual(prev, detail) ? prev : detail\n );\n if (isEqual(detail, lastDetail)) {\n setUserClosedAside(false);\n }\n }}\n >\n <WrappedIcon lib=\"lucide\" icon=\"route\" />\n {type === \"flow\"\n ? t(K.INITIATING_SERVICE_FLOW, { name: chunk.flow.name })\n : t(K.STARTING_SERVICE_FLOW_ACTIVITY, {\n name: chunk.activity.name,\n })}\n </div>\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./HumanInTheLoop.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./HumanInTheLoop.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { WrappedIcon } from \"../../shared/bricks\";\nimport type { Job } from \"../../shared/interfaces\";\nimport styles from \"./HumanInTheLoop.module.css\";\nimport { RequestHumanAction } from \"../../shared/RequestHumanAction/RequestHumanAction\";\nimport { K, t } from \"../i18n\";\n\nexport interface HumanInTheLoopProps {\n job: Job;\n}\n\nexport function HumanInTheLoop({ job }: HumanInTheLoopProps) {\n return (\n <div className={styles.hil}>\n <div className={styles.content}>\n <WrappedIcon lib=\"antd\" icon=\"exclamation-circle\" />\n {t(K.HIL_TIPS, { name: job.hil!.username })}\n </div>\n {job.requestHumanAction && (\n <div className={styles.actions}>\n <RequestHumanAction action={job.requestHumanAction} ui=\"chat\" />\n </div>\n )}\n </div>\n );\n}\n","import React, { useMemo } from \"react\";\nimport styles from \"./AssistantMessage.module.css\";\nimport {\n GENERAL_DONE_STATES,\n NON_WORKING_STATES,\n} from \"../../shared/constants.js\";\nimport type {\n ConversationState,\n Job,\n JobState,\n TaskState,\n} from \"../../shared/interfaces.js\";\nimport { WrappedIcon } from \"../../shared/bricks.js\";\nimport type { MessageChunk } from \"../interfaces\";\nimport { RequestHumanAction } from \"../../shared/RequestHumanAction/RequestHumanAction\";\nimport { NodeChunk } from \"../NodeChunk/NodeChunk\";\nimport { HumanInTheLoop } from \"../HumanInTheLoop/HumanInTheLoop\";\n\nexport interface AssistantMessageProps {\n chunks: MessageChunk[];\n scopeState: ConversationState | TaskState | JobState | undefined;\n isLatest?: boolean;\n isSubTask?: boolean;\n}\n\nexport function AssistantMessage({\n chunks,\n scopeState,\n isLatest,\n isSubTask,\n}: AssistantMessageProps) {\n const [working, lastJob] = useMemo(() => {\n const lastChunk = chunks[chunks.length - 1];\n let lastJob: Job | undefined;\n if (lastChunk) {\n switch (lastChunk.type) {\n case \"flow\":\n case \"activity\":\n lastJob = lastChunk.task.jobs[lastChunk.task.jobs.length - 1];\n break;\n case \"job\":\n lastJob = lastChunk.job;\n break;\n default:\n return [false, undefined];\n }\n }\n\n if (!isLatest || NON_WORKING_STATES.includes(scopeState!)) {\n return [false, lastJob];\n }\n for (const chunk of chunks) {\n switch (chunk.type) {\n case \"flow\":\n case \"activity\":\n if (chunk.task.jobs.some((job) => job.state === \"input-required\")) {\n return [false, lastJob];\n }\n break;\n case \"job\":\n if (chunk.job.state === \"input-required\") {\n return [false, lastJob];\n }\n }\n }\n if (lastJob && lastJob.state === \"working\" && lastJob.toolCall) {\n return [false, lastJob];\n }\n\n return [true, lastJob];\n }, [isLatest, chunks, scopeState]);\n\n return (\n <div className={styles.assistant}>\n <WrappedIcon\n lib=\"easyops\"\n category=\"image\"\n icon=\"elevo-avatar-png\"\n className={styles.avatar}\n />\n <div className={styles.body}>\n {chunks.map((chunk, index) => (\n <NodeChunk key={index} chunk={chunk} isSubTask={isSubTask} />\n ))}\n {working && <div className={styles.texting}></div>}\n {isLatest &&\n lastJob &&\n !GENERAL_DONE_STATES.includes(scopeState) &&\n (lastJob.state === \"working\" || lastJob.state === \"input-required\") &&\n !lastJob.humanAction &&\n (lastJob.hil ? (\n <HumanInTheLoop job={lastJob} />\n ) : (\n lastJob.requestHumanAction && (\n <RequestHumanAction\n action={lastJob.requestHumanAction}\n ui=\"chat\"\n />\n )\n ))}\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Aside.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Aside.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./FlowApp.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./FlowApp.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n WAITING = \"WAITING\",\n EXECUTING = \"EXECUTING\",\n PAUSED = \"PAUSED\",\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\",\n TERMINATED = \"TERMINATED\",\n}\n\nconst en: Locale = {\n WAITING: \"Waiting\",\n EXECUTING: \"Executing\",\n PAUSED: \"Paused\",\n SUCCEEDED: \"Succeeded\",\n FAILED: \"Failed\",\n TERMINATED: \"Terminated\",\n};\n\nconst zh: Locale = {\n WAITING: \"等待中\",\n EXECUTING: \"执行中\",\n PAUSED: \"暂停\",\n SUCCEEDED: \"成功\",\n FAILED: \"失败\",\n TERMINATED: \"已终止\",\n};\n\nexport const NS = \"bricks/ai-portal/FlowApp\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import {\n useCallback,\n useEffect,\n useRef,\n useState,\n type RefObject,\n} from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nexport function useAutoScroll(\n conversationAvailable: boolean,\n scrollContainerRef: RefObject<HTMLDivElement>,\n scrollContentRef: RefObject<HTMLDivElement>\n) {\n const detectScrolledUpRef = useRef(false);\n const manualScrolledRef = useRef(false);\n const [scrollable, setScrollable] = useState(false);\n\n useEffect(() => {\n const scrollContainer = scrollContainerRef.current;\n const contentContainer = scrollContentRef.current;\n if (manualScrolledRef.current || !scrollContainer || !contentContainer) {\n return;\n }\n\n const handleScroll = () => {\n setScrollable(\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 24 <\n scrollContainer.scrollHeight\n );\n if (!detectScrolledUpRef.current) {\n return;\n }\n manualScrolledRef.current =\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 6 <\n scrollContainer.scrollHeight;\n };\n scrollContainer.addEventListener(\"scroll\", handleScroll);\n\n let timer: ReturnType<typeof setTimeout>;\n const observer = new ResizeObserver(() => {\n if (manualScrolledRef.current) {\n return;\n }\n detectScrolledUpRef.current = false;\n // Scroll to the bottom of the content container\n scrollContainer.scrollTo({\n top: contentContainer.scrollHeight,\n behavior: \"instant\",\n });\n clearTimeout(timer);\n timer = setTimeout(() => {\n detectScrolledUpRef.current = true;\n }, 100);\n });\n observer.observe(contentContainer);\n\n return () => {\n observer.disconnect();\n scrollContainer.removeEventListener(\"scroll\", handleScroll);\n };\n // Auto scroll after the conversation becomes available\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [conversationAvailable]);\n\n const scrollToBottom = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n scrollContainer?.scrollTo({\n top: scrollContainer?.scrollHeight,\n behavior: \"instant\",\n });\n }, [scrollContainerRef]);\n\n return { scrollable, scrollToBottom };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ScrollDownButton.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./ScrollDownButton.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useContext, useMemo, useRef } from \"react\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport styles from \"./FlowApp.module.css\";\nimport {\n WrappedBlankState,\n WrappedIcon,\n WrappedRunningFlow,\n} from \"../../../shared/bricks\";\nimport { getFlowOrActivityIcon } from \"../../../shared/getFlowOrActivityIcon\";\nimport type {\n ActivityRun,\n ConversationState,\n JobState,\n ServiceFlowRun,\n TaskState,\n} from \"../../../shared/interfaces\";\nimport { TaskContext } from \"../../../shared/TaskContext\";\nimport { K, locales, NS, t } from \"./i18n\";\nimport { useConversationStream } from \"../../useConversationStream\";\nimport { UserMessage } from \"../../UserMessage/UserMessage\";\nimport { AssistantMessage } from \"../../AssistantMessage/AssistantMessage\";\nimport { useAutoScroll } from \"../../useAutoScroll\";\nimport scrollStyles from \"../../ScrollDownButton.module.css\";\n\ninitializeI18n(NS, locales);\n\nexport interface FlowAppProps {\n flow: ServiceFlowRun;\n activity?: ActivityRun;\n}\n\nexport function FlowApp({ flow, activity }: FlowAppProps) {\n const { tasks, setActiveDetail } = useContext(TaskContext);\n const flowTask = useMemo(() => {\n return tasks.find((t) => t.id === flow.taskId)!;\n }, [tasks, flow.taskId]);\n\n const runningSpec = useMemo(() => {\n return flow.spec.map((stage) => ({\n ...stage,\n serviceFlowActivities: stage.serviceFlowActivities?.map((activity) => {\n const task = tasks.find((t) => t.id === activity.taskId);\n return {\n name: activity.name,\n taskId: activity.taskId,\n state: task?.state,\n startTime: task?.startTime,\n endTime: task?.endTime,\n };\n }),\n }));\n }, [flow.spec, tasks]);\n\n const flowStatus = useMemo(\n () => getFlowStatusDisplay(flowTask.state),\n [flowTask.state]\n );\n\n return (\n <div className={styles.app}>\n <div className={styles.heading}>\n <div className={styles.header}>\n <div className={classNames(styles.status, flowStatus.className)}>\n <WrappedIcon {...flowStatus.icon} />\n {flowStatus.text}\n </div>\n <div className={styles.title}>\n {`${flow.space?.name ? `${flow.space.name} / ` : \"\"}${flow.name}`}\n </div>\n </div>\n <div className={styles.chart}>\n <WrappedRunningFlow\n spec={runningSpec}\n activeActivityId={activity?.taskId}\n onActiveChange={(e) => {\n if (e.detail) {\n setActiveDetail({ type: \"activity\", id: e.detail });\n }\n }}\n />\n </div>\n </div>\n <div className={styles.body}>\n {activity ? (\n <ActivityDetail activity={activity} />\n ) : (\n <WrappedBlankState\n className={styles.blank}\n description=\"您还未选择活动\"\n illustration=\"serviceflows\"\n />\n )}\n </div>\n </div>\n );\n}\n\ninterface ActivityDetailProps {\n activity: ActivityRun;\n}\n\nfunction ActivityDetail({ activity }: ActivityDetailProps) {\n const { tasks, errors } = useContext(TaskContext);\n const activityTask = useMemo(() => {\n return tasks.find((t) => t.id === activity.taskId)!;\n }, [tasks, activity.taskId]);\n const activityState = activityTask.state;\n\n const { icon, className } = useMemo(\n () => getFlowStatusDisplay(activityState),\n [activityState]\n );\n\n const fixedTasks = useMemo(() => {\n return [\n {\n ...activityTask,\n parent: undefined,\n },\n ];\n }, [activityTask]);\n\n const { messages } = useConversationStream(true, fixedTasks, errors);\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const scrollContentRef = useRef<HTMLDivElement>(null);\n\n const { scrollable, scrollToBottom } = useAutoScroll(\n true,\n scrollContainerRef,\n scrollContentRef\n );\n\n return (\n <>\n <div className={styles[\"activity-title\"]}>\n <WrappedIcon {...icon} className={className} />\n {activity.name}\n </div>\n <div className={styles.chat} ref={scrollContainerRef}>\n <div className={styles.messages} ref={scrollContentRef}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage content={msg.content} cmd={msg.cmd} />\n ) : (\n <AssistantMessage\n chunks={msg.chunks}\n scopeState={activityTask.state}\n isLatest={index === list.length - 1}\n isSubTask\n />\n )}\n </div>\n ))}\n </div>\n </div>\n <div\n className={scrollStyles[\"scroll-down\"]}\n style={{ bottom: \"30px\" }}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </div>\n </>\n );\n}\n\nfunction getFlowStatusDisplay(state: TaskState | JobState | ConversationState) {\n const icon = getFlowOrActivityIcon(state);\n let text: string;\n let className: string | undefined;\n\n switch (state) {\n case \"working\":\n text = t(K.EXECUTING);\n className = styles.working;\n break;\n case \"completed\":\n text = t(K.SUCCEEDED);\n className = styles.completed;\n break;\n case \"failed\":\n text = t(K.FAILED);\n className = styles.failed;\n break;\n case \"input-required\":\n text = t(K.PAUSED);\n className = styles.paused;\n break;\n case \"terminated\":\n text = t(K.TERMINATED);\n break;\n default:\n text = state ? t(K.EXECUTING) : t(K.WAITING);\n }\n\n return { icon, text, className };\n}\n","import React, { useContext, useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport styles from \"./Aside.module.css\";\nimport sharedStyles from \"../../cruise-canvas/shared.module.css\";\nimport { WrappedCodeBlock, WrappedIconButton } from \"../../shared/bricks\";\nimport type { CmdbInstanceDetailData } from \"../../cruise-canvas/interfaces\";\nimport { ToolCallStatus } from \"../../cruise-canvas/ToolCallStatus/ToolCallStatus\";\nimport { TaskContext } from \"../../shared/TaskContext\";\nimport { StreamContext } from \"../StreamContext\";\nimport type {\n ActiveDetailOfActivity,\n FileInfo,\n FulfilledActiveDetail,\n} from \"../../shared/interfaces\";\nimport { FlowApp } from \"./FlowApp/FlowApp\";\n\nconst ICON_SHRINK: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"shrink\",\n};\n\nexport interface AsideProps {\n detail: FulfilledActiveDetail;\n isSubTask?: boolean;\n faded?: boolean;\n}\n\nexport function Aside({ detail, isSubTask, faded }: AsideProps) {\n const { setActiveDetail, setSubActiveDetail } = useContext(TaskContext);\n const { setUserClosedAside } = useContext(StreamContext);\n\n const [toolMarkdownContent, cmdbInstanceDetails /* , files */] =\n useMemo(() => {\n const contents: string[] = [];\n const instanceDetails: CmdbInstanceDetailData[] = [];\n const files: FileInfo[] = [];\n\n if (detail.type === \"job\") {\n detail.job.messages?.forEach((message) => {\n if (message.role === \"tool\") {\n for (const part of message.parts) {\n if (part.type === \"data\") {\n switch (part.data?.type) {\n case \"markdown\":\n contents.push(part.data.content);\n break;\n case \"cmdb_instance_detail\":\n instanceDetails.push(part.data as CmdbInstanceDetailData);\n break;\n }\n } else if (part.type === \"file\") {\n files.push(part.file);\n }\n }\n }\n });\n }\n\n const markdownContent = contents.join(\"\");\n\n return [markdownContent, instanceDetails, files] as const;\n }, [detail]);\n\n return (\n <div\n className={classNames(styles.aside, {\n [styles.sub]: isSubTask,\n [styles.faded]: faded,\n })}\n >\n <div className={styles.box}>\n <div className={styles.header}>\n <div className={styles.title}>Elevo's Computer</div>\n <WrappedIconButton\n icon={ICON_SHRINK}\n variant=\"mini\"\n onClick={() => {\n if (isSubTask) {\n setSubActiveDetail(null);\n } else {\n setActiveDetail(null);\n setUserClosedAside(true);\n }\n }}\n />\n </div>\n <div className={styles.body}>\n {detail.type === \"job\" ? (\n <>\n <ToolCallStatus job={detail.job} variant=\"read-only\" />\n {detail.job.generatedView ? (\n <EditorApp\n name=\"View\"\n source={detail.job.generatedView.code}\n language=\"jsx\"\n />\n ) : toolMarkdownContent ? (\n <EditorApp\n name=\"Content\"\n source={toolMarkdownContent}\n language=\"md\"\n />\n ) : cmdbInstanceDetails.length > 0 ? (\n <EditorApp\n name=\"CMDB\"\n source={JSON.stringify(cmdbInstanceDetails, null, 2)}\n language=\"json\"\n />\n ) : null}\n </>\n ) : (\n <FlowApp\n flow={detail.flow}\n activity={(detail as ActiveDetailOfActivity).activity}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n\ninterface EditorAppProps {\n name: string;\n source: string;\n language: string;\n}\n\nfunction EditorApp({ name, source, language }: EditorAppProps) {\n return (\n <div className={classNames(styles.app, styles.editor)}>\n <div className={styles.heading}>{`${name}.${language}`}</div>\n <div className={classNames(styles.content, sharedStyles.markdown)}>\n <div className={styles.scroller}>\n <WrappedCodeBlock\n className={styles[\"code-block\"]}\n source={source}\n language={language}\n themeVariant=\"elevo\"\n />\n </div>\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","// istanbul ignore file: experimental\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { getBasePath, getRuntime } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { useConversationDetail } from \"../cruise-canvas/useConversationDetail.js\";\nimport { useConversationStream } from \"./useConversationStream.js\";\nimport { WrappedIcon, WrappedIconButton } from \"../shared/bricks.js\";\nimport { UserMessage } from \"./UserMessage/UserMessage.js\";\nimport { AssistantMessage } from \"./AssistantMessage/AssistantMessage.js\";\nimport { TaskContext } from \"../shared/TaskContext.js\";\nimport { ChatBox } from \"../shared/ChatBox/ChatBox.js\";\nimport { DONE_STATES, ICON_CANVAS } from \"../shared/constants.js\";\nimport { ExpandedView } from \"../shared/ExpandedView/ExpandedView.js\";\nimport { Aside } from \"./Aside/Aside.js\";\nimport { StreamContext } from \"./StreamContext.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { NodeFeedback } from \"../shared/NodeFeedback/NodeFeedback.js\";\nimport type { ChatStreamProps, ChatStreamRef, ConversationDetail } from \".\";\nimport styles from \"./styles.module.css\";\nimport toolbarStyles from \"../cruise-canvas/toolbar.module.css\";\nimport { K, t } from \"./i18n.js\";\nimport { NodeReplay } from \"../cruise-canvas/NodeReplay/NodeReplay.js\";\nimport type { ActiveDetail } from \"../shared/interfaces.js\";\nimport { useFlowAndActivityMap } from \"../shared/useFlowAndActivityMap.js\";\nimport { useFulfilledActiveDetail } from \"../shared/useFulfilledActiveDetail.js\";\nimport { useAutoScroll } from \"./useAutoScroll.js\";\nimport scrollStyles from \"./ScrollDownButton.module.css\";\n\nconst ICON_SHARE: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"share\",\n};\n\ninterface ChatStreamComponentProps extends ChatStreamProps {\n conversationId: string;\n onShare: () => void;\n onTerminate: () => void;\n onSubmitFeedback: (detail: FeedbackDetail) => void;\n onSwitchToCanvas: () => void;\n onFeedbackOnView: (viewId: string) => void;\n onDetailChange: (detail: ConversationDetail) => void;\n}\n\nexport function ChatStreamComponent(\n {\n conversationId,\n initialRequest,\n replay,\n replayDelay,\n supports,\n showHumanActions,\n showFeedback: propShowFeedback,\n showFeedbackAfterFailed,\n showFeedbackOnView,\n showUiSwitch,\n previewUrlTemplate,\n showCases,\n exampleProjects,\n tryItOutUrl,\n onShare,\n onTerminate,\n onSubmitFeedback,\n onSwitchToCanvas,\n onFeedbackOnView,\n onDetailChange,\n }: ChatStreamComponentProps,\n ref: React.Ref<ChatStreamRef>\n) {\n const {\n conversation,\n tasks,\n serviceFlows,\n errors,\n humanInputRef,\n skipToResults,\n watchAgain,\n } = useConversationDetail(\n conversationId,\n initialRequest,\n replay,\n replayDelay\n );\n const pageTitle = conversation?.title ?? \"\";\n const conversationState = conversation?.state;\n const conversationDone = DONE_STATES.includes(conversationState!);\n const canChat = conversationDone || conversationState === \"input-required\";\n const { flowMap, activityMap } = useFlowAndActivityMap(serviceFlows);\n const { messages, jobMap, lastDetail } = useConversationStream(\n !!conversation,\n tasks,\n errors,\n flowMap,\n activityMap,\n { showHumanActions, skipActivitySubTasks: true }\n );\n\n useEffect(() => {\n onDetailChange({\n projectId: conversation?.projectId,\n });\n }, [onDetailChange, conversation?.projectId]);\n\n const views = useMemo(() => {\n if (!jobMap) {\n return [];\n }\n return [...jobMap.values()].flatMap((job) =>\n job.generatedView\n ? {\n id: job.id,\n view: job.generatedView,\n }\n : []\n );\n }, [jobMap]);\n\n const [submittingFeedback, setSubmittingFeedback] = useState(false);\n const [submittedFeedback, setSubmittedFeedback] = useState(false);\n const [showFeedback, setShowFeedback] = useState<boolean>(!!propShowFeedback);\n useEffect(() => {\n setShowFeedback(!!propShowFeedback);\n }, [propShowFeedback]);\n const [feedbackDoneViews, setFeedbackDoneViews] = useState<\n Set<string> | undefined\n >();\n\n const handleSubmitFeedback = useCallback(\n (detail: FeedbackDetail) => {\n setSubmittingFeedback(true);\n onSubmitFeedback(detail);\n },\n [onSubmitFeedback]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n feedbackSubmitDone: () => {\n setSubmittedFeedback(true);\n setTimeout(() => {\n setShowFeedback(false);\n }, 3000);\n },\n feedbackSubmitFailed: () => {\n setSubmittingFeedback(false);\n },\n feedbackOnViewDone: (viewId: string) => {\n setFeedbackDoneViews((prev) => {\n const newSet = new Set(prev);\n newSet.add(viewId);\n return newSet;\n });\n },\n }),\n []\n );\n\n const [activeExpandedViewJobId, setActiveExpandedViewJobId] = useState<\n string | null\n >(null);\n\n const [activeDetail, setActiveDetail] = useState<ActiveDetail | null>(null);\n const [subActiveDetail, setSubActiveDetail] = useState<ActiveDetail | null>(\n null\n );\n const [userClosedAside, setUserClosedAside] = useState(false);\n // Delay flag to prevent aside from auto opened for a completed task\n const delayRef = useRef(false);\n\n const conversationAvailable = !!conversation;\n useEffect(() => {\n if (conversationAvailable) {\n const timer = setTimeout(() => {\n delayRef.current = true;\n }, 1000);\n return () => {\n clearTimeout(timer);\n };\n }\n }, [conversationAvailable]);\n\n useEffect(() => {\n if (delayRef.current && lastDetail && !userClosedAside) {\n setActiveDetail(lastDetail);\n }\n }, [lastDetail, userClosedAside]);\n\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n\n const humanInput = useCallback(\n (jobId: string, input: string | null, action?: string) => {\n humanInputRef.current?.(jobId, input, action);\n },\n [humanInputRef]\n );\n\n const requirementMessage = messages[0];\n const userInput = useMemo(() => {\n if (requirementMessage?.role === \"user\") {\n return requirementMessage.content;\n }\n }, [requirementMessage]);\n\n const workspace = conversationId;\n\n const taskContextValue = useMemo(\n () => ({\n conversationId,\n conversationState,\n tasks,\n errors,\n workspace,\n previewUrlTemplate,\n replay,\n showCases,\n exampleProjects,\n\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n activeDetail,\n setActiveDetail,\n subActiveDetail,\n setSubActiveDetail,\n\n submittingFeedback,\n submittedFeedback,\n onSubmitFeedback: handleSubmitFeedback,\n setShowFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n\n skipToResults,\n watchAgain,\n tryItOut() {\n const win = window.open(\n `${getBasePath().slice(0, -1)}${tryItOutUrl ?? \"/elevo\"}`,\n \"_blank\"\n );\n if (win) {\n win.__elevo_try_it_out = {\n content: userInput,\n };\n }\n },\n }),\n [\n conversationId,\n conversationState,\n tasks,\n errors,\n workspace,\n previewUrlTemplate,\n replay,\n showCases,\n exampleProjects,\n\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n activeDetail,\n subActiveDetail,\n\n submittingFeedback,\n submittedFeedback,\n handleSubmitFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n\n skipToResults,\n watchAgain,\n userInput,\n tryItOutUrl,\n ]\n );\n\n const streamContextValue = useMemo(\n () => ({\n lastDetail,\n setUserClosedAside,\n }),\n [lastDetail]\n );\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const scrollContentRef = useRef<HTMLDivElement>(null);\n\n const { scrollable, scrollToBottom } = useAutoScroll(\n conversationAvailable,\n scrollContainerRef,\n scrollContentRef\n );\n\n const fulfilledActiveDetail = useFulfilledActiveDetail(\n activeDetail,\n jobMap,\n flowMap,\n activityMap\n );\n\n const fulfilledSubActiveDetail = useFulfilledActiveDetail(\n subActiveDetail,\n jobMap,\n flowMap,\n activityMap\n );\n\n return (\n <TaskContext.Provider value={taskContextValue}>\n <StreamContext.Provider value={streamContextValue}>\n <div className={styles.container}>\n <div className={styles.header}>\n <div className={styles.left} />\n <h1>{pageTitle}</h1>\n <div className={styles.right}>\n {showUiSwitch && (\n <WrappedIconButton\n className={styles[\"navbar-switch-ui\"]}\n icon={ICON_CANVAS}\n variant=\"mini\"\n title={t(K.SWITCH_TO_CANVAS)}\n onClick={onSwitchToCanvas}\n />\n )}\n <WrappedIconButton\n icon={ICON_SHARE}\n variant=\"mini\"\n onClick={onShare}\n />\n </div>\n </div>\n {conversationAvailable ? (\n <>\n <div className={styles.main} ref={scrollContainerRef}>\n <div className={styles.narrow} ref={scrollContentRef}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage content={msg.content} cmd={msg.cmd} />\n ) : (\n <AssistantMessage\n chunks={msg.chunks}\n scopeState={conversationState}\n isLatest={index === list.length - 1}\n />\n )}\n </div>\n ))}\n {replay\n ? conversation?.finished && (\n <NodeReplay finished ui=\"chat\" />\n )\n : showFeedback &&\n (conversationState === \"completed\" ||\n (conversationState === \"failed\" &&\n showFeedbackAfterFailed)) && (\n <NodeFeedback className={styles.feedback} />\n )}\n </div>\n </div>\n <div\n className={scrollStyles[\"scroll-down\"]}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </div>\n {(replay ? !conversation?.finished : supports?.chat) ? (\n <div className={styles.footer}>\n <div className={styles.narrow}>\n {replay ? (\n <NodeReplay />\n ) : (\n <ChatBox state={conversationState} canChat={canChat} />\n )}\n </div>\n </div>\n ) : null}\n </>\n ) : (\n <div className={styles[\"loading-icon\"]}>\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n )}\n </div>\n {\n <div\n className={classNames(styles.aside, {\n [styles.expanded]: !!fulfilledActiveDetail,\n })}\n >\n {fulfilledActiveDetail && (\n <Aside\n detail={fulfilledActiveDetail}\n faded={!!fulfilledSubActiveDetail}\n />\n )}\n {fulfilledSubActiveDetail && (\n <Aside detail={fulfilledSubActiveDetail} isSubTask />\n )}\n </div>\n }\n {activeExpandedViewJobId && <ExpandedView views={views!} />}\n {showUiSwitch && (\n <div className={classNames(toolbarStyles.toolbar, styles.toolbar)}>\n <WrappedIconButton\n icon={ICON_CANVAS}\n variant=\"mini\"\n title={t(K.SWITCH_TO_CANVAS)}\n onClick={onSwitchToCanvas}\n />\n </div>\n )}\n </StreamContext.Provider>\n </TaskContext.Provider>\n );\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, `.hil--e3zZFYQc{background:rgba(255,255,255,0.5);border-radius:8px;border:1px solid #ffffff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:13px 16px;margin-top:12px}.content--tmVj790o,\n.actions--wbNFKF3J{display:flex;align-items:center}.content--tmVj790o{gap:10px;flex-wrap:wrap}.actions--wbNFKF3J{justify-content:flex-end;margin-top:-3px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hil\": `hil--e3zZFYQc`,\n\t\"content\": `content--tmVj790o`,\n\t\"actions\": `actions--wbNFKF3J`\n};\nexport default ___CSS_LOADER_EXPORT___;\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, `.user--HjXM9OHW{background:rgba(255,255,255,0.6);border-radius:24px;padding:8px 16px;width:-moz-fit-content;width:fit-content;max-width:500px;margin-left:auto;overflow-wrap:break-word;white-space:pre-wrap;font-size:16px;line-height:26px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"user\": `user--HjXM9OHW`\n};\nexport default ___CSS_LOADER_EXPORT___;\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, `.assistant--CrlgPgYL{display:flex}.body--sAIo2dhL{flex:1;min-width:0;padding:3px 0 3px 16px}.texting--Rpmsbpca{position:relative}.texting--Rpmsbpca::after{content:\" \";animation:texting--Rpmsbpca 2s infinite;white-space:pre}.avatar--jaJhEiSV{font-size:32px}@keyframes texting--Rpmsbpca{0%{content:\"\\\\00a0\\\\00a0\\\\00a0\"}25%{content:\".\\\\00a0\\\\00a0\"}50%{content:\"..\\\\00a0\"}75%{content:\"...\"}100%{content:\"\\\\00a0\\\\00a0\\\\00a0\"}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"assistant\": `assistant--CrlgPgYL`,\n\t\"body\": `body--sAIo2dhL`,\n\t\"texting\": `texting--Rpmsbpca`,\n\t\"avatar\": `avatar--jaJhEiSV`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n SWITCH_TO_CANVAS = \"SWITCH_TO_CANVAS\",\n INITIATING_SERVICE_FLOW = \"INITIATING_SERVICE_FLOW\",\n STARTING_SERVICE_FLOW_ACTIVITY = \"STARTING_SERVICE_FLOW_ACTIVITY\",\n HIL_TIPS = \"HIL_TIPS\",\n}\n\nconst en: Locale = {\n SWITCH_TO_CANVAS: \"Switch to canvas\",\n INITIATING_SERVICE_FLOW: \"Initiating service flow: {{ name }}\",\n STARTING_SERVICE_FLOW_ACTIVITY: \"Starting service flow activity: {{ name }}\",\n HIL_TIPS: \"Triggered HIL rule, waiting for {{ name }} to process.\",\n};\n\nconst zh: Locale = {\n SWITCH_TO_CANVAS: \"切换为画布\",\n INITIATING_SERVICE_FLOW: \"发起业务流:{{ name }}\",\n STARTING_SERVICE_FLOW_ACTIVITY: \"开始业务流活动:{{ name }}\",\n HIL_TIPS: \"触发 HIL 规则,等待 {{ name }} 处理。\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-stream\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\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, `.heading--lj5kJ2fg{display:flex;align-items:center;padding:5px 8px;margin:0 -8px 12px;cursor:pointer}.main--P8894aNV{font-size:16px;line-height:26px}.caret--XqX6mjyf{opacity:0;transition:transform 0.2s ease-in-out}.heading--lj5kJ2fg:hover{background:rgba(184,187,205,0.15);border-radius:8px}.heading--lj5kJ2fg:hover .caret--XqX6mjyf{opacity:1}.icon--l8SzaFlV{display:flex;align-items:center;margin-right:12px}.title--FZPCnJbE{color:#262626;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool--ugqSpeIM{background:#e2e5ef;border:1px solid #d4d4de;border-radius:13px;line-height:24px;padding:0 12px;width:-moz-fit-content;width:fit-content;font-size:12px;color:rgba(0,0,0,0.65);cursor:pointer;display:flex;align-items:center;gap:7px}.tool--ugqSpeIM eo-icon{font-size:14px;color:#8c8c8c}.body--p3Zt_jA4{padding-left:26px;margin-bottom:20px}.collapsed--cGSG2zk_ .body--p3Zt_jA4{display:none}.collapsed--cGSG2zk_ .caret--XqX6mjyf{transform:rotate(180deg);opacity:1}.content--pBkkWQ5e{margin-top:14px}.content--pBkkWQ5e .markdown--Ky2J85cs [class*=\"code-wrapper--\"]::part(mermaid){background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;min-width:var(--cruise-canvas-node-width-medium);width:auto;max-width:100%}.content--pBkkWQ5e:empty{display:none}.message--okEUzWzg:first-child > .message-part--kxjYnHz0:first-child > :first-child{margin-top:0}.icon--l8SzaFlV{color:#abaab7}.completed--JWq7E1Jw .icon--l8SzaFlV{color:#0fbe59}.failed--uk7jDD7K .icon--l8SzaFlV{color:#f24c25}.working--dZiN0y04 .icon--l8SzaFlV{color:var(--elevo-color-brand)}.input-required--JSuPr8br .icon--l8SzaFlV{color:#12aacc}.canceled--LyMjPJQd .icon--l8SzaFlV{color:#fcaa07}ai-portal\\\\.chat-stream[hide-mermaid] .content--pBkkWQ5e .markdown--Ky2J85cs .mermaid{display:none}.error--n_Of3DwP{color:var(--color-error);white-space:pre-wrap;word-break:break-word}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"heading\": `heading--lj5kJ2fg`,\n\t\"main\": `main--P8894aNV`,\n\t\"caret\": `caret--XqX6mjyf`,\n\t\"icon\": `icon--l8SzaFlV`,\n\t\"title\": `title--FZPCnJbE`,\n\t\"tool\": `tool--ugqSpeIM`,\n\t\"body\": `body--p3Zt_jA4`,\n\t\"collapsed\": `collapsed--cGSG2zk_`,\n\t\"content\": `content--pBkkWQ5e`,\n\t\"markdown\": `markdown--Ky2J85cs`,\n\t\"message\": `message--okEUzWzg`,\n\t\"message-part\": `message-part--kxjYnHz0`,\n\t\"completed\": `completed--JWq7E1Jw`,\n\t\"failed\": `failed--uk7jDD7K`,\n\t\"working\": `working--dZiN0y04`,\n\t\"input-required\": `input-required--JSuPr8br`,\n\t\"canceled\": `canceled--LyMjPJQd`,\n\t\"error\": `error--n_Of3DwP`\n};\nexport default ___CSS_LOADER_EXPORT___;\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, `.view--O8CNDdS_{background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px;width:var(--cruise-canvas-node-width-medium);max-width:100%;margin-top:14px}.large--jT3IWlRf{width:var(--cruise-canvas-node-width-large)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"view\": `view--O8CNDdS_`,\n\t\"large\": `large--jT3IWlRf`\n};\nexport default ___CSS_LOADER_EXPORT___;\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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../home-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `ai-portal\\\\.chat-stream{display:flex;position:relative;width:100%;height:100%;overflow:hidden;background-color:#f3f3f4;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:rgba(0,0,0,0.88);--cruise-canvas-node-width-small:330px;--cruise-canvas-node-width-medium:453px;--cruise-canvas-node-width-large:800px;--cruise-canvas-primary-color:var(--elevo-color-brand);--cruise-canvas-input-background:rgba(255,255,255,0.8);--cruise-canvas-input-box-shadow:0px 1px 0px 0px #ffffff,inset 0px 2px 4px 0px #b3bcf9}.container--IOwk4fR1{display:flex;flex-direction:column;position:relative;flex:1;min-width:0}.header--O9c4lNA3{height:54px;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.header--O9c4lNA3 h1{font-weight:500;font-size:14px;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.header--O9c4lNA3 .left--ed9ka1jF,.header--O9c4lNA3 .right--fs8TyVN3{width:56px}.header--O9c4lNA3 .right--fs8TyVN3{display:flex;align-items:center;justify-content:end;gap:8px}.main--KDIjetJs{overflow-y:auto;flex:1;padding:20px 24px}.narrow--xWih9UIb{width:100%;max-width:800px;margin:0 auto}.message--YIXGDQNi + .message--YIXGDQNi{margin-top:40px}.loading-icon--lagcmORP{flex:1;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff}.footer--aLZ8UWjM{padding:0 20px 24px}.aside--Xjd6To2A{width:0%;height:100%;transition:width 0.2s ease-in-out;position:relative}.expanded--xZgk3uBF{width:50%}.feedback--YbYylTcK{margin:24px auto 0}.toolbar--uiLshJmw{left:20px;bottom:20px}.navbar-switch-ui--hREVJ6zG{display:none}@media (max-width: 1123px){div.toolbar--uiLshJmw{display:none}.navbar-switch-ui--hREVJ6zG{display:block}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"container\": `container--IOwk4fR1`,\n\t\"header\": `header--O9c4lNA3`,\n\t\"left\": `left--ed9ka1jF`,\n\t\"right\": `right--fs8TyVN3`,\n\t\"main\": `main--KDIjetJs`,\n\t\"narrow\": `narrow--xWih9UIb`,\n\t\"message\": `message--YIXGDQNi`,\n\t\"loading-icon\": `loading-icon--lagcmORP`,\n\t\"footer\": `footer--aLZ8UWjM`,\n\t\"aside\": `aside--Xjd6To2A`,\n\t\"expanded\": `expanded--xZgk3uBF`,\n\t\"feedback\": `feedback--YbYylTcK`,\n\t\"toolbar\": `toolbar--uiLshJmw`,\n\t\"navbar-switch-ui\": `navbar-switch-ui--hREVJ6zG`\n};\nexport default ___CSS_LOADER_EXPORT___;\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, `.aside--DDIdDtkt{padding:12px 12px 12px 0;height:100%}.faded--AsNxuT2v{opacity:0.4}.sub--d8EpebQt{position:absolute;top:16px;right:16px;left:-16px;height:calc(100% - 16px)}.box--niuFBiiQ{background:#ffffff;box-shadow:1px 1px 10px 0px rgba(0,10,26,0.1);border-radius:12px;height:100%;display:flex;flex-direction:column}.header--DPl_hrTp{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,0.15);padding:0 20px}.title--HlE9yRcJ{font-weight:500;font-size:16px;color:#262626}.body--OLKz1zeC{flex:1;min-height:0;padding:20px;display:flex;flex-direction:column}.app--UanK0TGf{flex:1;min-height:0;background:#ffffff;border-radius:9px;border:1px solid #ccd1de;margin-top:16px;overflow:hidden;display:flex;flex-direction:column}.heading--ngRi_rQ4{background:#e6e9f3;color:#5e6472;padding:5px 14px}.content--I2i0y65v{font-size:12px;flex:1;min-height:0;position:relative}.scroller--mLfznC_I{height:100%;overflow-x:hidden;overflow-y:auto;overflow:hidden auto;padding:10px}.scroller--mLfznC_I.loading--U1GWHEp9{display:flex;align-items:center;justify-content:center}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(wrapper){position:static;margin:0}.editor--p_Sqs1os .content--I2i0y65v .code-block--XiUVX7st::part(pre){background:none!important;padding:0;border-radius:0;border:0}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"aside\": `aside--DDIdDtkt`,\n\t\"faded\": `faded--AsNxuT2v`,\n\t\"sub\": `sub--d8EpebQt`,\n\t\"box\": `box--niuFBiiQ`,\n\t\"header\": `header--DPl_hrTp`,\n\t\"title\": `title--HlE9yRcJ`,\n\t\"body\": `body--OLKz1zeC`,\n\t\"app\": `app--UanK0TGf`,\n\t\"heading\": `heading--ngRi_rQ4`,\n\t\"content\": `content--I2i0y65v`,\n\t\"scroller\": `scroller--mLfznC_I`,\n\t\"loading\": `loading--U1GWHEp9`,\n\t\"editor\": `editor--p_Sqs1os`,\n\t\"code-block\": `code-block--XiUVX7st`\n};\nexport default ___CSS_LOADER_EXPORT___;\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, `.app--qxnx6yuG{border-radius:9px;border:1px solid #ccd1de;flex:1;min-height:0;display:flex;flex-direction:column}.heading--SbCRupnn{border-bottom:1px solid #ccd1de;border-radius:9px 9px 0 0;background-image:radial-gradient(circle at 1px 1px,#ddd 1px,transparent 0px);background-size:25px 25px;background-position:12px;max-height:50%;display:flex;flex-direction:column}.header--LGXNxV5J{display:flex;align-items:center;padding:16px 30px}.status--aqbJGBcl{background:#aeb3bc;border-radius:100px;height:40px;padding:9px 16px;display:flex;align-items:center;gap:8px;font-size:18px;color:#ffffff}.status--aqbJGBcl eo-icon{font-size:22px}.status--aqbJGBcl.paused--U1cc3Ksn{background:#f0a22e}.status--aqbJGBcl.working--f2PYqFo7{background:#4f69ff}.status--aqbJGBcl.completed--Ihiekkve{background:#08bf33}.status--aqbJGBcl.failed--kB8wxIZ0{background:var(--color-error)}.title--IRvB2t7z{font-weight:500;font-size:16px;margin-left:40px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart--mypbn8pI{padding:8px 22px 18px;overflow:auto;min-height:0}.body--jnk1EIz0{padding:16px 12px 12px;display:flex;flex:1;min-height:0;flex-direction:column;position:relative}.activity-title--hF6stwmT{font-weight:500;font-size:16px;display:flex;align-items:center;gap:6px;margin-bottom:16px}.activity-title--hF6stwmT eo-icon{font-size:20px;color:#8c8c8c}.activity-title--hF6stwmT .paused--U1cc3Ksn{color:#f0a22e}.activity-title--hF6stwmT .working--f2PYqFo7{color:#4f69ff}.activity-title--hF6stwmT .completed--Ihiekkve{color:#08bf33}.activity-title--hF6stwmT .failed--kB8wxIZ0{color:var(--color-error)}.chat--nEzTEXbV{background:rgba(227,228,229,0.4);border:1px solid rgba(0,0,0,0.1);border-radius:8px;padding:16px 20px;flex:1;min-height:0;overflow-y:auto}.messages--vLiwUYSP{width:100%;margin:0 auto}.message--Okzj6NDx + .message--Okzj6NDx{margin-top:40px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"app\": `app--qxnx6yuG`,\n\t\"heading\": `heading--SbCRupnn`,\n\t\"header\": `header--LGXNxV5J`,\n\t\"status\": `status--aqbJGBcl`,\n\t\"paused\": `paused--U1cc3Ksn`,\n\t\"working\": `working--f2PYqFo7`,\n\t\"completed\": `completed--Ihiekkve`,\n\t\"failed\": `failed--kB8wxIZ0`,\n\t\"title\": `title--IRvB2t7z`,\n\t\"chart\": `chart--mypbn8pI`,\n\t\"body\": `body--jnk1EIz0`,\n\t\"activity-title\": `activity-title--hF6stwmT`,\n\t\"chat\": `chat--nEzTEXbV`,\n\t\"messages\": `messages--vLiwUYSP`,\n\t\"message\": `message--Okzj6NDx`\n};\nexport default ___CSS_LOADER_EXPORT___;\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, `.scroll-down--st4A5sQ4{display:flex;align-items:center;justify-content:center;position:absolute;left:50%;bottom:120px;transform:translateX(-50%);width:32px;height:32px;font-size:12px;border-radius:16px;background:#ffffff;box-shadow:0px 4px 8px 0px rgba(0,0,0,0.06);border:1px solid rgba(0,0,0,0.02);cursor:pointer}.scroll-down--st4A5sQ4:hover{box-shadow:0px 6px 12px 0px rgba(0,0,0,0.1)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"scroll-down\": `scroll-down--st4A5sQ4`\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["getFlowOrActivityIcon","state","lib","theme","icon","spinning","useConversationStream","conversationAvailable","tasks","errors","flowMap","activityMap","options","showHumanActions","skipActivitySubTasks","useMemo","messages","lastDetail","chunks","jobMap","getFlatChunks","prevAssistantMessage","role","chunk","type","_job$messages","job","toolCall","id","length","every","msg","push","content","flatMap","parts","map","part","text","join","cmd","fromSkippedSubTask","humanAction","task","shouldAppendEmptyMessage","lastMessage","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","undefined","UserMessage","_ref","React","className","styles","user","ReadableCommand","NodeView","size","setSize","useState","handleSizeChange","useCallback","value","classNames","view","large","CreatedView","onSizeChange","StreamContext","createContext","setUserClosedAside","getStateDisplay","conversationState","completed","prefix","working","failed","canceled","NodeJob","_toolCall$annotations","_job$messages2","isSubTask","toolTitle","annotations","title","name","toolName","showToolCall","setActiveDetail","setSubActiveDetail","useContext","TaskContext","toolMarkdownContent","cmdbInstanceDetails","contents","instanceDetails","files","forEach","message","_part$data","data","_part$data2","Object","keys","outputSchema","properties","detail","file","collapsed","setCollapsed","main","index","_message$parts","key","sharedStyles","markdown","partIndex","EnhancedMarkdown","heading","onClick","prev","WrappedIcon","instruction","_extends","caret","ICON_UP","body","tool","isEqual","box","CmdbInstanceDetail","generatedView","NodeChunk","error","NodeTask","_ref2","t","K","INITIATING_SERVICE_FLOW","flow","STARTING_SERVICE_FLOW_ACTIVITY","activity","HumanInTheLoop","hil","HIL_TIPS","username","requestHumanAction","actions","RequestHumanAction","action","ui","AssistantMessage","scopeState","isLatest","lastJob","lastChunk","jobs","NON_WORKING_STATES","includes","some","assistant","category","avatar","texting","GENERAL_DONE_STATES","NS","i18n","getFixedT","useAutoScroll","scrollContainerRef","scrollContentRef","detectScrolledUpRef","useRef","manualScrolledRef","scrollable","setScrollable","useEffect","scrollContainer","current","contentContainer","handleScroll","scrollTop","clientHeight","scrollHeight","timer","addEventListener","observer","ResizeObserver","scrollTo","top","behavior","clearTimeout","setTimeout","observe","disconnect","removeEventListener","scrollToBottom","FlowApp","_flow$space","flowTask","find","taskId","runningSpec","spec","stage","_stage$serviceFlowAct","serviceFlowActivities","startTime","endTime","flowStatus","getFlowStatusDisplay","app","header","status","space","chart","WrappedRunningFlow","activeActivityId","onActiveChange","e","ActivityDetail","WrappedBlankState","blank","description","illustration","activityTask","activityState","fixedTasks","parent","chat","ref","list","scrollStyles","style","bottom","hidden","EXECUTING","SUCCEEDED","FAILED","PAUSED","paused","TERMINATED","WAITING","initializeI18n","en","zh","ICON_SHRINK","Aside","faded","_detail$job$messages","aside","sub","WrappedIconButton","variant","ToolCallStatus","EditorApp","source","code","language","JSON","stringify","editor","scroller","WrappedCodeBlock","themeVariant","ICON_SHARE","ChatStreamComponent","_conversation$title","conversationId","initialRequest","replay","replayDelay","supports","showFeedback","propShowFeedback","showFeedbackAfterFailed","showFeedbackOnView","showUiSwitch","previewUrlTemplate","showCases","exampleProjects","tryItOutUrl","onShare","onTerminate","onSubmitFeedback","onSwitchToCanvas","onFeedbackOnView","onDetailChange","conversation","serviceFlows","humanInputRef","skipToResults","watchAgain","useConversationDetail","pageTitle","canChat","DONE_STATES","useFlowAndActivityMap","projectId","views","values","submittingFeedback","setSubmittingFeedback","submittedFeedback","setSubmittedFeedback","setShowFeedback","feedbackDoneViews","setFeedbackDoneViews","handleSubmitFeedback","useImperativeHandle","feedbackSubmitDone","feedbackSubmitFailed","feedbackOnViewDone","viewId","newSet","Set","add","activeExpandedViewJobId","setActiveExpandedViewJobId","activeDetail","subActiveDetail","userClosedAside","delayRef","getRuntime","applyPageTitle","humanInput","jobId","input","_humanInputRef$curren","call","requirementMessage","userInput","workspace","taskContextValue","tryItOut","win","window","open","getBasePath","slice","__elevo_try_it_out","streamContextValue","fulfilledActiveDetail","useFulfilledActiveDetail","fulfilledSubActiveDetail","Provider","container","left","right","ICON_CANVAS","SWITCH_TO_CANVAS","narrow","finished","NodeReplay","NodeFeedback","feedback","footer","ChatBox","expanded","ExpandedView","toolbarStyles","toolbar","___CSS_LOADER_EXPORT___","module","locales","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[5944,6573],{20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},24586:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(11369);function s(e,t,n){return(t=(0,a.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},60136:(e,t,n)=>{n.d(t,{v7:()=>d,NL:()=>p,xf:()=>m});var a=n(61919);const s=n.p+"images/62542537.png",l=n.p+"images/94d7a053.png",o=n.p+"images/0e7e6764.png",i=n.p+"images/7944ebaf.png",r=n.p+"images/c7ec12fe.png",c=n.p+"images/3316492a.png",u=new Map([["md","text/markdown"],["pdf","application/pdf"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["txt","text/plain"],["csv","text/csv"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"]]);function d(e){const[t,n]=a.pipes.unitFormat(e,"bytes",1),s=+t;return`${s>100?Math.round(s):s} ${n}`}function p(e,t){const n=e||m(t);if(n.startsWith("image/"))return["Image",c];switch(n){case"text/markdown":return["Markdown",s];case"application/pdf":return["PDF",l];case"application/msword":case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return["Word",o];case"application/vnd.ms-excel":case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return["Excel",r];case"application/vnd.ms-powerpoint":case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return["PowerPoint",i]}return n.startsWith("text/")?["Text",s]:["File",c]}function m(e){var t;let n="";const a=null==e?void 0:e.match(/\.([^.]+)$/);return a&&(n=a[1].toLowerCase()),null!==(t=u.get(n))&&void 0!==t?t:"unknown"}},89575:(e,t,n)=>{function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},a.apply(this,arguments)}n.d(t,{A:()=>a})},93757:(e,t,n)=>{n.r(t),n.d(t,{getChatCommand:()=>o,setChatCommand:()=>l});var a=n(77019);let s=null;function l(e){s=e}function o(){return s}customElements.define("ai-portal.set-chat-command",(0,a.createProviderClass)(l))},94669:(e,t,n)=>{n.r(t),n.d(t,{ChatBox:()=>ue,ChatBoxComponent:()=>ce});var a,s=n(74635),l=n(70918),o=n(24586),i=n(26902),r=n(5536),c=n(86121),u=n(70829),d=n(62740),p=n(18769),m=n.n(p),h=n(59435),f=n(90870),v=n(30981),g=n(22919),y=n(30348),b=n(78404),w=n(86572),A=n(92879),k=(n(34419),n(52616)),E=n(16195),x=n(47008),C=n(93757),S=n(7450),M=n(89750),I=n(17753);let _,W,P,F,R,$,T,L,N,O,D,B,V,j,U,z,K,H,q,Y,G,Q,J,X,Z,ee,te,ne,ae,se;(0,k.initializeI18n)(E.NS,E.I);const{defineElement:le,property:oe,event:ie,method:re}=(0,f.createDecorators)(),ce=(0,p.forwardRef)(Me);let ue;var de=new WeakMap,pe=new WeakMap,me=new WeakMap,he=new WeakMap,fe=new WeakMap,ve=new WeakMap,ge=new WeakMap,ye=new WeakSet,be=new WeakMap,we=new WeakMap,Ae=new WeakMap,ke=new WeakMap,Ee=new WeakMap,xe=new WeakMap,Ce=new WeakMap;class Se extends v.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,ye),(0,o.A)(this,"ref",(_(this),(0,p.createRef)())),(0,l.A)(this,de,P(this)),(0,l.A)(this,pe,(F(this),R(this))),(0,l.A)(this,me,($(this),T(this))),(0,l.A)(this,he,(L(this),N(this))),(0,l.A)(this,fe,(O(this),D(this))),(0,l.A)(this,ve,(B(this),V(this))),(0,l.A)(this,ge,(j(this),U(this))),(0,l.A)(this,be,(H(this),e=>{(0,r.A)(ye,this,z).emit(e)})),(0,l.A)(this,we,q(this)),(0,l.A)(this,Ae,(Q(this),e=>{(0,r.A)(ye,this,Y).emit(e)})),(0,l.A)(this,ke,J(this)),(0,l.A)(this,Ee,(ee(this),e=>{(0,r.A)(ye,this,X).emit(e)})),(0,l.A)(this,xe,te(this)),(0,l.A)(this,Ce,(se(this),e=>{(0,r.A)(ye,this,ne).emit(e)}))}get disabled(){return(0,u.A)(de,this)}set disabled(e){(0,c.A)(de,this,e)}get placeholder(){return(0,u.A)(pe,this)}set placeholder(e){(0,c.A)(pe,this,e)}get autoFocus(){return(0,u.A)(me,this)}set autoFocus(e){(0,c.A)(me,this,e)}get aiEmployees(){return(0,u.A)(he,this)}set aiEmployees(e){(0,c.A)(he,this,e)}get commands(){return(0,u.A)(fe,this)}set commands(e){(0,c.A)(fe,this,e)}get uploadFiles(){return(0,u.A)(ve,this)}set uploadFiles(e){(0,c.A)(ve,this,e)}setValue(e){var t;null===(t=this.ref.current)||void 0===t||t.setValue(e)}getValue(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.getValue()}focusOnInput(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.focusOnInput()}render(){return m().createElement(ce,{disabled:this.disabled,placeholder:this.placeholder,autoFocus:this.autoFocus,aiEmployees:this.aiEmployees,commands:this.commands,uploadFiles:this.uploadFiles,onMessageSubmit:(0,u.A)(be,this),onChatSubmit:(0,u.A)(Ae,this),onEmployeeMention:(0,u.A)(Ee,this),onCommandSelect:(0,u.A)(Ce,this),ref:this.ref})}}function Me(e,t){let{disabled:n,placeholder:a,autoFocus:s,aiEmployees:l,commands:o,uploadFiles:i,onMessageSubmit:r,onChatSubmit:c,onEmployeeMention:u,onCommandSelect:d}=e;const f=(0,p.useRef)(null),v=(0,p.useRef)(null),[k,x]=(0,p.useState)(""),_=(0,p.useRef)(""),[W,P]=(0,p.useState)(null),[F,R]=(0,p.useState)(""),[$,T]=(0,p.useState)(0),[L,N]=(0,p.useState)([0]),[O,D]=(0,p.useState)(null),[B,V]=(0,p.useState)(null),[j,U]=(0,p.useState)(""),z=(0,p.useRef)(null),[K,H]=(0,p.useState)(),q=!!K&&K.length>0;(0,p.useEffect)((()=>{null==K||K.forEach((async e=>{if("ready"===e.status){const t=new AbortController;H((n=>null==n?void 0:n.map((n=>n.uid===e.uid?{...n,status:"uploading",abortController:t}:n))));try{const n=new FormData;n.append("file",e.file);const a=await g.http.request("api/gateway/logic.llm.aiops_service/api/v1/elevo/files/upload",{method:"POST",body:n,signal:t.signal});H((t=>null==t?void 0:t.map((t=>t.uid===e.uid?{...t,status:"done",fileInfo:a.data}:t))))}catch(t){H((t=>null==t?void 0:t.map((t=>t.uid===e.uid?{...t,status:"failed"}:t)))),(0,y.handleHttpError)(t)}}}))}),[K]),(0,p.useEffect)((()=>{const e=window.__elevo_try_it_out;e&&delete window.__elevo_try_it_out,"string"==typeof(null==e?void 0:e.content)&&(_.current=e.content,x(e.content))}),[]),(0,p.useImperativeHandle)(t,(()=>({setValue:e=>{_.current=e,x(e)},getValue:()=>_.current,focusOnInput:()=>{var e;null===(e=v.current)||void 0===e||e.focus()}})));const[Y,G]=(0,p.useState)(!0),[Q,J]=(0,p.useState)(),X=(0,p.useRef)(!0);(0,p.useEffect)((()=>{const e=!K||K.every((e=>"done"===e.status));G(e),X.current?X.current=!1:e&&J(null==K?void 0:K.map((e=>e.fileInfo)))}),[K]);const Z=(0,p.useCallback)((e=>{var t;const n=e.slice(null!==(t=null==j?void 0:j.length)&&void 0!==t?t:0);r(n),c({content:n,files:Q})}),[null==j?void 0:j.length,Q,c,r]),ee=(0,p.useCallback)((e=>{e.currentTarget.value&&Y&&Z(e.currentTarget.value)}),[Z,Y]),te=(0,p.useCallback)((e=>{const{value:t,selectionStart:n,selectionEnd:a}=e.target;if(_.current=t,x(t),!F&&null!==n&&n===a&&null!=l&&l.length){const a=t.slice(0,n),s=a.lastIndexOf("@");if(s>=0){const t=a.slice(s+1).toLowerCase(),o=l.filter((e=>e.employeeId.toLowerCase().includes(t)||e.name.toLowerCase().includes(t))).slice(0,10);if(o.length>0){const t=(0,b.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return P({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:s,end:n},actions:o.map((e=>({key:e.employeeId,text:e.name,data:e})))}),void T(0)}}}if(P(null),null!==n&&n===a&&null!=o&&o.length){const a=t.slice(0,n);if(a.startsWith("/")){const t=a.slice(1).toLowerCase(),s=o.filter((e=>e.label.toLowerCase().includes(t))).slice(0,10);if(s.length>0){const t=(0,b.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return D({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:0,end:n},actions:s.map((e=>({key:e.value,text:e.label,data:e,ancestors:[],items:Ie(e,[]),payload:e.payload})))}),void N([0])}}}D(null)}),[l,o,F]);(0,p.useEffect)((()=>{F&&!k.includes(F)&&(R(""),u(null))}),[F,u,k]),(0,p.useEffect)((()=>{j&&!k.includes(j)&&(U(""),d(null))}),[j,d,k]);const ne=(0,p.useCallback)((()=>{Z(_.current)}),[Z]);(0,p.useEffect)((()=>{s&&Promise.resolve().then((()=>{var e;null===(e=v.current)||void 0===e||e.focus()}))}),[]);const ae=(0,p.useMemo)((()=>{var e;const t=null===(e=v.current)||void 0===e?void 0:e.element;if(!F||!t)return"";const n=k.indexOf(F);return n<0?"":k.slice(0,n)}),[F,k]),se=(0,p.useMemo)((()=>{var e;const t=null===(e=v.current)||void 0===e?void 0:e.element;return F&&t?(0,w.I)(t,ae,F.slice(0,-1)).map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))):null}),[F,ae]);(0,p.useEffect)((()=>{var e;const t=null===(e=v.current)||void 0===e?void 0:e.element;if(!j||!t)return void V(null);const n=(0,w.I)(t,"",j.slice(0,-1));V(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))))}),[j]);const le=(0,p.useMemo)((()=>{const e=(0,C.getChatCommand)();return e&&(0,C.setChatCommand)(null),e}),[]);(0,p.useEffect)((()=>{le&&d(le.payload)}),[le,d]),(0,p.useEffect)((()=>{var e;const t=null===(e=v.current)||void 0===e?void 0:e.element;if(le&&t){const e=`/${le.command} `,n=(0,w.I)(t,"",e.slice(0,-1));V(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4})))),_.current=e,z.current={start:e.length,end:e.length},x(e),U(e)}}),[le]);const oe=(0,p.useCallback)((e=>{var t;const n=`@${e.text} `,a=`${_.current.slice(0,W.range.start)}${n}`,s=`${a}${_.current.slice(W.range.end)}`;_.current=s,z.current={start:a.length,end:a.length},x(s),R(n),P(null),u(e.data),null===(t=v.current)||void 0===t||t.focus()}),[W,u]),ie=(0,p.useCallback)((e=>{var t;const n=`/${[...e.ancestors.map((e=>e.label)),e.text].join(": ")} `,a=`${_.current.slice(0,O.range.start)}${n}`,s=`${a}${_.current.slice(O.range.end)}`;_.current=s,z.current={start:a.length,end:a.length},x(s),U(n),D(null),d(e.payload),null===(t=v.current)||void 0===t||t.focus()}),[O,d]),re=(0,p.useCallback)((e=>{switch(e.key){case"Escape":if(!W&&!O)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),P(null),D(null),!1;case"ArrowUp":case"ArrowDown":if(!W&&!O)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),W?T((t=>{const n=t+("ArrowUp"===e.key?-1:1),a=W.actions.length;return(a+n)%a})):N((t=>{let n=0,{actions:a}=O;const s=[];for(;n<t.length-1;){const e=a[t[n]];if(!_e(e))break;a=e.items,s.push(t[n]),n+=1}const l=t[n]+("ArrowUp"===e.key?-1:1),o=a.length,i=(o+l)%o;return s.push(i),s})),!1;case"Enter":case"ArrowLeft":case"ArrowRight":if(W){if("Enter"===e.key)return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),oe(W.actions[$]),!1}else if(O){if(e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),"ArrowLeft"===e.key)return L.length>1&&N((e=>e.slice(0,-1))),!1;let t,n=0,{actions:a}=O;for(;n<L.length&&(t=a[L[n]],_e(t));)a=t.items,n+=1;return t&&(_e(t)?N((e=>[...e,0])):"Enter"===e.key&&ie(t)),!1}break;case"Delete":case"Backspace":{const t=[{textLength:null==F?void 0:F.length,prefixLength:ae.length},{textLength:null==j?void 0:j.length,prefixLength:0}];for(const{textLength:n,prefixLength:a}of t)if(n){let{selectionStart:t,selectionEnd:s}=e.currentTarget;t===s&&("Backspace"===e.key?t-=1:s+=1);const l=a,o=l+n;if(t<o&&s>l){const n=Math.min(t,l),a=Math.max(s,o),i=`${_.current.slice(0,n)}${_.current.slice(a)}`;return _.current=i,z.current={start:n,end:n},x(i),e.preventDefault(),e.stopPropagation(),!1}}break}}}),[$,L,O,null==j?void 0:j.length,oe,ie,W,ae.length,null==F?void 0:F.length]),ce=(0,p.useMemo)((()=>{if(!O)return[];let e=O.actions;const t=[];for(let n=0;n<L.length;n+=1){const a=e[L[n]];if(!a)break;if(!_e(a)){t.push(a.key);break}t.push(a.key),e=a.items}return t}),[L,O]),ue=(0,p.useRef)(null);return m().createElement("div",{className:"root"},m().createElement("div",{className:"container",ref:f},m().createElement(A.e,{containerRef:f,ref:v,value:k,minRows:58/22,paddingSize:q?144:60,autoResize:!0,disabled:n,placeholder:null!=a?a:(0,E.t)(E.K.ASK_ANY_THING),submitWhen:"enter-without-shift",desiredSelectionRef:z,onSubmit:ee,onChange:te,onKeyDown:re,style:{paddingTop:q?94:10}}),q&&m().createElement(M.Y,{files:K,onRemove:(e,t)=>{H((t=>null==t?void 0:t.filter((t=>t.uid!==e)))),null==t||t.abort()},onAdd:()=>{var e;null===(e=ue.current)||void 0===e||e.requestUpload()}}),m().createElement("div",{className:"actions-bar"},m().createElement("div",null,m().createElement("slot",{name:"actions"})),m().createElement("div",{className:"buttons"},null!=i&&i.enabled?m().createElement(m().Fragment,null,m().createElement(S.s,{ref:ue,accept:null==i?void 0:i.accept,onChange:e=>H((t=>[...null!=t?t:[],...null!=e?e:[]]))}),m().createElement("div",{className:"btn-divider"})):null,m().createElement("button",{className:"btn-send",disabled:!k||!Y,onClick:ne},m().createElement(I.Bj,{lib:"fa",prefix:"fas",icon:"arrow-up"})))),null==se?void 0:se.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),null==B?void 0:B.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),W&&(0,h.createPortal)(m().createElement(I.Tl,{actions:W.actions,style:W.style,activeKeys:[W.actions[$].key],onActionClick:e=>oe(e.detail)}),document.body),O&&(0,h.createPortal)(m().createElement(I.Tl,{actions:O.actions,style:O.style,activeKeys:ce,onActionClick:e=>ie(e.detail)}),document.body)))}function Ie(e,t){var n;return null===(n=e.options)||void 0===n?void 0:n.map((n=>{const a=[...t,e];return{key:n.value,text:n.label,data:n,ancestors:a,items:Ie(n,a),payload:n.payload}}))}function _e(e){var t;return!(null===(t=e.items)||void 0===t||!t.length)}a=Se,({e:[P,F,R,$,T,L,N,O,D,B,V,j,U,z,K,H,q,Y,G,Q,J,X,Z,ee,te,ne,ae,se,_],c:[ue,W]}=(0,d.A)(a,[le("ai-portal.chat-box",{styleTexts:[x.A],shadowOptions:{delegatesFocus:!0}})],[[oe({type:Boolean}),1,"disabled"],[oe(),1,"placeholder"],[oe({type:Boolean}),1,"autoFocus"],[oe({attribute:!1}),1,"aiEmployees"],[oe({attribute:!1}),1,"commands"],[oe({attribute:!1}),1,"uploadFiles"],[ie({type:"message.submit"}),1,"messageSubmit",e=>(0,u.A)(ge,e),(e,t)=>(0,c.A)(ge,e,t)],[ie({type:"chat.submit"}),1,"chatSubmit",e=>(0,u.A)(we,e),(e,t)=>(0,c.A)(we,e,t)],[ie({type:"ai-employee.mention"}),1,"employeeMention",e=>(0,u.A)(ke,e),(e,t)=>(0,c.A)(ke,e,t)],[ie({type:"command.select"}),1,"commandSelect",e=>(0,u.A)(xe,e),(e,t)=>(0,c.A)(xe,e,t)],[re(),2,"setValue"],[re(),2,"getValue"],[re(),2,"focusOnInput"]],0,(e=>Ce.has((0,i.A)(e))),v.ReactNextElement)),W()}}]);
|
|
2
|
-
//# sourceMappingURL=chat-box.4d1d4fd9.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/chat-box.4d1d4fd9.js","mappings":"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","sources":["webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./src/cruise-canvas/utils/file.ts","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./src/data-providers/set-chat-command.ts","webpack:///./src/chat-box/index.tsx"],"sourcesContent":["\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import { pipes } from \"@easyops-cn/brick-next-pipes\";\nimport fileText from \"../images/file-text@2x.png\";\nimport filePdf from \"../images/file-pdf@2x.png\";\nimport fileDoc from \"../images/file-doc@2x.png\";\nimport filePpt from \"../images/file-ppt@2x.png\";\nimport fileXls from \"../images/file-xls@2x.png\";\nimport fileOther from \"../images/file-other@2x.png\";\n\nconst MIME_TYPES = new Map<string, string>([\n [\"md\", \"text/markdown\"],\n [\"pdf\", \"application/pdf\"],\n [\"doc\", \"application/msword\"],\n [\n \"docx\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n ],\n [\"txt\", \"text/plain\"],\n [\"csv\", \"text/csv\"],\n [\"xls\", \"application/vnd.ms-excel\"],\n [\"xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"],\n [\"ppt\", \"application/vnd.ms-powerpoint\"],\n [\n \"pptx\",\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n ],\n]);\n\nexport function formatFileSize(size: number) {\n const [value, unit] = pipes.unitFormat(size, \"bytes\", 1);\n const number = +value;\n return `${number > 100 ? Math.round(number) : number} ${unit}`;\n}\n\nexport function getFileTypeAndIcon(\n mimeType: string | undefined,\n filename: string | undefined\n): [type: string, icon: string] {\n const type = mimeType || getMimeTypeByFilename(filename);\n\n if (type.startsWith(\"image/\")) {\n return [\"Image\", fileOther];\n }\n\n switch (type) {\n case \"text/markdown\":\n return [\"Markdown\", fileText];\n case \"application/pdf\":\n return [\"PDF\", filePdf];\n case \"application/msword\":\n case \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":\n return [\"Word\", fileDoc];\n case \"application/vnd.ms-excel\":\n case \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\n return [\"Excel\", fileXls];\n case \"application/vnd.ms-powerpoint\":\n case \"application/vnd.openxmlformats-officedocument.presentationml.presentation\":\n return [\"PowerPoint\", filePpt];\n }\n\n if (type.startsWith(\"text/\")) {\n return [\"Text\", fileText];\n }\n\n return [\"File\", fileOther];\n}\n\nexport function getMimeTypeByFilename(filename: string | undefined): string {\n let ext = \"\";\n const matches = filename?.match(/\\.([^.]+)$/);\n if (matches) {\n ext = matches[1].toLowerCase();\n }\n return MIME_TYPES.get(ext) ?? \"unknown\";\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { CommandPayload } from \"../shared/interfaces.js\";\n\nexport interface ChatCommand {\n command: string;\n payload: CommandPayload;\n}\n\nlet chatCommand: ChatCommand | null = null;\n\nexport function setChatCommand(command: ChatCommand | null): void {\n chatCommand = command;\n}\n\nexport function getChatCommand(): ChatCommand | null {\n return chatCommand;\n}\n\ncustomElements.define(\n \"ai-portal.set-chat-command\",\n createProviderClass(setChatCommand)\n);\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n useMemo,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { http } from \"@next-core/http\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport {\n getCaretPositionInTextarea,\n getContentRectsInTextarea,\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { SimpleAction, SubMenuAction } from \"@next-bricks/basic/actions\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n getChatCommand,\n setChatCommand,\n} from \"../data-providers/set-chat-command.js\";\nimport type { CommandPayload, UploadFileInfo } from \"../shared/interfaces.js\";\nimport { UploadButton, type UploadButtonRef } from \"./UploadButton.js\";\nimport { FileListComponent } from \"./FileListComponent.js\";\nimport { WrappedActions, WrappedIcon } from \"./bricks.js\";\nimport type { FileItem } from \"./interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n aiEmployees?: AIEmployee[];\n commands?: Command[];\n uploadFiles?: UploadFileOptions;\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n focusOnInput: () => void;\n}\n\nexport interface Command {\n label: string;\n value: string;\n options?: Command[];\n payload?: CommandPayload;\n}\n\nexport interface UploadFileOptions {\n enabled?: boolean;\n accept?: string;\n}\n\nexport interface ChatPayload {\n content: string;\n files?: UploadFileInfo[];\n}\n\ntype ActionWithAncestors = SimpleAction & {\n key: string | number;\n ancestors?: Command[];\n items?: ActionWithAncestors[];\n payload?: CommandPayload;\n};\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @property({ attribute: false })\n accessor commands: Command[] | undefined;\n\n @property({ attribute: false })\n accessor uploadFiles: UploadFileOptions | undefined;\n\n /**\n * @deprecated Use `chat.submit` event instead\n */\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"chat.submit\" })\n accessor #chatSubmit!: EventEmitter<ChatPayload>;\n\n #handleChatSubmit = (payload: ChatPayload) => {\n this.#chatSubmit.emit(payload);\n };\n\n @event({ type: \"ai-employee.mention\" })\n accessor #employeeMention!: EventEmitter<AIEmployee | null>;\n\n #handleEmployeeMention = (employee: AIEmployee | null) => {\n this.#employeeMention.emit(employee);\n };\n\n @event({ type: \"command.select\" })\n accessor #commandSelect!: EventEmitter<CommandPayload | null>;\n\n #handleCommandSelect = (command: CommandPayload | null) => {\n this.#commandSelect.emit(command);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n @method()\n focusOnInput() {\n return this.ref.current?.focusOnInput();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n aiEmployees={this.aiEmployees}\n commands={this.commands}\n uploadFiles={this.uploadFiles}\n onMessageSubmit={this.#handleMessageSubmit}\n onChatSubmit={this.#handleChatSubmit}\n onEmployeeMention={this.#handleEmployeeMention}\n onCommandSelect={this.#handleCommandSelect}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n onMessageSubmit: (value: string) => void;\n onChatSubmit: (payload: ChatPayload) => void;\n onEmployeeMention: (employee: AIEmployee | null) => void;\n onCommandSelect: (command: CommandPayload | null) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\ninterface MentionPopover {\n style: React.CSSProperties;\n range: {\n start: number;\n end: number;\n };\n actions: ActionWithAncestors[];\n}\n\nfunction LegacyChatBoxComponent(\n {\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n commands,\n uploadFiles,\n onMessageSubmit,\n onChatSubmit,\n onEmployeeMention,\n onCommandSelect,\n }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [mentionPopover, setMentionPopover] = useState<MentionPopover | null>(\n null\n );\n const [mentionedText, setMentionedText] = useState(\"\");\n const [activeActionIndex, setActiveActionIndex] = useState(0);\n const [activeActionIndexes, setActiveActionIndexes] = useState<number[]>([0]);\n const [commandPopover, setCommandPopover] = useState<MentionPopover | null>(\n null\n );\n const [commandOverlay, setCommandOverlay] = useState<\n React.CSSProperties[] | null\n >(null);\n const [commandText, setCommandText] = useState(\"\");\n const selectionRef = useRef<{ start: number; end: number } | null>(null);\n\n const [files, setFiles] = useState<FileItem[] | undefined>();\n const hasFiles = !!files && files.length > 0;\n\n useEffect(() => {\n files?.forEach(async (fileItem) => {\n if (fileItem.status === \"ready\") {\n const abortController = new AbortController();\n\n setFiles((prevFiles) => {\n return prevFiles?.map((item) => {\n if (item.uid === fileItem.uid) {\n return { ...item, status: \"uploading\", abortController };\n }\n return item;\n });\n });\n\n try {\n const formData = new FormData();\n formData.append(\"file\", fileItem.file);\n\n const response = await http.request<{ data: UploadFileInfo }>(\n \"api/gateway/logic.llm.aiops_service/api/v1/elevo/files/upload\",\n {\n method: \"POST\",\n body: formData,\n signal: abortController.signal,\n }\n );\n\n setFiles((prevFiles) => {\n return prevFiles?.map((item) => {\n if (item.uid === fileItem.uid) {\n return {\n ...item,\n status: \"done\",\n fileInfo: response.data,\n };\n }\n return item;\n });\n });\n } catch (error) {\n setFiles((prevFiles) => {\n return prevFiles?.map((item) => {\n if (item.uid === fileItem.uid) {\n return { ...item, status: \"failed\" };\n }\n return item;\n });\n });\n handleHttpError(error);\n }\n }\n });\n }, [files]);\n\n useEffect(() => {\n const store = window.__elevo_try_it_out;\n if (store) {\n delete window.__elevo_try_it_out;\n }\n if (typeof store?.content === \"string\") {\n valueRef.current = store.content;\n setValue(store.content);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n focusOnInput: () => {\n textareaRef.current?.focus();\n },\n }));\n\n const [allFilesDone, setAllFilesDone] = useState(true);\n const [fileInfos, setFileInfos] = useState<UploadFileInfo[] | undefined>();\n const initialRef = useRef(true);\n\n useEffect(() => {\n const allFilesDone =\n !files || files.every((file) => file.status === \"done\");\n setAllFilesDone(allFilesDone);\n if (initialRef.current) {\n initialRef.current = false;\n return;\n }\n if (allFilesDone) {\n setFileInfos(files?.map((file) => file.fileInfo!));\n }\n }, [files]);\n\n const doSubmit = useCallback(\n (value: string) => {\n const content = value.slice(commandText?.length ?? 0);\n onMessageSubmit(content);\n onChatSubmit({\n content,\n files: fileInfos,\n });\n },\n [commandText?.length, fileInfos, onChatSubmit, onMessageSubmit]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value && allFilesDone) {\n doSubmit(e.currentTarget.value);\n }\n },\n [doSubmit, allFilesDone]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value, selectionStart, selectionEnd } = e.target;\n valueRef.current = value;\n setValue(value);\n\n if (\n !mentionedText &&\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n aiEmployees?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n const mentionIndex = previousContent.lastIndexOf(\"@\");\n if (mentionIndex >= 0) {\n const mentionText = previousContent\n .slice(mentionIndex + 1)\n .toLowerCase();\n const matchedEmployees = aiEmployees\n .filter(\n (employee) =>\n employee.employeeId.toLowerCase().includes(mentionText) ||\n employee.name.toLowerCase().includes(mentionText)\n )\n .slice(0, 10);\n if (matchedEmployees.length > 0) {\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const textareaRect = e.currentTarget.getBoundingClientRect();\n setMentionPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: mentionIndex, end: selectionStart },\n actions: matchedEmployees.map((employee) => ({\n key: employee.employeeId,\n text: employee.name,\n data: employee,\n })),\n });\n setActiveActionIndex(0);\n return;\n }\n }\n }\n setMentionPopover(null);\n\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n commands?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(\"/\")) {\n const commandText = previousContent.slice(1).toLowerCase();\n const matchedCommands = commands\n .filter((command) =>\n command.label.toLowerCase().includes(commandText)\n )\n .slice(0, 10);\n if (matchedCommands.length > 0) {\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const textareaRect = e.currentTarget.getBoundingClientRect();\n setCommandPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, end: selectionStart },\n actions: matchedCommands.map((command) => ({\n key: command.value,\n text: command.label,\n data: command,\n ancestors: [],\n items: getCommandSubMenu(command, []),\n payload: command.payload,\n })),\n });\n setActiveActionIndexes([0]);\n return;\n }\n }\n }\n setCommandPopover(null);\n },\n [aiEmployees, commands, mentionedText]\n );\n\n useEffect(() => {\n if (mentionedText && !value.includes(mentionedText)) {\n setMentionedText(\"\");\n onEmployeeMention(null);\n }\n }, [mentionedText, onEmployeeMention, value]);\n\n useEffect(() => {\n if (commandText && !value.includes(commandText)) {\n setCommandText(\"\");\n onCommandSelect(null);\n }\n }, [commandText, onCommandSelect, value]);\n\n const handleSubmitClick = useCallback(() => {\n doSubmit(valueRef.current);\n }, [doSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const mentionPrefix = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return \"\";\n }\n const index = value.indexOf(mentionedText);\n if (index < 0) {\n return \"\";\n }\n return value.slice(0, index);\n }, [mentionedText, value]);\n\n const mentionOverlay = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return null;\n }\n const rects = getContentRectsInTextarea(\n element,\n mentionPrefix,\n // Ignore the last space\n mentionedText.slice(0, -1)\n );\n return rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }));\n }, [mentionedText, mentionPrefix]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (!commandText || !element) {\n setCommandOverlay(null);\n return;\n }\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandText.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n }, [commandText]);\n\n const chatCommand = useMemo(() => {\n const command = getChatCommand();\n if (command) {\n setChatCommand(null);\n }\n return command;\n }, []);\n\n useEffect(() => {\n if (chatCommand) {\n onCommandSelect(chatCommand.payload);\n }\n }, [chatCommand, onCommandSelect]);\n\n useEffect(() => {\n const element = textareaRef.current?.element;\n if (chatCommand && element) {\n const commandStr = `/${chatCommand.command} `;\n const rects = getContentRectsInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandStr.slice(0, -1)\n );\n setCommandOverlay(\n rects.map((rect) => ({\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n }))\n );\n valueRef.current = commandStr;\n selectionRef.current = {\n start: commandStr.length,\n end: commandStr.length,\n };\n setValue(commandStr);\n setCommandText(commandStr);\n }\n }, [chatCommand]);\n\n const handleMention = useCallback(\n (action: SimpleAction) => {\n const mention = `@${action.text} `;\n const prefix = `${valueRef.current.slice(0, mentionPopover!.range.start)}${mention}`;\n const newValue = `${prefix}${valueRef.current.slice(mentionPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setMentionedText(mention);\n setMentionPopover(null);\n onEmployeeMention((action as { data?: AIEmployee }).data!);\n textareaRef.current?.focus();\n },\n [mentionPopover, onEmployeeMention]\n );\n\n const handleSelectCommand = useCallback(\n (action: ActionWithAncestors) => {\n const command = `/${[...action.ancestors!.map((an) => an.label), action.text].join(\": \")} `;\n const prefix = `${valueRef.current.slice(0, commandPopover!.range.start)}${command}`;\n const newValue = `${prefix}${valueRef.current.slice(commandPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setCommandText(command);\n setCommandPopover(null);\n onCommandSelect(action.payload!);\n textareaRef.current?.focus();\n },\n [commandPopover, onCommandSelect]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n switch (e.key) {\n case \"Escape\":\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setMentionPopover(null);\n setCommandPopover(null);\n return false;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n if (mentionPopover) {\n setActiveActionIndex((prev) => {\n const nextIndex = prev + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = mentionPopover.actions.length;\n const next = (total + nextIndex) % total;\n return next;\n });\n } else {\n setActiveActionIndexes((prev) => {\n let cursor = 0;\n let { actions } = commandPopover!;\n const list: number[] = [];\n while (cursor < prev.length - 1) {\n const action = actions[prev[cursor]];\n if (isSubMenuAction(action)) {\n actions = action.items;\n } else {\n break;\n }\n list.push(prev[cursor]);\n cursor += 1;\n }\n const nextIndex = prev[cursor] + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = actions.length;\n const next = (total + nextIndex) % total;\n list.push(next);\n return list;\n });\n }\n return false;\n }\n case \"Enter\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n if (mentionPopover) {\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n handleMention(mentionPopover.actions[activeActionIndex]);\n return false;\n }\n } else if (commandPopover) {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n\n if (e.key === \"ArrowLeft\") {\n if (activeActionIndexes.length > 1) {\n setActiveActionIndexes((prev) => prev.slice(0, -1));\n }\n return false;\n }\n\n let cursor = 0;\n let { actions } = commandPopover!;\n let action: ActionWithAncestors | undefined;\n while (cursor < activeActionIndexes.length) {\n action = actions[activeActionIndexes[cursor]];\n if (isSubMenuAction(action)) {\n actions = action.items;\n } else {\n break;\n }\n cursor += 1;\n }\n if (action) {\n if (isSubMenuAction(action)) {\n setActiveActionIndexes((prev) => [...prev, 0]);\n } else if (e.key === \"Enter\") {\n handleSelectCommand(action);\n }\n }\n return false;\n }\n break;\n case \"Delete\":\n case \"Backspace\": {\n const popovers = [\n {\n textLength: mentionedText?.length,\n prefixLength: mentionPrefix.length,\n },\n {\n textLength: commandText?.length,\n prefixLength: 0,\n },\n ];\n\n for (const { textLength, prefixLength } of popovers) {\n if (textLength) {\n let { selectionStart, selectionEnd } = e.currentTarget;\n if (selectionStart === selectionEnd) {\n if (e.key === \"Backspace\") {\n selectionStart -= 1;\n } else {\n selectionEnd += 1;\n }\n }\n const currentStart = prefixLength;\n const currentEnd = currentStart + textLength;\n if (selectionStart < currentEnd && selectionEnd > currentStart) {\n const start = Math.min(selectionStart, currentStart);\n const end = Math.max(selectionEnd, currentEnd);\n const newValue = `${valueRef.current.slice(0, start)}${valueRef.current.slice(end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start, end: start };\n setValue(newValue);\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n }\n break;\n }\n }\n },\n [\n activeActionIndex,\n activeActionIndexes,\n commandPopover,\n commandText?.length,\n handleMention,\n handleSelectCommand,\n mentionPopover,\n mentionPrefix.length,\n mentionedText?.length,\n ]\n );\n\n const commandCheckedKeys = useMemo(() => {\n if (!commandPopover) {\n return [];\n }\n let actions = commandPopover.actions;\n const checkedKeys: (string | number)[] = [];\n for (let i = 0; i < activeActionIndexes.length; i += 1) {\n const index = activeActionIndexes[i];\n const action = actions[index];\n if (action) {\n if (isSubMenuAction(action)) {\n checkedKeys.push(action.key!);\n actions = action.items;\n } else {\n checkedKeys.push(action.key!);\n break;\n }\n } else {\n break;\n }\n }\n return checkedKeys;\n }, [activeActionIndexes, commandPopover]);\n\n const uploadButtonRef = useRef<UploadButtonRef>(null);\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={hasFiles ? 144 : 60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n desiredSelectionRef={selectionRef}\n onSubmit={handleSubmit}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n style={{\n paddingTop: hasFiles ? 94 : 10,\n }}\n />\n {hasFiles && (\n <FileListComponent\n files={files!}\n onRemove={(uid, abortController) => {\n setFiles((prevFiles) =>\n prevFiles?.filter((item) => item.uid !== uid)\n );\n abortController?.abort();\n }}\n onAdd={() => {\n uploadButtonRef.current?.requestUpload();\n }}\n />\n )}\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <div className=\"buttons\">\n {uploadFiles?.enabled ? (\n <>\n <UploadButton\n ref={uploadButtonRef}\n accept={uploadFiles?.accept}\n onChange={(files) =>\n setFiles((prevFiles) => [\n ...(prevFiles ?? []),\n ...(files ?? []),\n ])\n }\n />\n <div className=\"btn-divider\"></div>\n </>\n ) : null}\n <button\n className=\"btn-send\"\n disabled={!value || !allFilesDone}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n </div>\n {mentionOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {commandOverlay?.map((overlay, index) => (\n <div key={index} className=\"mention-overlay\" style={overlay} />\n ))}\n {mentionPopover &&\n createPortal(\n <WrappedActions\n actions={mentionPopover.actions}\n style={mentionPopover.style}\n activeKeys={[mentionPopover.actions[activeActionIndex].key!]}\n onActionClick={(e) => handleMention(e.detail)}\n />,\n document.body\n )}\n {commandPopover &&\n createPortal(\n <WrappedActions\n actions={commandPopover.actions}\n style={commandPopover.style}\n activeKeys={commandCheckedKeys}\n onActionClick={(e) =>\n handleSelectCommand(e.detail as ActionWithAncestors)\n }\n />,\n document.body\n )}\n </div>\n </div>\n );\n}\n\nfunction getCommandSubMenu(\n command: Command,\n ancestors: Command[]\n): ActionWithAncestors[] | undefined {\n return command.options?.map((subCommand) => {\n const nextAncestors = [...ancestors, command];\n return {\n key: subCommand.value,\n text: subCommand.label,\n data: subCommand,\n ancestors: nextAncestors,\n items: getCommandSubMenu(subCommand, nextAncestors),\n payload: subCommand.payload,\n };\n });\n}\n\nfunction isSubMenuAction(\n action: SimpleAction | SubMenuAction\n): action is SubMenuAction {\n return !!(action as SubMenuAction).items?.length;\n}\n"],"names":["module","exports","url","options","String","__esModule","default","test","slice","hash","needQuotes","concat","replace","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","MIME_TYPES","Map","formatFileSize","size","unit","pipes","unitFormat","number","Math","round","getFileTypeAndIcon","mimeType","filename","type","getMimeTypeByFilename","startsWith","fileOther","fileText","filePdf","fileDoc","fileXls","filePpt","_MIME_TYPES$get","ext","matches","match","toLowerCase","get","_extends","assign","bind","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","this","chatCommand","setChatCommand","command","getChatCommand","customElements","define","createProviderClass","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ChatBoxComponent","forwardRef","LegacyChatBoxComponent","_ChatBox","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ChatBox_brand","WeakSet","_handleMessageSubmit","_H","_handleChatSubmit","_I","_handleEmployeeMention","_J","_handleCommandSelect","ChatBox","ReactNextElement","constructor","_classPrivateMethodInitSpec","_initProto","createRef","_classPrivateFieldInitSpec","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_aiEmployees","_init_extra_aiEmployees","_init_commands","_init_extra_commands","_init_uploadFiles","_init_extra_uploadFiles","_init_messageSubmit","_init_extra_messageSubmit","_classPrivateGetter","_get_messageSubmit","emit","_init_chatSubmit","_init_extra_chatSubmit","payload","_get_chatSubmit","_init_employeeMention","_init_extra_employeeMention","employee","_get_employeeMention","_init_commandSelect","_init_extra_commandSelect","_get_commandSelect","disabled","_classPrivateFieldGet","v","_classPrivateFieldSet","placeholder","autoFocus","aiEmployees","commands","uploadFiles","setValue","_this$ref$current","ref","current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","render","React","onMessageSubmit","onChatSubmit","onEmployeeMention","onCommandSelect","_ref","containerRef","useRef","textareaRef","useState","valueRef","mentionPopover","setMentionPopover","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","activeActionIndexes","setActiveActionIndexes","commandPopover","setCommandPopover","commandOverlay","setCommandOverlay","commandText","setCommandText","selectionRef","files","setFiles","hasFiles","useEffect","forEach","async","fileItem","status","abortController","AbortController","prevFiles","map","item","uid","formData","FormData","append","file","response","http","request","body","signal","fileInfo","data","error","handleHttpError","store","window","__elevo_try_it_out","content","useImperativeHandle","_textareaRef$current","focus","allFilesDone","setAllFilesDone","fileInfos","setFileInfos","initialRef","every","doSubmit","useCallback","_commandText$length","handleSubmit","e","currentTarget","handleChange","selectionStart","selectionEnd","previousContent","mentionIndex","lastIndexOf","mentionText","matchedEmployees","filter","employeeId","includes","name","position","getCaretPositionInTextarea","textareaRect","getBoundingClientRect","style","left","top","zIndex","range","start","end","actions","text","matchedCommands","label","ancestors","items","getCommandSubMenu","handleSubmitClick","Promise","resolve","then","_textareaRef$current2","mentionPrefix","useMemo","_textareaRef$current3","element","index","indexOf","mentionOverlay","_textareaRef$current4","getContentRectsInTextarea","rect","width","height","_textareaRef$current5","rects","_textareaRef$current6","commandStr","handleMention","action","_textareaRef$current7","mention","prefix","newValue","handleSelectCommand","_textareaRef$current8","an","join","handleKeyDown","preventDefault","stopPropagation","nativeEvent","stopImmediatePropagation","prev","nextIndex","total","cursor","list","isSubMenuAction","push","next","popovers","textLength","prefixLength","currentStart","currentEnd","min","max","commandCheckedKeys","checkedKeys","uploadButtonRef","className","TextareaAutoResize","minRows","paddingSize","autoResize","t","K","ASK_ANY_THING","submitWhen","desiredSelectionRef","onSubmit","onChange","onKeyDown","paddingTop","FileListComponent","onRemove","abort","onAdd","_uploadButtonRef$curr","requestUpload","enabled","UploadButton","accept","onClick","WrappedIcon","lib","icon","overlay","createPortal","WrappedActions","activeKeys","onActionClick","detail","document","_command$options","subCommand","nextAncestors","_items","_ChatBox2","_set_messageSubmit","_set_chatSubmit","_set_employeeMention","_set_commandSelect","c","_initClass","_applyDecs","styleTexts","styleText","shadowOptions","delegatesFocus","Boolean","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|