@next-bricks/ai-portal 0.56.0 → 0.56.1
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 +35 -35
- package/dist/chunks/1510.42780c0d.js +2 -0
- package/dist/chunks/1510.42780c0d.js.map +1 -0
- package/dist/chunks/1864.7e31d8fe.js +2 -0
- package/dist/chunks/1864.7e31d8fe.js.map +1 -0
- package/dist/chunks/5269.13671bc0.js +2 -0
- package/dist/chunks/5269.13671bc0.js.map +1 -0
- package/dist/chunks/6995.4d172ef6.js +2 -0
- package/dist/chunks/6995.4d172ef6.js.map +1 -0
- package/dist/chunks/7517.cf7a9f90.js +2 -0
- package/dist/chunks/7517.cf7a9f90.js.map +1 -0
- package/dist/chunks/chat-box.4d1d4fd9.js +2 -0
- package/dist/chunks/chat-box.4d1d4fd9.js.map +1 -0
- package/dist/chunks/{chat-stream.24066a8e.js → chat-stream.e0d13969.js} +2 -2
- package/dist/chunks/{chat-stream.24066a8e.js.map → chat-stream.e0d13969.js.map} +1 -1
- package/dist/chunks/{main.0653045c.js → main.14d3a485.js} +2 -2
- package/dist/chunks/{main.0653045c.js.map → main.14d3a485.js.map} +1 -1
- package/dist/examples.json +16 -16
- package/dist/{index.e11d54e9.js → index.8d87387c.js} +2 -2
- package/dist/{index.e11d54e9.js.map → index.8d87387c.js.map} +1 -1
- package/dist/manifest.json +271 -268
- package/dist/types.json +1450 -1243
- package/dist-types/chat-box/UploadButton.d.ts +1 -0
- package/dist-types/chat-box/index.d.ts +13 -5
- package/dist-types/chat-box/interfaces.d.ts +2 -1
- package/dist-types/chat-stream/Aside/Aside.d.ts +3 -1
- package/dist-types/chat-stream/AssistantMessage/AssistantMessage.d.ts +4 -1
- package/dist-types/chat-stream/NodeChunk/NodeChunk.d.ts +2 -1
- package/dist-types/chat-stream/NodeChunk/NodeJob.d.ts +2 -1
- package/dist-types/chat-stream/useAutoScroll.d.ts +5 -0
- package/dist-types/chat-stream/useConversationStream.d.ts +3 -2
- package/dist-types/cruise-canvas/useConversationGraph.d.ts +2 -2
- package/dist-types/shared/TaskContext.d.ts +2 -0
- package/dist-types/shared/getFlatChunks.d.ts +5 -2
- package/dist-types/shared/interfaces.d.ts +4 -0
- package/package.json +2 -2
- package/dist/chunks/1510.d022a470.js +0 -2
- package/dist/chunks/1510.d022a470.js.map +0 -1
- package/dist/chunks/1864.4bd403fd.js +0 -2
- package/dist/chunks/1864.4bd403fd.js.map +0 -1
- package/dist/chunks/6995.cb0a8137.js +0 -2
- package/dist/chunks/6995.cb0a8137.js.map +0 -1
- package/dist/chunks/7517.b5ed4e8e.js +0 -2
- package/dist/chunks/7517.b5ed4e8e.js.map +0 -1
- package/dist/chunks/9324.e514b672.js +0 -2
- package/dist/chunks/9324.e514b672.js.map +0 -1
- package/dist/chunks/chat-box.8e064684.js +0 -2
- package/dist/chunks/chat-box.8e064684.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[9324],{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})},26598:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),l=a(40935),s=a.n(l)()(i());s.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}",""]),s.locals={user:"user--HjXM9OHW"};const o=s},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),l=a(40935),s=a.n(l)()(i());s.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{position:absolute;content:" ";animation:texting--Rpmsbpca 2s infinite;white-space:pre}.avatar--jaJhEiSV{font-size:32px}@keyframes texting--Rpmsbpca{0%{content:" "}25%{content:". "}50%{content:".. "}75%{content:"..."}100%{content:" "}}',""]),s.locals={assistant:"assistant--CrlgPgYL",body:"body--sAIo2dhL",texting:"texting--Rpmsbpca",avatar:"avatar--jaJhEiSV"};const o=s},48952:(e,t,a)=>{a.d(t,{I:()=>s,K:()=>i,NS:()=>l,t:()=>o});var n=a(52616);let i=function(e){return e.SWITCH_TO_CANVAS="SWITCH_TO_CANVAS",e.START_SERVICE_FLOW="START_SERVICE_FLOW",e.START_SERVICE_FLOW_ACTIVITY="START_SERVICE_FLOW_ACTIVITY",e.SERVICE_FLOW="SERVICE_FLOW",e.SERVICE_FLOW_ACTIVITY="SERVICE_FLOW_ACTIVITY",e}({});const l="bricks/ai-portal/chat-stream",s={en:{SWITCH_TO_CANVAS:"Switch to canvas",START_SERVICE_FLOW:"Start service flow: {{ name }}",START_SERVICE_FLOW_ACTIVITY:"Start service flow activity: {{ name }}",SERVICE_FLOW:"Service flow: {{ name }}",SERVICE_FLOW_ACTIVITY:"Service flow activity: {{ name }}"},zh:{SWITCH_TO_CANVAS:"切换为画布",START_SERVICE_FLOW:"开始业务流:{{ name }}",START_SERVICE_FLOW_ACTIVITY:"开始业务流活动:{{ name }}",SERVICE_FLOW:"业务流:{{ name }}",SERVICE_FLOW_ACTIVITY:"业务流活动:{{ name }}"}},o=n.i18n.getFixedT(null,l)},50094:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),l=a(40935),s=a.n(l)()(i());s.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}',""]),s.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=s},59324:(e,t,a)=>{a.d(t,{C:()=>_e});var n=a(18769),i=a.n(n),l=a(30348),s=a(99126),o=a(53373),r=a.n(o),c=a(67101),d=a(50045);function m(e,t,a,i,l,s){const o=null==s?void 0:s.showHumanActions;return(0,n.useMemo)((()=>{if(!e)return{messages:[],lastDetail:null};const n=(0,d.a)(t,a,i,l,!0),s=new Map,r=[];let c={role:"assistant",chunks:[]},m=null;for(const e of n)if("job"===e.type){var p;const t=e.job;s.set(t.id,t),t.toolCall&&(m={type:"job",id:t.id}),"completed"===t.state&&null!==(p=t.messages)&&void 0!==p&&p.length&&t.messages.every((e=>"user"===e.role))?(c.chunks.length>0&&r.push(c),r.push({role:"user",content:t.messages.flatMap((e=>e.parts.map((e=>"text"===e.type?e.text:"")))).join(""),cmd:t.cmd,fromSkippedSubTask:e.fromSkippedSubTask}),c={role:"assistant",chunks:[]}):c.chunks.push(e),t.humanAction&&(c.chunks.length>0&&r.push(c),o&&r.push({role:"user",content:t.humanAction}),c={role:"assistant",chunks:[]})}else c.chunks.push(e),"error"!==e.type&&(m={type:e.type,id:e.task.id});let u=r.length>0;if(u&&"assistant"===c.role&&0===c.chunks.length){const e=r[r.length-1];"user"===e.role&&e.fromSkippedSubTask&&(u=!1)}return u&&r.push(c),{messages:r,jobMap:s,lastDetail:m}}),[e,t,i,l,a,o])}var p=a(30672),u=a(72591),f=a.n(u),h=a(1740),g=a.n(h),b=a(88128),v=a.n(b),x=a(30855),E=a.n(x),k=a(93051),w=a.n(k),y=a(73656),A=a.n(y),I=a(26598),T={};T.styleTagTransform=A(),T.setAttributes=E(),T.insert=v().bind(null,"head"),T.domAPI=g(),T.insertStyleElement=w(),f()(I.A,T);const S=I.A&&I.A.locals?I.A.locals:void 0;var N=a(77388);function C(e){let{content:t,cmd:a}=e;return i().createElement("div",{className:S.user},a&&i().createElement(N._,{cmd:a}),t)}var j=a(35754),_={};_.styleTagTransform=A(),_.setAttributes=E(),_.insert=v().bind(null,"head"),_.domAPI=g(),_.insertStyleElement=w(),f()(j.A,_);const F=j.A&&j.A.locals?j.A.locals:void 0;var V=a(40177),R=a(35430),D=a(89575),z=a(41030),O=a(50094),W={};W.styleTagTransform=A(),W.setAttributes=E(),W.insert=v().bind(null,"head"),W.domAPI=g(),W.insertStyleElement=w(),f()(O.A,W);const L=O.A&&O.A.locals?O.A.locals:void 0;var q=a(36903),U=a(69606),P=a(42854),J=a(86976),G=a(65438),M={};M.styleTagTransform=A(),M.setAttributes=E(),M.insert=v().bind(null,"head"),M.domAPI=g(),M.insertStyleElement=w(),f()(G.A,M);const B=G.A&&G.A.locals?G.A.locals:void 0;function X(e){let{job:t}=e;const[a,l]=(0,n.useState)("medium"),s=(0,n.useCallback)((e=>{l(e)}),[]);return i().createElement("div",{className:r()(B.view,{[B.large]:"large"===a})},i().createElement(J.y,{job:t,onSizeChange:s}))}var H=a(76720);const Y=(0,n.createContext)({lastDetail:null,setUserClosedAside:()=>{}});function K(e,t){switch(e){case"completed":return{className:L.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:L.working,icon:{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}};case"input-required":return{className:L["input-required"],icon:{lib:"fa",prefix:"far",icon:"circle-user"}};case"failed":return{className:L.failed,icon:{lib:"fa",prefix:"fas",icon:"xmark"}};case"canceled":case"terminated":return{className:L.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 Z(e){var t,a;let{job:l}=e;const s=l.toolCall,o=(null==s||null===(t=s.annotations)||void 0===t?void 0:t.title)||(null==s?void 0:s.name),c=null==s?void 0:s.name,d=!!s,{conversationState:m,setActiveDetail:u}=(0,n.useContext)(H.j),{lastDetail:f,setUserClosedAside:h}=(0,n.useContext)(Y),{className:g,icon:b}=(0,n.useMemo)((()=>K(l.state,m)),[l.state,m]),[v,x]=(0,n.useMemo)((()=>{var e;const t=[],a=[],n=[];let i="llm_answer"===c;return null===(e=l.messages)||void 0===e||e.forEach((e=>{if("tool"===e.role)for(const o of e.parts){var l;if("data"===o.type)switch(null===(l=o.data)||void 0===l?void 0:l.type){case"markdown":t.push(o.data.content);break;case"cmdb_instance_detail":var s;a.push(o.data),i||(i=Object.keys("object"===(null===(s=o.data)||void 0===s||null===(s=s.outputSchema)||void 0===s?void 0:s.type)?o.data.outputSchema.properties:o.data.detail).length>6)}else"file"===o.type&&n.push(o.file)}})),[t.join(""),a,n]}),[l.messages,c]),[E,k]=(0,n.useState)(!1);return i().createElement("div",{className:r()({[L.collapsed]:E})},i().createElement("div",{className:L.main},null===(a=l.messages)||void 0===a?void 0:a.map(((e,t)=>{var a;return"tool"===e.role?null:i().createElement("div",{key:t,className:r()(L.message,q.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(U.w,{className:r()(L["message-part"],q.A["markdown-wrapper"]),content:e.text})))))}))),d&&i().createElement(i().Fragment,null,i().createElement("div",{className:r()(L.heading,g),onClick:()=>k((e=>!e))},i().createElement("div",{className:L.icon},i().createElement(p.Bj,b)),i().createElement("div",{className:L.title},l.instruction||o),i().createElement(p.Bj,(0,D.A)({className:L.caret},V.ae))),i().createElement("div",{className:L.body},i().createElement("div",{className:L.tool,onClick:()=>{const e={type:"job",id:l.id};u((t=>(0,z.isEqual)(t,e)?t:e)),(0,z.isEqual)(e,f)&&h(!1)}},i().createElement(p.Bj,{lib:"lucide",icon:"square-chevron-right"}),o),i().createElement("div",{className:L.content},v&&i().createElement("div",{className:r()(L.markdown,q.A.markdown)},i().createElement(U.w,{className:q.A["markdown-wrapper"],content:v})),x.map(((e,t)=>i().createElement("div",{key:t,className:L.box},i().createElement(P.H,e)))),l.generatedView?i().createElement(X,{job:l}):null))))}var Q=a(48952);function $(e){let{chunk:t}=e;return"job"===t.type?i().createElement(Z,{job:t.job}):"error"===t.type?i().createElement("div",{className:L.error},t.error):i().createElement(ee,{chunk:t})}function ee(e){let{chunk:t}=e;const{conversationState:a,setActiveDetail:l}=(0,n.useContext)(H.j),{setUserClosedAside:s,lastDetail:o}=(0,n.useContext)(Y),[c,d]=(0,n.useState)(!1),{type:m,task:u}=t,{className:f,icon:h}=(0,n.useMemo)((()=>K("flow"===t.type?"completed":u.state,a)),[t.type,a,u.state]);return i().createElement("div",{className:r()({[L.collapsed]:c})},i().createElement("div",{className:r()(L.heading,f),onClick:()=>d((e=>!e))},i().createElement("div",{className:L.icon},i().createElement(p.Bj,h)),i().createElement("div",{className:L.title},"flow"===m?(0,Q.t)(Q.K.START_SERVICE_FLOW,{name:t.flow.name}):(0,Q.t)(Q.K.START_SERVICE_FLOW_ACTIVITY,{name:t.activity.name})),i().createElement(p.Bj,(0,D.A)({className:L.caret},V.ae))),i().createElement("div",{className:L.body},i().createElement("div",{className:L.tool,onClick:()=>{const e={type:t.type,id:t.task.id};l((t=>(0,z.isEqual)(t,e)?t:e)),(0,z.isEqual)(e,o)&&s(!1)}},i().createElement(p.Bj,{lib:"lucide",icon:"route"}),"flow"===m?(0,Q.t)(Q.K.SERVICE_FLOW,{name:t.flow.name}):(0,Q.t)(Q.K.SERVICE_FLOW_ACTIVITY,{name:t.activity.name}))))}function te(e){let{chunks:t,isLatest:a}=e;const{conversationState:l}=(0,n.useContext)(H.j),[s,o]=(0,n.useMemo)((()=>{const e=t[t.length-1];let n;if(e)switch(e.type){case"flow":case"activity":n=e.task.jobs.findLast((e=>"working"===e.state));break;case"job":n=e.job;break;default:return[!1,void 0]}if(!a||V.Z5.includes(l))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]}),[a,t,l]);return i().createElement("div",{className:F.assistant},i().createElement(p.Bj,{lib:"easyops",category:"image",icon:"elevo-avatar-png",className:F.avatar}),i().createElement("div",{className:F.body},t.map(((e,t)=>i().createElement($,{key:t,chunk:e}))),s&&i().createElement("div",{className:F.texting}),a&&o&&!o.humanAction&&o.requestHumanAction&&!V.X4.includes(l)&&("working"===o.state||"input-required"===o.state)&&i().createElement(R.n,{action:o.requestHumanAction,ui:"chat"})))}var ae=a(70046),ne=a(62309),ie=a(83090),le={};le.styleTagTransform=A(),le.setAttributes=E(),le.insert=v().bind(null,"head"),le.domAPI=g(),le.insertStyleElement=w(),f()(ie.A,le);const se=ie.A&&ie.A.locals?ie.A.locals:void 0;var oe=a(39649),re=a(52616),ce=a(83685),de={};de.styleTagTransform=A(),de.setAttributes=E(),de.insert=v().bind(null,"head"),de.domAPI=g(),de.insertStyleElement=w(),f()(ce.A,de);const me=ce.A&&ce.A.locals?ce.A.locals:void 0;var pe=a(625);let ue=function(e){return e.WAITING="WAITING",e.EXECUTING="EXECUTING",e.PAUSED="PAUSED",e.SUCCEEDED="SUCCEEDED",e.FAILED="FAILED",e.TERMINATED="TERMINATED",e}({});const fe="bricks/ai-portal/FlowApp",he=re.i18n.getFixedT(null,fe);function ge(e){var t;let{flow:a,activity:l}=e;const{tasks:s,setActiveDetail:o}=(0,n.useContext)(H.j),c=(0,n.useMemo)((()=>s.find((e=>e.id===a.taskId))),[s,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=s.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,s]),m=(0,n.useMemo)((()=>ve(c.state)),[c.state]);return i().createElement("div",{className:me.app},i().createElement("div",{className:me.heading},i().createElement("div",{className:me.header},i().createElement("div",{className:r()(me.status,m.className)},i().createElement(p.Bj,m.icon),m.text),i().createElement("div",{className:me.title},`${null!==(t=a.space)&&void 0!==t&&t.name?`${a.space.name} / `:""}${a.name}`)),i().createElement("div",{className:me.chart},i().createElement(p.n$,{spec:d,activeActivityId:null==l?void 0:l.taskId,onActiveChange:e=>{e.detail&&o({type:"activity",id:e.detail})}}))),i().createElement("div",{className:me.body},l?i().createElement(be,{activity:l}):i().createElement(p.F_,{className:me.blank,description:"您还未选择活动",illustration:"serviceflows"})))}function be(e){let{activity:t}=e;const{tasks:a,errors:l}=(0,n.useContext)(H.j),s=(0,n.useMemo)((()=>a.find((e=>e.id===t.taskId))),[a,t.taskId]),o=s.state,{icon:r,className:c}=(0,n.useMemo)((()=>ve(o)),[o]),d=(0,n.useMemo)((()=>[{...s,parent:void 0}]),[s]),{messages:u}=m(!0,d,l);return i().createElement(i().Fragment,null,i().createElement("div",{className:me["activity-title"]},i().createElement(p.Bj,(0,D.A)({},r,{className:c})),t.name),i().createElement("div",{className:me.chat},u.map(((e,t,a)=>i().createElement("div",{className:me.message,key:t},"user"===e.role?i().createElement(C,{content:e.content,cmd:e.cmd}):i().createElement(te,{chunks:e.chunks,isLatest:t===a.length-1}))))))}function ve(e){const t=(0,pe.W)(e);let a,n;switch(e){case"working":a=he(ue.EXECUTING),n=me.working;break;case"completed":a=he(ue.SUCCEEDED),n=me.completed;break;case"failed":a=he(ue.FAILED),n=me.failed;break;case"input-required":a=he(ue.PAUSED),n=me.paused;break;case"terminated":a=he(ue.TERMINATED);break;default:a=he(e?ue.EXECUTING:ue.WAITING)}return{icon:t,text:a,className:n}}(0,re.initializeI18n)(fe,{en:{WAITING:"Waiting",EXECUTING:"Executing",PAUSED:"Paused",SUCCEEDED:"Succeeded",FAILED:"Failed",TERMINATED:"Terminated"},zh:{WAITING:"等待中",EXECUTING:"执行中",PAUSED:"暂停",SUCCEEDED:"成功",FAILED:"失败",TERMINATED:"已终止"}});const xe={lib:"easyops",icon:"shrink"};function Ee(e){let{detail:t}=e;const{setActiveDetail:a}=(0,n.useContext)(H.j),{setUserClosedAside:l}=(0,n.useContext)(Y),[s,o]=(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 l of t.parts){var i;if("data"===l.type)switch(null===(i=l.data)||void 0===i?void 0:i.type){case"markdown":e.push(l.data.content);break;case"cmdb_instance_detail":a.push(l.data)}else"file"===l.type&&n.push(l.file)}}))),[e.join(""),a,n]}),[t]);return i().createElement("div",{className:se.aside},i().createElement("div",{className:se.box},i().createElement("div",{className:se.header},i().createElement("div",{className:se.title},"Elevo's Computer"),i().createElement(p.Py,{icon:xe,variant:"mini",onClick:()=>{a(null),l(!0)}})),i().createElement("div",{className:se.body},"job"===t.type?i().createElement(i().Fragment,null,i().createElement(oe.t,{job:t.job,variant:"read-only"}),t.job.generatedView?i().createElement(ke,{name:"View",source:t.job.generatedView.code,language:"jsx"}):s?i().createElement(ke,{name:"Content",source:s,language:"md"}):o.length>0?i().createElement(ke,{name:"CMDB",source:JSON.stringify(o,null,2),language:"json"}):null):i().createElement(ge,{flow:t.flow,activity:t.activity}))))}function ke(e){let{name:t,source:a,language:n}=e;return i().createElement("div",{className:r()(se.app,se.editor)},i().createElement("div",{className:se.heading},`${t}.${n}`),i().createElement("div",{className:r()(se.content,q.A.markdown)},i().createElement("div",{className:se.scroller},i().createElement(p.yQ,{className:se["code-block"],source:a,language:n,themeVariant:"elevo"}))))}var we=a(94625),ye=a(76239),Ae={};Ae.styleTagTransform=A(),Ae.setAttributes=E(),Ae.insert=v().bind(null,"head"),Ae.domAPI=g(),Ae.insertStyleElement=w(),f()(ye.A,Ae);const Ie=ye.A&&ye.A.locals?ye.A.locals:void 0;var Te=a(86767),Se=a(98153),Ne=a(88253),Ce=a(2367);const je={lib:"easyops",icon:"share"};function _e(e,t){var a;let{conversationId:o,initialRequest:d,replay:u,replayDelay:f,supports:h,showHumanActions:g,showFeedback:b,showFeedbackAfterFailed:v,showFeedbackOnView:x,showUiSwitch:E,previewUrlTemplate:k,showCases:w,exampleProjects:y,tryItOutUrl:A,onShare:I,onTerminate:T,onSubmitFeedback:S,onSwitchToCanvas:N,onFeedbackOnView:j,onDetailChange:_}=e;const{conversation:F,tasks:R,serviceFlows:D,errors:z,humanInputRef:O,skipToResults:W,watchAgain:L}=(0,c.u)(o,d,u,f),q=null!==(a=null==F?void 0:F.title)&&void 0!==a?a:"",U=null==F?void 0:F.state,P=V.QB.includes(U)||"input-required"===U,{flowMap:J,activityMap:G}=(0,Ne.o)(D),{messages:M,jobMap:B,lastDetail:X}=m(!!F,R,z,J,G,{showHumanActions:g});(0,n.useEffect)((()=>{_({projectId:null==F?void 0:F.projectId})}),[_,null==F?void 0:F.projectId]);const K=(0,n.useMemo)((()=>B?[...B.values()].flatMap((e=>e.generatedView?{id:e.id,view:e.generatedView}:[])):[]),[B]),[Z,$]=(0,n.useState)(!1),[ee,ie]=(0,n.useState)(!1),[le,se]=(0,n.useState)(!!b);(0,n.useEffect)((()=>{se(!!b)}),[b]);const[oe,re]=(0,n.useState)(),ce=(0,n.useCallback)((e=>{$(!0),S(e)}),[S]);(0,n.useImperativeHandle)(t,(()=>({feedbackSubmitDone:()=>{ie(!0),setTimeout((()=>{se(!1)}),3e3)},feedbackSubmitFailed:()=>{$(!1)},feedbackOnViewDone:e=>{re((t=>{const a=new Set(t);return a.add(e),a}))}})),[]);const[de,me]=(0,n.useState)(null),[pe,ue]=(0,n.useState)(null),[fe,he]=(0,n.useState)(!1),ge=(0,n.useRef)(!1),be=!!F;(0,n.useEffect)((()=>{if(be){const e=setTimeout((()=>{ge.current=!0}),1e3);return()=>{clearTimeout(e)}}}),[be]),(0,n.useEffect)((()=>{ge.current&&X&&!fe&&ue(X)}),[X,fe]),(0,n.useEffect)((()=>{(0,l.getRuntime)().applyPageTitle(q)}),[q]);const ve=(0,n.useCallback)(((e,t,a)=>{var n;null===(n=O.current)||void 0===n||n.call(O,e,t,a)}),[O]),xe=M[0],ke=(0,n.useMemo)((()=>{if("user"===(null==xe?void 0:xe.role))return xe.content}),[xe]),ye=o,Ae=(0,n.useMemo)((()=>({conversationId:o,conversationState:U,tasks:R,errors:z,workspace:ye,previewUrlTemplate:k,replay:u,showCases:w,exampleProjects:y,humanInput:ve,onShare:I,onTerminate:T,supports:h,activeExpandedViewJobId:de,setActiveExpandedViewJobId:me,activeDetail:pe,setActiveDetail:ue,submittingFeedback:Z,submittedFeedback:ee,onSubmitFeedback:ce,setShowFeedback:se,showFeedbackOnView:x,onFeedbackOnView:j,feedbackDoneViews:oe,skipToResults:W,watchAgain:L,tryItOut(){const e=window.open(`${(0,l.getBasePath)().slice(0,-1)}${null!=A?A:"/elevo"}`,"_blank");e&&(e.__elevo_try_it_out={content:ke})}})),[o,U,R,z,ye,k,u,w,y,ve,I,T,h,de,pe,Z,ee,ce,x,j,oe,W,L,ke,A]),_e=(0,n.useMemo)((()=>({lastDetail:X,setUserClosedAside:he})),[X]),Fe=(0,n.useRef)(!1),Ve=(0,n.useRef)(!1),Re=(0,n.useRef)(null),[De,ze]=(0,n.useState)(!1);(0,n.useEffect)((()=>{const e=Re.current,t=null==e?void 0:e.firstElementChild;if(Ve.current||!e||!t)return;const a=()=>{ze(e.scrollTop+e.clientHeight+24<e.scrollHeight),Fe.current&&(Ve.current=e.scrollTop+e.clientHeight+6<e.scrollHeight)};let n;e.addEventListener("scroll",a);const i=new s.A((()=>{Ve.current||(Fe.current=!1,e.scrollTo({top:t.scrollHeight,behavior:"instant"}),clearTimeout(n),n=setTimeout((()=>{Fe.current=!0}),100))}));return i.observe(t),()=>{i.disconnect(),e.removeEventListener("scroll",a)}}),[be]);const Oe=(0,n.useCallback)((()=>{const e=Re.current;null==e||e.scrollTo({top:null==e?void 0:e.scrollHeight,behavior:"instant"})}),[]),We=(0,Ce.U)(pe,B,J,G);return i().createElement(H.j.Provider,{value:Ae},i().createElement(Y.Provider,{value:_e},i().createElement("div",{className:Ie.container},i().createElement("div",{className:Ie.header},i().createElement("div",{className:Ie.left}),i().createElement("h1",null,q),i().createElement("div",{className:Ie.right},E&&i().createElement(p.Py,{className:Ie["navbar-switch-ui"],icon:V.Rq,variant:"mini",title:(0,Q.t)(Q.K.SWITCH_TO_CANVAS),onClick:N}),i().createElement(p.Py,{icon:je,variant:"mini",onClick:I}))),be?i().createElement(i().Fragment,null,i().createElement("div",{className:Ie.main,ref:Re},i().createElement("div",{className:Ie.narrow},M.map(((e,t,a)=>i().createElement("div",{className:Ie.message,key:t},"user"===e.role?i().createElement(C,{content:e.content,cmd:e.cmd}):i().createElement(te,{chunks:e.chunks,isLatest:t===a.length-1})))),u?(null==F?void 0:F.finished)&&i().createElement(Se.A,{finished:!0,ui:"chat"}):le&&("completed"===U||"failed"===U&&v)&&i().createElement(we.k,{className:Ie.feedback}))),i().createElement("div",{className:Ie["scroll-down"],hidden:!De,onClick:Oe},i().createElement(p.Bj,{lib:"antd",icon:"down"})),(u?null==F||!F.finished:null==h?void 0:h.chat)?i().createElement("div",{className:Ie.footer},i().createElement("div",{className:Ie.narrow},u?i().createElement(Se.A,null):i().createElement(ae.s,{state:U,canChat:P}))):null):i().createElement("div",{className:Ie["loading-icon"]},i().createElement(p.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}))),i().createElement("div",{className:r()(Ie.aside,{[Ie.expanded]:!!We})},We&&i().createElement(Ee,{detail:We})),de&&i().createElement(ne.f,{views:K}),E&&i().createElement("div",{className:r()(Te.A.toolbar,Ie.toolbar)},i().createElement(p.Py,{icon:V.Rq,variant:"mini",title:(0,Q.t)(Q.K.SWITCH_TO_CANVAS),onClick:N}))))}},65438:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),l=a(40935),s=a.n(l)()(i());s.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)}",""]),s.locals={view:"view--O8CNDdS_",large:"large--jT3IWlRf"};const o=s},76239:(e,t,a)=>{a.d(t,{A:()=>p});var n=a(36758),i=a.n(n),l=a(40935),s=a.n(l),o=a(20062),r=a.n(o),c=new URL(a(32360),a.b),d=s()(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}.expanded--xZgk3uBF{width:50%}.feedback--YbYylTcK{margin:24px auto 0}.scroll-down--uNre4ZYi{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--uNre4ZYi:hover{box-shadow:0px 6px 12px 0px rgba(0,0,0,0.1)}.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","scroll-down":"scroll-down--uNre4ZYi",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),l=a(40935),s=a.n(l)()(i());s.push([e.id,".aside--DDIdDtkt{padding:12px 12px 12px 0;height:100%}.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}",""]),s.locals={aside:"aside--DDIdDtkt",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=s},83685:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(36758),i=a.n(n),l=a(40935),s=a.n(l)()(i());s.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}.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}.message--Okzj6NDx + .message--Okzj6NDx{margin-top:40px}",""]),s.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",message:"message--Okzj6NDx"};const o=s}}]);
|
|
2
|
-
//# sourceMappingURL=9324.e514b672.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/9324.e514b672.js","mappings":"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","sources":["webpack:///./src/shared/getFlowOrActivityIcon.ts","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/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/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/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/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"],"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","// 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{position:absolute;content:\" \";animation:texting--Rpmsbpca 2s infinite;white-space:pre}.avatar--jaJhEiSV{font-size:32px}@keyframes texting--Rpmsbpca{0%{content:\" \"}25%{content:\". \"}50%{content:\".. \"}75%{content:\"...\"}100%{content:\" \"}}`, \"\"]);\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 START_SERVICE_FLOW = \"START_SERVICE_FLOW\",\n START_SERVICE_FLOW_ACTIVITY = \"START_SERVICE_FLOW_ACTIVITY\",\n SERVICE_FLOW = \"SERVICE_FLOW\",\n SERVICE_FLOW_ACTIVITY = \"SERVICE_FLOW_ACTIVITY\",\n}\n\nconst en: Locale = {\n SWITCH_TO_CANVAS: \"Switch to canvas\",\n START_SERVICE_FLOW: \"Start service flow: {{ name }}\",\n START_SERVICE_FLOW_ACTIVITY: \"Start service flow activity: {{ name }}\",\n SERVICE_FLOW: \"Service flow: {{ name }}\",\n SERVICE_FLOW_ACTIVITY: \"Service flow activity: {{ name }}\",\n};\n\nconst zh: Locale = {\n SWITCH_TO_CANVAS: \"切换为画布\",\n START_SERVICE_FLOW: \"开始业务流:{{ name }}\",\n START_SERVICE_FLOW_ACTIVITY: \"开始业务流活动:{{ name }}\",\n SERVICE_FLOW: \"业务流:{{ name }}\",\n SERVICE_FLOW_ACTIVITY: \"业务流活动:{{ 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}`, \"\"]);\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","import { useMemo } from \"react\";\nimport type { ChatMessage, MessageFromAssistant } from \"./interfaces.js\";\nimport type {\n ActiveDetail,\n ActivityWithFlow,\n ConversationError,\n Job,\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 }\n) {\n const showHumanActions = options?.showHumanActions;\n\n return useMemo(() => {\n if (!conversationAvailable) {\n return {\n messages: [],\n lastDetail: null,\n };\n }\n\n const chunks = getFlatChunks(tasks, errors, flowMap, activityMap, true);\n const jobMap = new Map<string, Job>();\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 jobMap.set(job.id, 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 shouldAppendMessage = messages.length > 0;\n if (\n shouldAppendMessage &&\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 shouldAppendMessage = false;\n }\n }\n\n if (shouldAppendMessage) {\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 ]);\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}\n\nexport function NodeJob({ job }: 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 } = 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 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}\n\nexport function NodeChunk({ chunk }: NodeChunkProps) {\n if (chunk.type === \"job\") {\n return <NodeJob job={chunk.job} />;\n }\n\n if (chunk.type === \"error\") {\n return <div className={styles.error}>{chunk.error}</div>;\n }\n\n return <NodeTask chunk={chunk} />;\n}\n\ninterface NodeTaskProps {\n chunk: MessageChunkOfFlow | MessageChunkOfActivity;\n}\n\nfunction NodeTask({ chunk }: NodeTaskProps) {\n const { conversationState, setActiveDetail } = 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.START_SERVICE_FLOW, { name: chunk.flow.name })\n : t(K.START_SERVICE_FLOW_ACTIVITY, { name: chunk.activity.name })}\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 setActiveDetail((prev) => (isEqual(prev, detail) ? prev : detail));\n if (isEqual(detail, lastDetail)) {\n setUserClosedAside(false);\n }\n }}\n >\n <WrappedIcon lib=\"lucide\" icon=\"route\" />\n {type === \"flow\"\n ? t(K.SERVICE_FLOW, { name: chunk.flow.name })\n : t(K.SERVICE_FLOW_ACTIVITY, { name: chunk.activity.name })}\n </div>\n </div>\n </div>\n );\n}\n","import React, { useContext, 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 { Job } 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 { TaskContext } from \"../../shared/TaskContext\";\n\nexport interface AssistantMessageProps {\n chunks: MessageChunk[];\n isLatest?: boolean;\n}\n\nexport function AssistantMessage({ chunks, isLatest }: AssistantMessageProps) {\n const { conversationState } = useContext(TaskContext);\n\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.findLast(\n (job) => job.state === \"working\"\n );\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(conversationState!)) {\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, conversationState]);\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} />\n ))}\n {working && <div className={styles.texting}></div>}\n {isLatest &&\n lastJob &&\n !lastJob.humanAction &&\n lastJob.requestHumanAction &&\n !GENERAL_DONE_STATES.includes(conversationState) &&\n (lastJob.state === \"working\" ||\n lastJob.state === \"input-required\") && (\n <RequestHumanAction action={lastJob.requestHumanAction} ui=\"chat\" />\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 React, { useContext, useMemo } 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\";\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 return (\n <>\n <div className={styles[\"activity-title\"]}>\n <WrappedIcon {...icon} className={className} />\n {activity.name}\n </div>\n <div className={styles.chat}>\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 isLatest={index === list.length - 1}\n />\n )}\n </div>\n ))}\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}\n\nexport function Aside({ detail }: AsideProps) {\n const { setActiveDetail } = 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 className={styles.aside}>\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 setActiveDetail(null);\n setUserClosedAside(true);\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 ResizeObserver from \"resize-observer-polyfill\";\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\";\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 }\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 [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\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\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 detectScrolledUpRef = useRef(false);\n const manualScrolledRef = useRef(false);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [scrollable, setScrollable] = useState(false);\n\n useEffect(() => {\n const scrollContainer = scrollContainerRef.current;\n const contentContainer = scrollContainer?.firstElementChild;\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 }, [conversationAvailable]);\n\n const scrollToBottom = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n scrollContainer?.scrollTo({\n top: scrollContainer?.scrollHeight,\n behavior: \"instant\",\n });\n }, []);\n\n const fulfilledActiveDetail = useFulfilledActiveDetail(\n activeDetail,\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}>\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 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={styles[\"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 && <Aside detail={fulfilledActiveDetail} />}\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, `.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}.expanded--xZgk3uBF{width:50%}.feedback--YbYylTcK{margin:24px auto 0}.scroll-down--uNre4ZYi{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--uNre4ZYi:hover{box-shadow:0px 6px 12px 0px rgba(0,0,0,0.1)}.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\"scroll-down\": `scroll-down--uNre4ZYi`,\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%}.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\"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}.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}.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\"message\": `message--Okzj6NDx`\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["getFlowOrActivityIcon","state","lib","theme","icon","spinning","___CSS_LOADER_EXPORT___","push","module","id","locals","K","NS","locales","en","SWITCH_TO_CANVAS","START_SERVICE_FLOW","START_SERVICE_FLOW_ACTIVITY","SERVICE_FLOW","SERVICE_FLOW_ACTIVITY","zh","t","i18n","getFixedT","useConversationStream","conversationAvailable","tasks","errors","flowMap","activityMap","options","showHumanActions","useMemo","messages","lastDetail","chunks","getFlatChunks","jobMap","Map","prevAssistantMessage","role","chunk","type","_job$messages","job","set","toolCall","length","every","msg","content","flatMap","parts","map","part","text","join","cmd","fromSkippedSubTask","humanAction","task","shouldAppendMessage","lastMessage","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","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","toolTitle","annotations","title","name","toolName","showToolCall","setActiveDetail","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","flow","activity","AssistantMessage","isLatest","lastJob","lastChunk","jobs","findLast","NON_WORKING_STATES","includes","some","assistant","category","avatar","texting","requestHumanAction","GENERAL_DONE_STATES","RequestHumanAction","action","ui","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","list","EXECUTING","SUCCEEDED","FAILED","PAUSED","paused","TERMINATED","WAITING","initializeI18n","ICON_SHRINK","Aside","_detail$job$messages","aside","WrappedIconButton","variant","ToolCallStatus","EditorApp","source","code","language","JSON","stringify","editor","scroller","WrappedCodeBlock","themeVariant","ICON_SHARE","ChatStreamComponent","ref","_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","useEffect","projectId","views","values","submittingFeedback","setSubmittingFeedback","submittedFeedback","setSubmittedFeedback","setShowFeedback","feedbackDoneViews","setFeedbackDoneViews","handleSubmitFeedback","useImperativeHandle","feedbackSubmitDone","setTimeout","feedbackSubmitFailed","feedbackOnViewDone","viewId","newSet","Set","add","activeExpandedViewJobId","setActiveExpandedViewJobId","activeDetail","userClosedAside","delayRef","useRef","timer","current","clearTimeout","getRuntime","applyPageTitle","humanInput","jobId","input","_humanInputRef$curren","call","requirementMessage","userInput","workspace","taskContextValue","tryItOut","win","window","open","getBasePath","slice","__elevo_try_it_out","streamContextValue","detectScrolledUpRef","manualScrolledRef","scrollContainerRef","scrollable","setScrollable","scrollContainer","contentContainer","firstElementChild","handleScroll","scrollTop","clientHeight","scrollHeight","addEventListener","observer","ResizeObserver","scrollTo","top","behavior","observe","disconnect","removeEventListener","scrollToBottom","fulfilledActiveDetail","useFulfilledActiveDetail","Provider","container","left","right","ICON_CANVAS","narrow","finished","NodeReplay","NodeFeedback","feedback","hidden","footer","ChatBox","expanded","ExpandedView","toolbarStyles","toolbar","___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:()=>o});var a=n(11369);function o(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 o=n.p+"images/62542537.png",s=n.p+"images/94d7a053.png",l=n.p+"images/0e7e6764.png",r=n.p+"images/7944ebaf.png",i=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"],["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),o=+t;return`${o>100?Math.round(o):o} ${n}`}function p(e,t){const n=e||m(t);if(n.startsWith("image/"))return["Image",c];switch(n){case"text/markdown":return["Markdown",o];case"application/pdf":return["PDF",s];case"application/msword":case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return["Word",l];case"application/vnd.ms-excel":case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return["Excel",i];case"application/vnd.ms-powerpoint":case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return["PowerPoint",r]}return n.startsWith("text/")?["Text",o]:["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:()=>l,setChatCommand:()=>s});var a=n(77019);let o=null;function s(e){o=e}function l(){return o}customElements.define("ai-portal.set-chat-command",(0,a.createProviderClass)(s))},94669:(e,t,n)=>{n.r(t),n.d(t,{ChatBox:()=>ue,ChatBoxComponent:()=>ce});var a,o=n(74635),s=n(70918),l=n(24586),r=n(26902),i=n(5536),c=n(86121),u=n(70829),d=n(62740),p=n(18769),m=n.n(p),h=n(59435),f=n(90870),g=n(30981),v=n(22919),y=n(30348),b=n(78404),w=n(86572),k=n(92879),A=(n(34419),n(52616)),E=n(16195),x=n(47008),C=n(93757),M=n(7450),S=n(89750),_=n(17753);let I,P,W,R,$,N,T,B,L,F,O,j,D,V,U,z,K,H,q,Y,G,Q,J,X,Z,ee,te,ne,ae,oe;(0,A.initializeI18n)(E.NS,E.I);const{defineElement:se,property:le,event:re,method:ie}=(0,f.createDecorators)(),ce=(0,p.forwardRef)(Se);let ue;var de=new WeakMap,pe=new WeakMap,me=new WeakMap,he=new WeakMap,fe=new WeakMap,ge=new WeakMap,ve=new WeakMap,ye=new WeakSet,be=new WeakMap,we=new WeakMap,ke=new WeakMap,Ae=new WeakMap,Ee=new WeakMap,xe=new WeakMap,Ce=new WeakMap;class Me extends g.ReactNextElement{constructor(){super(...arguments),(0,o.A)(this,ye),(0,l.A)(this,"ref",(I(this),(0,p.createRef)())),(0,s.A)(this,de,W(this)),(0,s.A)(this,pe,(R(this),$(this))),(0,s.A)(this,me,(N(this),T(this))),(0,s.A)(this,he,(B(this),L(this))),(0,s.A)(this,fe,(F(this),O(this))),(0,s.A)(this,ge,(j(this),D(this))),(0,s.A)(this,ve,(V(this),U(this))),(0,s.A)(this,be,(H(this),e=>{(0,i.A)(ye,this,z).emit(e)})),(0,s.A)(this,we,q(this)),(0,s.A)(this,ke,(Q(this),e=>{(0,i.A)(ye,this,Y).emit(e)})),(0,s.A)(this,Ae,J(this)),(0,s.A)(this,Ee,(ee(this),e=>{(0,i.A)(ye,this,X).emit(e)})),(0,s.A)(this,xe,te(this)),(0,s.A)(this,Ce,(oe(this),e=>{(0,i.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 uploadBucket(){return(0,u.A)(ge,this)}set uploadBucket(e){(0,c.A)(ge,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,uploadBucket:this.uploadBucket,onSubmit:(0,u.A)(be,this),onEmployeeMention:(0,u.A)(ke,this),onCommandSelect:(0,u.A)(Ee,this),onFilesChange:(0,u.A)(Ce,this),ref:this.ref})}}function Se(e,t){let{disabled:n,placeholder:a,autoFocus:o,aiEmployees:s,commands:l,uploadBucket:r,onSubmit:i,onEmployeeMention:c,onCommandSelect:u,onFilesChange:d}=e;const f=(0,p.useRef)(null),g=(0,p.useRef)(null),[A,x]=(0,p.useState)(""),I=(0,p.useRef)(""),[P,W]=(0,p.useState)(null),[R,$]=(0,p.useState)(""),[N,T]=(0,p.useState)(0),[B,L]=(0,p.useState)([0]),[F,O]=(0,p.useState)(null),[j,D]=(0,p.useState)(null),[V,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 v.http.request(`api/gateway/object_store.object_store.PutObject/api/v1/objectStore/bucket/${r}/object`,{method:"PUT",body:n,signal:t.signal});H((t=>null==t?void 0:t.map((t=>t.uid===e.uid?{...t,status:"done",uploadedName:a.data.objectName}: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,r]);const[Y,G]=(0,p.useState)(!0),Q=(0,p.useRef)(!0);(0,p.useEffect)((()=>{const e=!K||K.every((e=>"done"===e.status));G(e),Q.current?Q.current=!1:e&&d(null==K?void 0:K.map((e=>e.uploadedName)))}),[K,d]),(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)&&(I.current=e.content,x(e.content))}),[]),(0,p.useImperativeHandle)(t,(()=>({setValue:e=>{I.current=e,x(e)},getValue:()=>I.current,focusOnInput:()=>{var e;null===(e=g.current)||void 0===e||e.focus()}})));const J=(0,p.useCallback)((e=>{var t;i(e.slice(null!==(t=null==V?void 0:V.length)&&void 0!==t?t:0))}),[null==V?void 0:V.length,i]),X=(0,p.useCallback)((e=>{e.currentTarget.value&&Y&&J(e.currentTarget.value)}),[J,Y]),Z=(0,p.useCallback)((e=>{const{value:t,selectionStart:n,selectionEnd:a}=e.target;if(I.current=t,x(t),!R&&null!==n&&n===a&&null!=s&&s.length){const a=t.slice(0,n),o=a.lastIndexOf("@");if(o>=0){const t=a.slice(o+1).toLowerCase(),l=s.filter((e=>e.employeeId.toLowerCase().includes(t)||e.name.toLowerCase().includes(t))).slice(0,10);if(l.length>0){const t=(0,b.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return W({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:o,end:n},actions:l.map((e=>({key:e.employeeId,text:e.name,data:e})))}),void T(0)}}}if(W(null),null!==n&&n===a&&null!=l&&l.length){const a=t.slice(0,n);if(a.startsWith("/")){const t=a.slice(1).toLowerCase(),o=l.filter((e=>e.label.toLowerCase().includes(t))).slice(0,10);if(o.length>0){const t=(0,b.U)(e.currentTarget,n),a=e.currentTarget.getBoundingClientRect();return O({style:{left:t.left+10+a.left,top:t.top+22+a.top,position:"absolute",zIndex:1},range:{start:0,end:n},actions:o.map((e=>({key:e.value,text:e.label,data:e,ancestors:[],items:_e(e,[]),payload:e.payload})))}),void L([0])}}}O(null)}),[s,l,R]);(0,p.useEffect)((()=>{R&&!A.includes(R)&&($(""),c(null))}),[R,c,A]),(0,p.useEffect)((()=>{V&&!A.includes(V)&&(U(""),u(null))}),[V,u,A]);const ee=(0,p.useCallback)((()=>{J(I.current)}),[J]);(0,p.useEffect)((()=>{o&&Promise.resolve().then((()=>{var e;null===(e=g.current)||void 0===e||e.focus()}))}),[]);const te=(0,p.useMemo)((()=>{var e;const t=null===(e=g.current)||void 0===e?void 0:e.element;if(!R||!t)return"";const n=A.indexOf(R);return n<0?"":A.slice(0,n)}),[R,A]),ne=(0,p.useMemo)((()=>{var e;const t=null===(e=g.current)||void 0===e?void 0:e.element;return R&&t?(0,w.I)(t,te,R.slice(0,-1)).map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))):null}),[R,te]);(0,p.useEffect)((()=>{var e;const t=null===(e=g.current)||void 0===e?void 0:e.element;if(!V||!t)return void D(null);const n=(0,w.I)(t,"",V.slice(0,-1));D(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4}))))}),[V]);const ae=(0,p.useMemo)((()=>{const e=(0,C.getChatCommand)();return e&&(0,C.setChatCommand)(null),e}),[]);(0,p.useEffect)((()=>{ae&&u(ae.payload)}),[ae,u]),(0,p.useEffect)((()=>{var e;const t=null===(e=g.current)||void 0===e?void 0:e.element;if(ae&&t){const e=`/${ae.command} `,n=(0,w.I)(t,"",e.slice(0,-1));D(n.map((e=>({left:e.left-1,top:e.top-1,width:e.width+4,height:e.height+4})))),I.current=e,z.current={start:e.length,end:e.length},x(e),U(e)}}),[ae]);const oe=(0,p.useCallback)((e=>{var t;const n=`@${e.text} `,a=`${I.current.slice(0,P.range.start)}${n}`,o=`${a}${I.current.slice(P.range.end)}`;I.current=o,z.current={start:a.length,end:a.length},x(o),$(n),W(null),c(e.data),null===(t=g.current)||void 0===t||t.focus()}),[P,c]),se=(0,p.useCallback)((e=>{var t;const n=`/${[...e.ancestors.map((e=>e.label)),e.text].join(": ")} `,a=`${I.current.slice(0,F.range.start)}${n}`,o=`${a}${I.current.slice(F.range.end)}`;I.current=o,z.current={start:a.length,end:a.length},x(o),U(n),O(null),u(e.payload),null===(t=g.current)||void 0===t||t.focus()}),[F,u]),le=(0,p.useCallback)((e=>{switch(e.key){case"Escape":if(!P&&!F)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),W(null),O(null),!1;case"ArrowUp":case"ArrowDown":if(!P&&!F)return;return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),P?T((t=>{const n=t+("ArrowUp"===e.key?-1:1),a=P.actions.length;return(a+n)%a})):L((t=>{let n=0,{actions:a}=F;const o=[];for(;n<t.length-1;){const e=a[t[n]];if(!Ie(e))break;a=e.items,o.push(t[n]),n+=1}const s=t[n]+("ArrowUp"===e.key?-1:1),l=a.length,r=(l+s)%l;return o.push(r),o})),!1;case"Enter":case"ArrowLeft":case"ArrowRight":if(P){if("Enter"===e.key)return e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),oe(P.actions[N]),!1}else if(F){if(e.preventDefault(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),"ArrowLeft"===e.key)return B.length>1&&L((e=>e.slice(0,-1))),!1;let t,n=0,{actions:a}=F;for(;n<B.length&&(t=a[B[n]],Ie(t));)a=t.items,n+=1;return t&&(Ie(t)?L((e=>[...e,0])):"Enter"===e.key&&se(t)),!1}break;case"Delete":case"Backspace":{const t=[{textLength:null==R?void 0:R.length,prefixLength:te.length},{textLength:null==V?void 0:V.length,prefixLength:0}];for(const{textLength:n,prefixLength:a}of t)if(n){let{selectionStart:t,selectionEnd:o}=e.currentTarget;t===o&&("Backspace"===e.key?t-=1:o+=1);const s=a,l=s+n;if(t<l&&o>s){const n=Math.min(t,s),a=Math.max(o,l),r=`${I.current.slice(0,n)}${I.current.slice(a)}`;return I.current=r,z.current={start:n,end:n},x(r),e.preventDefault(),e.stopPropagation(),!1}}break}}}),[N,B,F,null==V?void 0:V.length,oe,se,P,te.length,null==R?void 0:R.length]),re=(0,p.useMemo)((()=>{if(!F)return[];let e=F.actions;const t=[];for(let n=0;n<B.length;n+=1){const a=e[B[n]];if(!a)break;if(!Ie(a)){t.push(a.key);break}t.push(a.key),e=a.items}return t}),[B,F]),ie=(0,p.useRef)(null);return m().createElement("div",{className:"root"},m().createElement("div",{className:"container",ref:f},m().createElement(k.e,{containerRef:f,ref:g,value:A,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:X,onChange:Z,onKeyDown:le,style:{paddingTop:q?94:10}}),q&&m().createElement(S.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=ie.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"},r?m().createElement(m().Fragment,null,m().createElement(M.s,{ref:ie,onChange:e=>H((t=>[...null!=t?t:[],...null!=e?e:[]]))}),m().createElement("div",{className:"btn-divider"})):null,m().createElement("button",{className:"btn-send",disabled:!A||!Y,onClick:ee},m().createElement(_.Bj,{lib:"fa",prefix:"fas",icon:"arrow-up"})))),null==ne?void 0:ne.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),null==j?void 0:j.map(((e,t)=>m().createElement("div",{key:t,className:"mention-overlay",style:e}))),P&&(0,h.createPortal)(m().createElement(_.Tl,{actions:P.actions,style:P.style,activeKeys:[P.actions[N].key],onActionClick:e=>oe(e.detail)}),document.body),F&&(0,h.createPortal)(m().createElement(_.Tl,{actions:F.actions,style:F.style,activeKeys:re,onActionClick:e=>se(e.detail)}),document.body)))}function _e(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:_e(n,a),payload:n.payload}}))}function Ie(e){var t;return!(null===(t=e.items)||void 0===t||!t.length)}a=Me,({e:[W,R,$,N,T,B,L,F,O,j,D,V,U,z,K,H,q,Y,G,Q,J,X,Z,ee,te,ne,ae,oe,I],c:[ue,P]}=(0,d.A)(a,[se("ai-portal.chat-box",{styleTexts:[x.A],shadowOptions:{delegatesFocus:!0}})],[[le({type:Boolean}),1,"disabled"],[le(),1,"placeholder"],[le({type:Boolean}),1,"autoFocus"],[le({attribute:!1}),1,"aiEmployees"],[le({attribute:!1}),1,"commands"],[le(),1,"uploadBucket"],[re({type:"message.submit"}),1,"messageSubmit",e=>(0,u.A)(ve,e),(e,t)=>(0,c.A)(ve,e,t)],[re({type:"ai-employee.mention"}),1,"employeeMention",e=>(0,u.A)(we,e),(e,t)=>(0,c.A)(we,e,t)],[re({type:"command.select"}),1,"commandSelect",e=>(0,u.A)(Ae,e),(e,t)=>(0,c.A)(Ae,e,t)],[re({type:"files.change"}),1,"filesChange",e=>(0,u.A)(xe,e),(e,t)=>(0,c.A)(xe,e,t)],[ie(),2,"setValue"],[ie(),2,"getValue"],[ie(),2,"focusOnInput"]],0,(e=>Ce.has((0,r.A)(e))),g.ReactNextElement)),P()}}]);
|
|
2
|
-
//# sourceMappingURL=chat-box.8e064684.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/chat-box.8e064684.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 [\"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 } 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 uploadBucket?: string;\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\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()\n accessor uploadBucket: string | undefined;\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: \"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 @event({ type: \"files.change\" })\n accessor #filesChange!: EventEmitter<string[] | null | undefined>;\n\n #handleFilesChange = (files: string[] | null | undefined) => {\n this.#filesChange.emit(files);\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 uploadBucket={this.uploadBucket}\n onSubmit={this.#handleMessageSubmit}\n onEmployeeMention={this.#handleEmployeeMention}\n onCommandSelect={this.#handleCommandSelect}\n onFilesChange={this.#handleFilesChange}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n onSubmit: (value: string) => void;\n onEmployeeMention: (employee: AIEmployee | null) => void;\n onCommandSelect: (command: CommandPayload | null) => void;\n onFilesChange: (files: string[] | null | undefined) => 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 uploadBucket,\n onSubmit,\n onEmployeeMention,\n onCommandSelect,\n onFilesChange,\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: { objectName: string } }>(\n `api/gateway/object_store.object_store.PutObject/api/v1/objectStore/bucket/${uploadBucket}/object`,\n {\n method: \"PUT\",\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 uploadedName: response.data.objectName,\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, uploadBucket]);\n\n const [allFilesDone, setAllFilesDone] = useState(true);\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 onFilesChange(files?.map((file) => file.uploadedName!));\n }\n }, [files, onFilesChange]);\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 submitWithoutCommand = useCallback(\n (value: string) => {\n onSubmit(value.slice(commandText?.length ?? 0));\n },\n [commandText?.length, onSubmit]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value && allFilesDone) {\n submitWithoutCommand(e.currentTarget.value);\n }\n },\n [submitWithoutCommand, 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 submitWithoutCommand(valueRef.current);\n }, [submitWithoutCommand]);\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 {uploadBucket ? (\n <>\n <UploadButton\n ref={uploadButtonRef}\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","_handleEmployeeMention","_I","_handleCommandSelect","_J","_handleFilesChange","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_uploadBucket","_init_extra_uploadBucket","_init_messageSubmit","_init_extra_messageSubmit","_classPrivateGetter","_get_messageSubmit","emit","_init_employeeMention","_init_extra_employeeMention","employee","_get_employeeMention","_init_commandSelect","_init_extra_commandSelect","_get_commandSelect","_init_filesChange","_init_extra_filesChange","files","_get_filesChange","disabled","_classPrivateFieldGet","v","_classPrivateFieldSet","placeholder","autoFocus","aiEmployees","commands","uploadBucket","setValue","_this$ref$current","ref","current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","render","React","onSubmit","onEmployeeMention","onCommandSelect","onFilesChange","_ref","containerRef","useRef","textareaRef","useState","valueRef","mentionPopover","setMentionPopover","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","activeActionIndexes","setActiveActionIndexes","commandPopover","setCommandPopover","commandOverlay","setCommandOverlay","commandText","setCommandText","selectionRef","setFiles","hasFiles","useEffect","forEach","async","fileItem","status","abortController","AbortController","prevFiles","map","item","uid","formData","FormData","append","file","response","http","request","body","signal","uploadedName","data","objectName","error","handleHttpError","allFilesDone","setAllFilesDone","initialRef","every","store","window","__elevo_try_it_out","content","useImperativeHandle","_textareaRef$current","focus","submitWithoutCommand","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","payload","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","onChange","onKeyDown","paddingTop","FileListComponent","onRemove","abort","onAdd","_uploadButtonRef$curr","requestUpload","UploadButton","onClick","WrappedIcon","lib","icon","overlay","createPortal","WrappedActions","activeKeys","onActionClick","detail","document","_command$options","subCommand","nextAncestors","_items","_ChatBox2","_set_messageSubmit","_set_employeeMention","_set_commandSelect","_set_filesChange","c","_initClass","_applyDecs","styleTexts","styleText","shadowOptions","delegatesFocus","Boolean","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|