@next-bricks/ai-portal 0.28.3 → 0.28.5
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 +5 -5
- package/dist/chunks/1138.6a52e235.js +2 -0
- package/dist/chunks/1138.6a52e235.js.map +1 -0
- package/dist/chunks/4820.d2d81591.js +2 -0
- package/dist/chunks/4820.d2d81591.js.map +1 -0
- package/dist/chunks/7314.b506f276.js +3 -0
- package/dist/chunks/{8928.c3da7b15.js.LICENSE.txt → 7314.b506f276.js.LICENSE.txt} +2 -0
- package/dist/chunks/7314.b506f276.js.map +1 -0
- package/dist/chunks/981.b69af31a.js +2 -0
- package/dist/chunks/981.b69af31a.js.map +1 -0
- package/dist/chunks/elevo-sidebar.644cb6fa.js +3 -0
- package/dist/chunks/{elevo-sidebar.f02fd532.js.LICENSE.txt → elevo-sidebar.644cb6fa.js.LICENSE.txt} +0 -2
- package/dist/chunks/elevo-sidebar.644cb6fa.js.map +1 -0
- package/dist/chunks/main.63045414.js +2 -0
- package/dist/chunks/main.63045414.js.map +1 -0
- package/dist/examples.json +3 -3
- package/dist/index.4dc3c04b.js +2 -0
- package/dist/index.4dc3c04b.js.map +1 -0
- package/dist/manifest.json +49 -39
- package/dist/types.json +214 -94
- package/dist-types/cruise-canvas/useLayout.d.ts +3 -3
- package/dist-types/cruise-canvas/utils/converters/convertView.d.ts +2 -5
- package/dist-types/elevo-sidebar/ChatHistory.d.ts +4 -3
- package/dist-types/elevo-sidebar/LegacyChatHistory.d.ts +24 -0
- package/dist-types/elevo-sidebar/index.d.ts +6 -0
- package/package.json +2 -2
- package/dist/chunks/4820.5a60f14a.js +0 -2
- package/dist/chunks/4820.5a60f14a.js.map +0 -1
- package/dist/chunks/8928.c3da7b15.js +0 -3
- package/dist/chunks/8928.c3da7b15.js.map +0 -1
- package/dist/chunks/981.6d4b40e0.js +0 -2
- package/dist/chunks/981.6d4b40e0.js.map +0 -1
- package/dist/chunks/elevo-sidebar.f02fd532.js +0 -3
- package/dist/chunks/elevo-sidebar.f02fd532.js.map +0 -1
- package/dist/chunks/main.c5fa4c02.js +0 -2
- package/dist/chunks/main.c5fa4c02.js.map +0 -1
- package/dist/index.948a4099.js +0 -2
- package/dist/index.948a4099.js.map +0 -1
package/dist/bricks.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"id": "bricks/ai-portal",
|
|
3
3
|
"bricks": [
|
|
4
4
|
"ai-portal.cruise-canvas",
|
|
5
|
+
"ai-portal.chat-box",
|
|
5
6
|
"ai-portal.home-container",
|
|
6
7
|
"ai-portal.chat-history",
|
|
7
|
-
"ai-portal.chat-box",
|
|
8
8
|
"ai-portal.stat-with-mini-chart",
|
|
9
9
|
"ai-portal.elevo-logo",
|
|
10
10
|
"ai-portal.elevo-sidebar",
|
|
@@ -34,14 +34,14 @@
|
|
|
34
34
|
"basic.copy-to-clipboard",
|
|
35
35
|
"eo-easyops-avatar"
|
|
36
36
|
],
|
|
37
|
+
"ai-portal.chat-box": [
|
|
38
|
+
"eo-icon"
|
|
39
|
+
],
|
|
37
40
|
"ai-portal.chat-history": [
|
|
38
41
|
"eo-icon",
|
|
39
42
|
"eo-link",
|
|
40
43
|
"eo-mini-actions"
|
|
41
44
|
],
|
|
42
|
-
"ai-portal.chat-box": [
|
|
43
|
-
"eo-icon"
|
|
44
|
-
],
|
|
45
45
|
"ai-portal.stat-with-mini-chart": [
|
|
46
46
|
"eo-mini-line-chart"
|
|
47
47
|
],
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"eo-icon"
|
|
79
79
|
]
|
|
80
80
|
},
|
|
81
|
-
"filePath": "bricks/ai-portal/dist/index.
|
|
81
|
+
"filePath": "bricks/ai-portal/dist/index.4dc3c04b.js"
|
|
82
82
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[1138],{24:(e,t,i)=>{i.d(t,{A:()=>l});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n)()(s());r.push([e.id,':host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size="small"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size="small"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size="small"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size="small"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size="small"])) .chart{width:calc(100% - 160px)}:host([size="small"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size="small"]) .label-and-stat{position:absolute;left:15px}:host([size="small"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size="small"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size="small"]) .chart{width:calc(100% - 90px)}',""]);const l=r.toString()},1355:(e,t,i)=>{var a,s=i(74635),n=i(70918),r=i(26902),l=i(5536),o=i(86121),c=i(70829),h=i(62740),d=i(18769),p=i.n(d),u=i(7921),m=i(11280),g=(i(65168),i(87117)),b=i(80079),A=i(51850),k=i(28548);let w,x,v,E,f,y,S,R,M,N,_,W,T,C,I,V,z,F,O,D,U,L,B,Y,P,H,j,J,q,G,K,$,Q,X,Z,ee,te,ie,ae,se,ne,re,le,oe,ce,he,de,pe,ue,me;(0,g.initializeI18n)(b.NS,b.I);const{defineElement:ge,property:be,event:Ae,method:ke}=(0,u.createDecorators)(),we=(0,d.forwardRef)(A.A),xe=(0,d.forwardRef)(k.B);let ve;var Ee=new WeakMap,fe=new WeakMap,ye=new WeakMap,Se=new WeakMap,Re=new WeakMap,Me=new WeakMap,Ne=new WeakMap,_e=new WeakMap,We=new WeakMap,Te=new WeakMap,Ce=new WeakMap,Ie=new WeakMap,Ve=new WeakMap,ze=new WeakMap,Fe=new WeakMap,Oe=new WeakSet,De=new WeakMap,Ue=new WeakMap,Le=new WeakMap,Be=new WeakMap,Ye=new WeakMap,Pe=new WeakMap,He=new WeakMap,je=new WeakMap,Je=new WeakMap,qe=new WeakMap;class Ge extends m.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Oe),(0,n.A)(this,Ee,(w(this),v(this))),(0,n.A)(this,fe,(E(this),f(this))),(0,n.A)(this,ye,(y(this),S(this))),(0,n.A)(this,Se,(R(this),M(this))),(0,n.A)(this,Re,(N(this),_(this))),(0,n.A)(this,Me,(W(this),T(this))),(0,n.A)(this,Ne,(C(this),I(this))),(0,n.A)(this,_e,(V(this),z(this))),(0,n.A)(this,We,(F(this),O(this))),(0,n.A)(this,Te,(D(this),U(this))),(0,n.A)(this,Ce,(L(this),B(this))),(0,n.A)(this,Ie,(Y(this),P(this))),(0,n.A)(this,Ve,(H(this),j(this))),(0,n.A)(this,ze,(J(this),q(this))),(0,n.A)(this,Fe,(G(this),K(this))),(0,n.A)(this,De,(X(this),()=>{(0,l.A)(Oe,this,$).emit()})),(0,n.A)(this,Ue,Z(this)),(0,n.A)(this,Le,(ie(this),()=>{(0,l.A)(Oe,this,ee).emit()})),(0,n.A)(this,Be,ae(this)),(0,n.A)(this,Ye,(re(this),e=>{(0,l.A)(Oe,this,se).emit(e)})),(0,n.A)(this,Pe,le(this)),(0,n.A)(this,He,(he(this),e=>{(0,l.A)(Oe,this,oe).emit(e)})),(0,n.A)(this,je,de(this)),(0,n.A)(this,Je,(me(this),()=>{(0,l.A)(Oe,this,pe).emit("chat")})),(0,n.A)(this,qe,(0,d.createRef)())}get conversationId(){return(0,c.A)(Ee,this)}set conversationId(e){(0,o.A)(Ee,this,e)}get initialRequest(){return(0,c.A)(fe,this)}set initialRequest(e){(0,o.A)(fe,this,e)}get taskId(){return(0,c.A)(ye,this)}set taskId(e){(0,o.A)(ye,this,e)}get task(){return(0,c.A)(Se,this)}set task(e){(0,o.A)(Se,this,e)}get jobs(){return(0,c.A)(Re,this)}set jobs(e){(0,o.A)(Re,this,e)}get replay(){return(0,c.A)(Me,this)}set replay(e){(0,o.A)(Me,this,e)}get replayDelay(){return(0,c.A)(Ne,this)}set replayDelay(e){(0,o.A)(Ne,this,e)}get supports(){return(0,c.A)(_e,this)}set supports(e){(0,o.A)(_e,this,e)}get showHiddenJobs(){return(0,c.A)(We,this)}set showHiddenJobs(e){(0,o.A)(We,this,e)}get showFeedback(){return(0,c.A)(Te,this)}set showFeedback(e){(0,o.A)(Te,this,e)}get showFeedbackOnView(){return(0,c.A)(Ce,this)}set showFeedbackOnView(e){(0,o.A)(Ce,this,e)}get showUiSwitch(){return(0,c.A)(Ie,this)}set showUiSwitch(e){(0,o.A)(Ie,this,e)}get hideMermaid(){return(0,c.A)(Ve,this)}set hideMermaid(e){(0,o.A)(Ve,this,e)}get showJsxEditor(){return(0,c.A)(ze,this)}set showJsxEditor(e){(0,o.A)(ze,this,e)}resumed(){var e,t;null===(e=(0,c.A)(qe,this).current)||void 0===e||null===(t=e.resumed)||void 0===t||t.call(e)}feedbackSubmitDone(){var e;null===(e=(0,c.A)(qe,this).current)||void 0===e||e.feedbackSubmitDone()}feedbackSubmitFailed(){var e;null===(e=(0,c.A)(qe,this).current)||void 0===e||e.feedbackSubmitFailed()}feedbackOnViewDone(e){var t;null===(t=(0,c.A)(qe,this).current)||void 0===t||t.feedbackOnViewDone(e)}render(){const e=this.conversationId?xe:we;return p().createElement(e,{conversationId:this.conversationId,initialRequest:this.initialRequest,taskId:this.taskId,jobs:this.jobs,task:this.task,replay:this.replay,replayDelay:this.replayDelay,supports:this.supports,showHiddenJobs:this.showHiddenJobs,showFeedback:this.showFeedback,showUiSwitch:this.showUiSwitch,showFeedbackOnView:this.showFeedbackOnView,showJsxEditor:this.showJsxEditor,onShare:(0,c.A)(De,this),onTerminate:(0,c.A)(Le,this),onSubmitFeedback:(0,c.A)(Ye,this),onSwitchToChat:(0,c.A)(Je,this),onFeedbackOnView:(0,c.A)(He,this),ref:(0,c.A)(qe,this)})}}a=Ge,({e:[v,E,f,y,S,R,M,N,_,W,T,C,I,V,z,F,O,D,U,L,B,Y,P,H,j,J,q,G,K,$,Q,X,Z,ee,te,ie,ae,se,ne,re,le,oe,ce,he,de,pe,ue,me,w],c:[ve,x]}=(0,h.A)(a,[ge("ai-portal.cruise-canvas",{shadowOptions:!1})],[[be(),1,"conversationId"],[be({attribute:!1,render:!1}),1,"initialRequest"],[be(),1,"taskId"],[be({attribute:!1}),1,"task"],[be({attribute:!1}),1,"jobs"],[be({type:Boolean,render:!1}),1,"replay"],[be({type:Number,render:!1}),1,"replayDelay"],[be({attribute:!1}),1,"supports"],[be({type:Boolean}),1,"showHiddenJobs"],[be({type:Boolean}),1,"showFeedback"],[be({type:Boolean}),1,"showFeedbackOnView"],[be({type:Boolean}),1,"showUiSwitch"],[be({type:Boolean,render:!1}),1,"hideMermaid"],[be({type:Boolean}),1,"showJsxEditor"],[Ae({type:"share"}),1,"shareEvent",e=>(0,c.A)(Fe,e),(e,t)=>(0,o.A)(Fe,e,t)],[Ae({type:"terminate"}),1,"terminateEvent",e=>(0,c.A)(Ue,e),(e,t)=>(0,o.A)(Ue,e,t)],[Ae({type:"feedback.submit"}),1,"feedbackSubmitEvent",e=>(0,c.A)(Be,e),(e,t)=>(0,o.A)(Be,e,t)],[Ae({type:"feedback.on.view"}),1,"feedbackOnViewEvent",e=>(0,c.A)(Pe,e),(e,t)=>(0,o.A)(Pe,e,t)],[Ae({type:"ui.switch"}),1,"switch",e=>(0,c.A)(je,e),(e,t)=>(0,o.A)(je,e,t)],[ke(),2,"resumed"],[ke(),2,"feedbackSubmitDone"],[ke(),2,"feedbackSubmitFailed"],[ke(),2,"feedbackOnViewDone"]],0,(e=>qe.has((0,r.A)(e))),m.ReactNextElement)),x();var Ke=i(71451),$e=i(41030);let Qe=function(e){return e.ASK_ANY_THING="ASK_ANYTHING",e.COMMON_TASKS="COMMON_TASKS",e}({});const Xe="bricks/ai-portal/chat-box",Ze={en:{[Qe.ASK_ANY_THING]:"Ask anything",[Qe.COMMON_TASKS]:"Common tasks"},zh:{[Qe.ASK_ANY_THING]:"询问任何问题",[Qe.COMMON_TASKS]:"常用任务"}},et=g.i18n.getFixedT(null,Xe),tt=i.p+"images/af389fa6.svg";var it,at=i(47008);let st,nt,rt,lt,ot,ct,ht,dt,pt,ut,mt,gt,bt,At,kt;(0,g.initializeI18n)(Xe,Ze);const wt=(0,m.wrapBrick)("eo-icon"),{defineElement:xt,property:vt,event:Et}=(0,u.createDecorators)();let ft;var yt=new WeakMap,St=new WeakMap,Rt=new WeakMap,Mt=new WeakMap,Nt=new WeakMap,_t=new WeakMap,Wt=new WeakSet,Tt=new WeakMap;class Ct extends m.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Wt),(0,n.A)(this,yt,nt(this)),(0,n.A)(this,St,(rt(this),lt(this))),(0,n.A)(this,Rt,(ot(this),ct(this))),(0,n.A)(this,Mt,(ht(this),dt(this))),(0,n.A)(this,Nt,(pt(this),ut(this))),(0,n.A)(this,_t,(mt(this),gt(this))),(0,n.A)(this,Tt,(kt(this),e=>{(0,l.A)(Wt,this,bt).emit(e)}))}get disabled(){return(0,c.A)(yt,this)}set disabled(e){(0,o.A)(yt,this,e)}get placeholder(){return(0,c.A)(St,this)}set placeholder(e){(0,o.A)(St,this,e)}get autoFocus(){return(0,c.A)(Rt,this)}set autoFocus(e){(0,o.A)(Rt,this,e)}get suggestions(){return(0,c.A)(Mt,this)}set suggestions(e){(0,o.A)(Mt,this,e)}get suggestionsLabel(){return(0,c.A)(Nt,this)}set suggestionsLabel(e){(0,o.A)(Nt,this,e)}render(){return p().createElement(It,{disabled:this.disabled,placeholder:this.placeholder,autoFocus:this.autoFocus,suggestions:this.suggestions,suggestionsLabel:this.suggestionsLabel,onSubmit:(0,c.A)(Tt,this)})}}function It(e){let{disabled:t,placeholder:i,autoFocus:a,suggestions:s,suggestionsLabel:n,onSubmit:r}=e;const l=(0,d.useRef)(null),o=(0,d.useRef)(null),[c,h]=(0,d.useState)(""),u=(0,d.useRef)(""),m=(0,d.useCallback)((e=>{e.currentTarget.value&&(null==r||r(e.currentTarget.value))}),[r]),g=(0,d.useCallback)((e=>{u.current=e.target.value,h(e.target.value)}),[]),b=(0,d.useCallback)((()=>{null==r||r(u.current)}),[r]);(0,d.useEffect)((()=>{a&&Promise.resolve().then((()=>{var e;null===(e=o.current)||void 0===e||e.focus()}))}),[]);const A=(0,d.useMemo)((()=>null!=s&&s.length?(0,$e.chunk)(s,Math.max(2,Math.ceil(s.length/2))):[]),[s]),k=(0,d.useCallback)((e=>{u.current=e.content,h(e.content),setTimeout((()=>{var e;null===(e=o.current)||void 0===e||e.focus()}))}),[]);return p().createElement("div",{className:"root"},p().createElement("div",{className:"container",ref:l},p().createElement(Ke.e,{containerRef:l,ref:o,value:c,minRows:3,paddingSize:62,autoResize:!0,disabled:t,placeholder:null!=i?i:et(Qe.ASK_ANY_THING),submitWhen:"enter-without-shift",onSubmit:m,onChange:g}),p().createElement("button",{className:"btn-send",disabled:!c,onClick:b},p().createElement(wt,{lib:"fa",prefix:"fas",icon:"arrow-up"}))),!(null==A||!A.length)&&p().createElement("div",{className:"suggestions"},p().createElement("div",{className:"heading"},p().createElement("img",{className:"icon",src:tt,width:16,height:16}),p().createElement("span",null,null!=n?n:et(Qe.COMMON_TASKS))),A.map(((e,t)=>p().createElement(Vt,{key:t,suggestions:e,pixelPerSecond:10*(t+2),onSelect:k})))))}function Vt(e){let{suggestions:t,pixelPerSecond:i,onSelect:a}=e;const s=(0,d.useRef)(null),n=(0,d.useRef)(null),[r,l]=(0,d.useState)(0);return(0,d.useEffect)((()=>{const e=s.current,t=n.current;if(!e||!t)return;let a,r,o,c,h=0;const d=(t.offsetWidth-7)/2+7;function p(e){r=e,void 0===o&&(o=e),void 0!==a&&(h+=e-a,a=void 0),l((e-o-h)/1e3*i%d),c=requestAnimationFrame(p)}c=requestAnimationFrame(p);const u=()=>{cancelAnimationFrame(c),a=r},m=()=>{c=requestAnimationFrame(p)};return e.addEventListener("mouseenter",u),e.addEventListener("mouseleave",m),()=>{cancelAnimationFrame(c),e.removeEventListener("mouseenter",u),e.removeEventListener("mouseleave",m)}}),[t,i]),p().createElement("div",{className:"carousel",ref:s},p().createElement("ul",{className:"list",ref:n,style:{transform:`translateX(${-r}px)`}},[...t,...t].map(((e,t)=>p().createElement("li",{key:t},p().createElement("div",{className:"item",onClick:()=>a(e),title:e.content},p().createElement("div",{className:"title"},e.title),p().createElement("div",{className:"content"},e.content)))))))}it=Ct,({e:[nt,rt,lt,ot,ct,ht,dt,pt,ut,mt,gt,bt,At,kt],c:[ft,st]}=(0,h.A)(it,[xt("ai-portal.chat-box",{styleTexts:[at.A]})],[[vt({type:Boolean}),1,"disabled"],[vt(),1,"placeholder"],[vt({type:Boolean}),1,"autoFocus"],[vt({attribute:!1}),1,"suggestions"],[vt(),1,"suggestionsLabel"],[Et({type:"message.submit"}),1,"messageSubmit",e=>(0,c.A)(_t,e),(e,t)=>(0,o.A)(_t,e,t)]],0,(e=>Tt.has((0,r.A)(e))),m.ReactNextElement)),st();var zt,Ft=i(82165);let Ot;const{defineElement:Dt}=(0,u.createDecorators)();let Ut;class Lt extends m.ReactNextElement{render(){return p().createElement(Bt,null)}}function Bt(){return p().createElement("slot",null)}zt=Lt,[Ut,Ot]=(0,h.A)(zt,[Dt("ai-portal.home-container",{styleTexts:[Ft.A]})],[],0,void 0,m.ReactNextElement).c,Ot();var Yt=i(21302),Pt=i.n(Yt),Ht=i(53373),jt=i.n(Ht);let Jt=function(e){return e.TODAY="TODAY",e.YESTERDAY="YESTERDAY",e.PREVIOUS_7_DAYS="PREVIOUS_7_DAYS",e.PREVIOUS_30_DAYS="PREVIOUS_30_DAYS",e}({});const qt="bricks/ai-portal/chat-history",Gt={en:{[Jt.TODAY]:"Today",[Jt.YESTERDAY]:"Yesterday",[Jt.PREVIOUS_7_DAYS]:"Previous 7 days",[Jt.PREVIOUS_30_DAYS]:"Previous 30 days"},zh:{[Jt.TODAY]:"今天",[Jt.YESTERDAY]:"昨天",[Jt.PREVIOUS_7_DAYS]:"过去7天",[Jt.PREVIOUS_30_DAYS]:"过去30天"}},Kt=g.i18n.getFixedT(null,qt);var $t,Qt=i(21411),Xt=i(97907);let Zt,ei,ti,ii,ai,si,ni,ri,li,oi,ci,hi,di,pi,ui;(0,g.initializeI18n)(qt,Gt);const mi=(0,m.wrapBrick)("eo-icon"),gi=(0,m.wrapBrick)("eo-link"),bi=(0,m.wrapBrick)("eo-mini-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),{defineElement:Ai,property:ki,event:wi}=(0,u.createDecorators)();let xi;var vi=new WeakMap,Ei=new WeakMap,fi=new WeakMap,yi=new WeakMap,Si=new WeakSet,Ri=new WeakMap,Mi=new WeakMap,Ni=new WeakMap;class _i extends m.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Si),(0,n.A)(this,vi,ei(this)),(0,n.A)(this,Ei,(ti(this),ii(this))),(0,n.A)(this,fi,(ai(this),si(this))),(0,n.A)(this,yi,(ni(this),ri(this))),(0,n.A)(this,Ri,(ci(this),e=>{(0,l.A)(Si,this,li).emit(e)})),(0,n.A)(this,Mi,hi(this)),(0,n.A)(this,Ni,(ui(this),e=>{(0,l.A)(Si,this,di).emit({nextToken:e})}))}get list(){return(0,c.A)(vi,this)}set list(e){(0,o.A)(vi,this,e)}get actions(){return(0,c.A)(Ei,this)}set actions(e){(0,o.A)(Ei,this,e)}get nextToken(){return(0,c.A)(fi,this)}set nextToken(e){(0,o.A)(fi,this,e)}render(){return p().createElement(Wi,{root:this,list:this.list,actions:this.actions,nextToken:this.nextToken,onActionClick:(0,c.A)(Ri,this),onLoadMore:(0,c.A)(Ni,this)})}}function Wi(e){let{root:t,list:i,actions:a,nextToken:s,onActionClick:n,onLoadMore:r}=e;const l=(0,d.useMemo)((()=>{const e=new Map,t=Pt()(),a=t.clone().startOf("day"),s=a.clone().subtract(1,"day"),n=a.clone().subtract(7,"days"),r=a.clone().subtract(30,"days"),l=+a/1e3,o=+s/1e3,c=+n/1e3,h=+r/1e3,d=+t.clone().startOf("year")/1e3;for(const t of null!=i?i:[]){let i;i=t.startTime>=l?Kt(Jt.TODAY):t.startTime>=o?Kt(Jt.YESTERDAY):t.startTime>=c?Kt(Jt.PREVIOUS_7_DAYS):t.startTime>=h?Kt(Jt.PREVIOUS_30_DAYS):t.startTime>=d?Pt()(1e3*t.startTime).format("MMMM"):Pt()(1e3*t.startTime).format("YYYY");let a=e.get(i);a||e.set(i,a={title:i,items:[]}),a.items.push(t)}return[...e.values()]}),[i]),[o,c]=(0,d.useState)(null),h=(0,d.useRef)(null);return(0,d.useEffect)((()=>{const e=h.current;if(!e||!s)return;const i=new IntersectionObserver((e=>{for(const t of e)t.isIntersecting&&r(s)}),{root:t});return i.observe(e),()=>{i.disconnect()}}),[s,r,t]),i?p().createElement(p().Fragment,null,p().createElement("ul",null,l.map((e=>p().createElement("li",{key:e.title,className:"group"},p().createElement("div",{className:"group-title"},e.title),p().createElement("ul",{className:"items"},e.items.map((e=>p().createElement("li",{key:e.id},p().createElement(gi,{className:jt()("item",{active:o===e.id}),url:e.url},p().createElement("div",{className:"item-title",title:e.title},e.title),p().createElement(bi,{className:"actions",actions:a,onActionClick:t=>{n({action:t.detail,item:e})},onVisibleChange:t=>{c(t.detail?e.id:null)}}),!Xt.QB.includes(e.state)&&p().createElement("div",{className:"working"})))))))))),s&&p().createElement("div",{className:"load-more",ref:h},p().createElement(mi,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))):p().createElement("div",{className:"loading"},p().createElement(mi,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0}))}$t=_i,({e:[ei,ti,ii,ai,si,ni,ri,li,oi,ci,hi,di,pi,ui],c:[xi,Zt]}=(0,h.A)($t,[Ai("ai-portal.chat-history",{styleTexts:[Qt.A]})],[[ki({attribute:!1}),1,"list"],[ki({attribute:!1}),1,"actions"],[ki(),1,"nextToken"],[wi({type:"action.click"}),1,"actionClick",e=>(0,c.A)(yi,e),(e,t)=>(0,o.A)(yi,e,t)],[wi({type:"load.more"}),1,"loadMore",e=>(0,c.A)(Mi,e),(e,t)=>(0,o.A)(Mi,e,t)]],0,(e=>Ni.has((0,r.A)(e))),m.ReactNextElement)),Zt();var Ti,Ci=i(89575),Ii=i(24);let Vi,zi,Fi,Oi,Di,Ui,Li,Bi,Yi,Pi,Hi,ji,Ji,qi,Gi,Ki,$i,Qi,Xi,Zi,ea;const ta=(0,m.wrapBrick)("eo-mini-line-chart"),{defineElement:ia,property:aa}=(0,u.createDecorators)();let sa;var na=new WeakMap,ra=new WeakMap,la=new WeakMap,oa=new WeakMap,ca=new WeakMap,ha=new WeakMap,da=new WeakMap,pa=new WeakMap,ua=new WeakMap,ma=new WeakMap;class ga extends m.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,na,zi(this)),(0,n.A)(this,ra,(Fi(this),Oi(this))),(0,n.A)(this,la,(Di(this),Ui(this))),(0,n.A)(this,oa,(Li(this),Bi(this))),(0,n.A)(this,ca,(Yi(this),Pi(this))),(0,n.A)(this,ha,(Hi(this),ji(this))),(0,n.A)(this,da,(Ji(this),qi(this))),(0,n.A)(this,pa,(Gi(this),Ki(this))),(0,n.A)(this,ua,($i(this),Qi(this))),(0,n.A)(this,ma,(Xi(this),Zi(this))),ea(this)}get label(){return(0,c.A)(na,this)}set label(e){(0,o.A)(na,this,e)}get value(){return(0,c.A)(ra,this)}set value(e){(0,o.A)(ra,this,e)}get size(){return(0,c.A)(la,this)}set size(e){(0,o.A)(la,this,e)}get lineColor(){return(0,c.A)(oa,this)}set lineColor(e){(0,o.A)(oa,this,e)}get showArea(){return(0,c.A)(ca,this)}set showArea(e){(0,o.A)(ca,this,e)}get min(){return(0,c.A)(ha,this)}set min(e){(0,o.A)(ha,this,e)}get max(){return(0,c.A)(da,this)}set max(e){(0,o.A)(da,this,e)}get xField(){return(0,c.A)(pa,this)}set xField(e){(0,o.A)(pa,this,e)}get yField(){return(0,c.A)(ua,this)}set yField(e){(0,o.A)(ua,this,e)}get data(){return(0,c.A)(ma,this)}set data(e){(0,o.A)(ma,this,e)}render(){return p().createElement(ba,{label:this.label,value:this.value,size:this.size,lineColor:this.lineColor,showArea:this.showArea,min:this.min,max:this.max,xField:this.xField,yField:this.yField,data:this.data})}}function ba(e){let{label:t,value:i,size:a,...s}=e;return"small"===a?p().createElement("div",{className:"container"},p().createElement("div",{className:"label-and-stat"},p().createElement("div",{className:"label"},t),p().createElement("div",{className:"stat"},i)),p().createElement("div",{className:"chart"},p().createElement(ta,(0,Ci.A)({},s,{lineWidth:1.5,width:"auto",height:"55"})))):p().createElement("div",{className:"container"},p().createElement("div",{className:"label"},t),p().createElement("div",{className:"stat-and-chart"},p().createElement("div",{className:"chart"},p().createElement(ta,(0,Ci.A)({},s,{lineWidth:2,width:"auto",height:"92"}))),p().createElement("div",{className:"stat"},i)))}Ti=ga,({e:[zi,Fi,Oi,Di,Ui,Li,Bi,Yi,Pi,Hi,ji,Ji,qi,Gi,Ki,$i,Qi,Xi,Zi,ea],c:[sa,Vi]}=(0,h.A)(Ti,[ia("ai-portal.stat-with-mini-chart",{styleTexts:[Ii.A]})],[[aa(),1,"label"],[aa(),1,"value"],[aa(),1,"size"],[aa(),1,"lineColor"],[aa({type:Boolean}),1,"showArea"],[aa({type:Number}),1,"min"],[aa({type:Number}),1,"max"],[aa(),1,"xField"],[aa(),1,"yField"],[aa({attribute:!1}),1,"data"]],0,void 0,m.ReactNextElement)),Vi();var Aa,ka=i(17099),wa=i(31653);let xa;const{defineElement:va}=(0,u.createDecorators)();let Ea;class fa extends m.ReactNextElement{render(){return p().createElement(ya,null)}}function ya(){return p().createElement("img",{src:ka,alt:"Elevo",width:95,height:28})}Aa=fa,[Ea,xa]=(0,h.A)(Aa,[va("ai-portal.elevo-logo",{styleTexts:[wa.A]})],[],0,void 0,m.ReactNextElement).c,xa();var Sa,Ra=i(29475),Ma=i(99671),Na=i(61408),_a=i(42965),Wa=i(72467),Ta=i(26785);let Ca,Ia,Va,za,Fa,Oa,Da,Ua,La,Ba,Ya,Pa,Ha,ja,Ja,qa,Ga,Ka,$a,Qa,Xa,Za,es,ts,is,as,ss,ns,rs,ls;(0,g.initializeI18n)(Ma.NS,Ma.I);const os={lib:"easyops",icon:"sidebar"},{defineElement:cs,property:hs,event:ds,method:ps}=(0,u.createDecorators)(),us=(0,d.forwardRef)(Is);let ms;var gs=new WeakMap,bs=new WeakMap,As=new WeakMap,ks=new WeakMap,ws=new WeakMap,xs=new WeakMap,vs=new WeakMap,Es=new WeakMap,fs=new WeakMap,ys=new WeakMap,Ss=new WeakMap,Rs=new WeakSet,Ms=new WeakMap,Ns=new WeakMap,_s=new WeakMap,Ws=new WeakMap,Ts=new WeakMap;class Cs extends m.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Rs),(0,n.A)(this,gs,(Ca(this),Va(this,!0))),(0,n.A)(this,bs,(za(this),Fa(this))),(0,n.A)(this,As,(Oa(this),Da(this))),(0,n.A)(this,ks,(Ua(this),La(this))),(0,n.A)(this,ws,(Ba(this),Ya(this))),(0,n.A)(this,xs,(Pa(this),Ha(this))),(0,n.A)(this,vs,(ja(this),Ja(this))),(0,n.A)(this,Es,(qa(this),Ga(this))),(0,n.A)(this,fs,(Ka(this),$a(this))),(0,n.A)(this,ys,(Qa(this),Xa(this))),(0,n.A)(this,Ss,(Za(this),es(this))),(0,n.A)(this,Ms,(as(this),()=>{(0,l.A)(Rs,this,ts).emit()})),(0,n.A)(this,Ns,ss(this)),(0,n.A)(this,_s,(ls(this),e=>{(0,l.A)(Rs,this,ns).emit(e)})),(0,n.A)(this,Ws,(e=>{(0,l.A)(Rs,this,ns).emit(e)})),(0,n.A)(this,Ts,(0,d.createRef)())}get legacy(){return(0,c.A)(gs,this)}set legacy(e){(0,o.A)(gs,this,e)}get username(){return(0,c.A)(bs,this)}set username(e){(0,o.A)(bs,this,e)}get userInstanceId(){return(0,c.A)(As,this)}set userInstanceId(e){(0,o.A)(As,this,e)}get behavior(){return(0,c.A)(ks,this)}set behavior(e){(0,o.A)(ks,this,e)}get logoUrl(){return(0,c.A)(ws,this)}set logoUrl(e){(0,o.A)(ws,this,e)}get newChatUrl(){return(0,c.A)(xs,this)}set newChatUrl(e){(0,o.A)(xs,this,e)}get historyActiveId(){return(0,c.A)(vs,this)}set historyActiveId(e){(0,o.A)(vs,this,e)}get historyUrlTemplate(){return(0,c.A)(Es,this)}set historyUrlTemplate(e){(0,o.A)(Es,this,e)}get historyActions(){return(0,c.A)(fs,this)}set historyActions(e){(0,o.A)(fs,this,e)}get links(){return(0,c.A)(ys,this)}set links(e){(0,o.A)(ys,this,e)}pullHistory(e){setTimeout((()=>{var e;null===(e=(0,c.A)(Ts,this).current)||void 0===e||e.pull()}),e)}close(){var e;null===(e=(0,c.A)(Ts,this).current)||void 0===e||e.close()}render(){return p().createElement(us,{ref:(0,c.A)(Ts,this),legacy:this.legacy,username:this.username,userInstanceId:this.userInstanceId,behavior:this.behavior,logoUrl:this.logoUrl,newChatUrl:this.newChatUrl,historyActiveId:this.historyActiveId,historyUrlTemplate:this.historyUrlTemplate,historyActions:this.historyActions,links:this.links,onLogout:(0,c.A)(Ms,this),onLegacyActionClick:(0,c.A)(Ws,this),onActionClick:(0,c.A)(_s,this)})}}function Is(e,t){let{legacy:i,username:a,userInstanceId:s,behavior:n,logoUrl:r,newChatUrl:l,historyActiveId:o,historyUrlTemplate:c,historyActions:h,links:u,onLogout:m,onActionClick:b,onLegacyActionClick:A}=e;const[k,w]=(0,d.useState)("drawer"===n),x=(0,d.useCallback)((()=>{w(!0)}),[]),v=(0,d.useCallback)((()=>{w(!1)}),[]);(0,d.useEffect)((()=>{"drawer"===n&&w(!0)}),[n]);const E=(0,d.useCallback)((()=>{w(!0)}),[]),f=(0,d.useCallback)((()=>{"drawer"===n&&w(!0)}),[n]),y=(0,d.useMemo)((()=>[{key:"logout",icon:{lib:"fa",prefix:"fas",icon:"arrow-right-from-bracket"},text:(0,Ma.t)(Ma.K.LOGOUT)},{key:"switch-language",icon:{lib:"easyops",icon:"language"},text:(0,Ma.t)(Ma.K.SWITCH_LANGUAGE)}]),[]),S=(0,d.useRef)(null);return(0,d.useImperativeHandle)(t,(()=>({close:()=>{w(!0)},pull:()=>{var e;null===(e=S.current)||void 0===e||e.pull()}})),[]),p().createElement("div",{className:jt()("container",{collapsed:k})},"drawer"===n&&!k&&p().createElement("div",{className:"mask",onClick:E}),p().createElement("div",{className:"alternative"},p().createElement(_a.Py,{icon:os,variant:"light",onClick:v}),p().createElement(_a.EM,{className:"new-chat",url:l},p().createElement(_a.Bj,{className:"new-chat-icon",lib:"easyops",icon:"new-chat"}),(0,Ma.t)(Ma.K.NEW_CHAT))),p().createElement("div",{className:"sidebar"},p().createElement("div",{className:"logo-bar"},p().createElement(_a.EM,{url:r,className:"logo-link"},p().createElement("img",{className:"logo",alt:"Elevo",src:ka,width:95,height:28})),p().createElement(_a.Py,{icon:os,variant:"light",onClick:x})),p().createElement(_a.EM,{className:"new-chat",url:l},p().createElement(_a.Bj,{className:"new-chat-icon",lib:"easyops",icon:"new-chat"}),(0,Ma.t)(Ma.K.NEW_CHAT)),null!=u&&u.length?p().createElement("div",{className:"links"},u.map(((e,t)=>p().createElement(_a.EM,{className:"link",key:t,url:e.url},p().createElement(_a.Bj,(0,Ci.A)({className:"icon"},e.icon)),p().createElement("span",{className:"title"},e.title))))):null,i?p().createElement(Ta.Y,{ref:S,activeId:o,urlTemplate:c,actions:h,onActionClick:A,onHistoryClick:f}):p().createElement(Wa.D,{ref:S,username:a,activeId:o,urlTemplate:c,actions:h,onActionClick:b,onHistoryClick:f}),p().createElement("div",{className:"footer"},p().createElement(_a.qb,{className:"dropdown",actions:y,onActionClick:async e=>{"logout"===e.detail.key?m():(await g.i18n.changeLanguage(g.i18n.language&&"en"===g.i18n.language.split("-")[0]?"zh":"en"),(0,Ra.getHistory)().reload())}},p().createElement("button",{className:"account"},p().createElement(_a.JQ,{nameOrInstanceId:s,showName:!0,size:"xs"}))))))}Sa=Cs,({e:[Va,za,Fa,Oa,Da,Ua,La,Ba,Ya,Pa,Ha,ja,Ja,qa,Ga,Ka,$a,Qa,Xa,Za,es,ts,is,as,ss,ns,rs,ls,Ca],c:[ms,Ia]}=(0,h.A)(Sa,[cs("ai-portal.elevo-sidebar",{styleTexts:[Na.A]})],[[hs({type:Boolean}),1,"legacy"],[hs(),1,"username"],[hs(),1,"userInstanceId"],[hs(),1,"behavior"],[hs(),1,"logoUrl"],[hs(),1,"newChatUrl"],[hs(),1,"historyActiveId"],[hs(),1,"historyUrlTemplate"],[hs({attribute:!1}),1,"historyActions"],[hs({attribute:!1}),1,"links"],[ds({type:"logout"}),1,"logout",e=>(0,c.A)(Ss,e),(e,t)=>(0,o.A)(Ss,e,t)],[ds({type:"action.click"}),1,"actionClick",e=>(0,c.A)(Ns,e),(e,t)=>(0,o.A)(Ns,e,t)],[ps(),2,"pullHistory"],[ps(),2,"close"]],0,(e=>Ts.has((0,r.A)(e))),m.ReactNextElement)),Ia();var Vs,zs=i(47338);let Fs,Os,Ds,Us,Ls,Bs,Ys,Ps,Hs;const js=(0,m.wrapBrick)("eo-icon"),Js=(0,m.wrapBrick)("eo-tooltip"),{defineElement:qs,property:Gs}=(0,u.createDecorators)();let Ks;var $s=new WeakMap,Qs=new WeakMap,Xs=new WeakMap,Zs=new WeakMap;class en extends m.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,$s,Os(this)),(0,n.A)(this,Qs,(Ds(this),Us(this))),(0,n.A)(this,Xs,(Ls(this),Bs(this))),(0,n.A)(this,Zs,(Ys(this),Ps(this))),Hs(this)}get icon(){return(0,c.A)($s,this)}set icon(e){(0,o.A)($s,this,e)}get tooltip(){return(0,c.A)(Qs,this)}set tooltip(e){(0,o.A)(Qs,this,e)}get disabled(){return(0,c.A)(Xs,this)}set disabled(e){(0,o.A)(Xs,this,e)}get variant(){return(0,c.A)(Zs,this)}set variant(e){(0,o.A)(Zs,this,e)}render(){return p().createElement(tn,{icon:this.icon,tooltip:this.tooltip,disabled:this.disabled})}}function tn(e){let{icon:t,tooltip:i,disabled:a}=e;const s=p().createElement("button",{disabled:a},p().createElement(js,t));return i?p().createElement(Js,{content:i},s):s}Vs=en,({e:[Os,Ds,Us,Ls,Bs,Ys,Ps,Hs],c:[Ks,Fs]}=(0,h.A)(Vs,[qs("ai-portal.icon-button",{styleTexts:[zs.A]})],[[Gs({attribute:!1}),1,"icon"],[Gs(),1,"tooltip"],[Gs({type:Boolean}),1,"disabled"],[Gs({render:!1}),1,"variant"]],0,void 0,m.ReactNextElement)),Fs();let an=function(e){return e.ALL="ALL",e}({});const sn="bricks/ai-portal/show-cases",nn={en:{[an.ALL]:"All"},zh:{[an.ALL]:"全部"}},rn=g.i18n.getFixedT(null,sn);var ln,on=i(42873);let cn,hn,dn,pn,un;(0,g.initializeI18n)(sn,nn);const mn=(0,m.wrapBrick)("eo-link"),{defineElement:gn,property:bn}=(0,u.createDecorators)();let An;var kn=new WeakMap,wn=new WeakMap;class xn extends m.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,kn,hn(this)),(0,n.A)(this,wn,(dn(this),pn(this))),un(this)}get list(){return(0,c.A)(kn,this)}set list(e){(0,o.A)(kn,this,e)}get taskUrlTemplate(){return(0,c.A)(wn,this)}set taskUrlTemplate(e){(0,o.A)(wn,this,e)}render(){return p().createElement(vn,{list:this.list,taskUrlTemplate:this.taskUrlTemplate})}}function vn(e){let{list:t,taskUrlTemplate:i}=e;const a=(0,d.useMemo)((()=>[null,...new Set(null==t?void 0:t.map((e=>e.scenario)).filter(Boolean))]),[t]),[s,n]=(0,d.useState)(null),r=(0,d.useMemo)((()=>s?null==t?void 0:t.filter((e=>e.scenario===s)):t),[s,t]);return null!=t&&t.length?p().createElement(p().Fragment,null,p().createElement("ul",{className:"nav"},null==a?void 0:a.map((e=>p().createElement("li",{key:e,className:"item"},p().createElement("a",{className:jt()({active:s===e}),onClick:()=>n(e)},null===e?rn(an.ALL):e))))),p().createElement("ul",{className:"cases"},null==r?void 0:r.map((e=>{return p().createElement("li",{key:e.taskId,className:"item"},p().createElement(mn,{className:"link",url:(t=i,a=e,null==t?void 0:t.replace(/{{(.*?)}}/g,((e,t)=>(0,$e.get)(a,t))))},p().createElement("span",{className:jt()("placeholder",e.thumbUrl?"thumbnail":"summary")},e.thumbUrl?p().createElement("span",{style:{backgroundImage:`url(${(0,Ra.getBasePath)()}${e.thumbUrl})`}}):p().createElement("span",{className:"summary-1"},p().createElement("span",{className:"summary-2"},p().createElement("span",null,e.summary)))),p().createElement("span",{className:"title"},p().createElement("span",null,e.title))));var t,a})))):null}ln=xn,({e:[hn,dn,pn,un],c:[An,cn]}=(0,h.A)(ln,[gn("ai-portal.show-cases",{styleTexts:[on.A]})],[[bn({attribute:!1}),1,"list"],[bn(),1,"taskUrlTemplate"]],0,void 0,m.ReactNextElement)),cn();let En=function(e){return e.MCP_HUB="MCP_HUB",e.ALL="ALL",e.SERVER_cmdb="SERVER_cmdb",e.SERVER_cmdb_product_helper="SERVER_cmdb_product_helper",e.SERVER_alert="SERVER_alert",e.SERVER_web_builder="SERVER_web_builder",e.SERVER_web_builder2="SERVER_web_builder2",e.SERVER_host_troubleshooting="SERVER_host_troubleshooting",e.SERVER_system_inspection="SERVER_system_inspection",e.SERVER_grafana="SERVER_grafana",e.SERVER_kubernetes="SERVER_kubernetes",e.SERVER_llm="SERVER_llm",e}({});const fn="bricks/ai-portal/mcp-tools",yn={en:{[En.MCP_HUB]:"MCP Hub",[En.ALL]:"All",[En.SERVER_cmdb]:"CMDB",[En.SERVER_cmdb_product_helper]:"CMDB",[En.SERVER_alert]:"Alert",[En.SERVER_web_builder]:"View",[En.SERVER_web_builder2]:"View",[En.SERVER_host_troubleshooting]:"Host Troubleshooting",[En.SERVER_system_inspection]:"System Inspection",[En.SERVER_grafana]:"Grafana",[En.SERVER_kubernetes]:"Kubernetes",[En.SERVER_llm]:"LLM"},zh:{[En.MCP_HUB]:"MCP 中心",[En.ALL]:"全部",[En.SERVER_cmdb]:"CMDB",[En.SERVER_cmdb_product_helper]:"CMDB",[En.SERVER_alert]:"告警",[En.SERVER_web_builder]:"视图",[En.SERVER_web_builder2]:"视图",[En.SERVER_host_troubleshooting]:"主机故障排查",[En.SERVER_system_inspection]:"系统巡检",[En.SERVER_grafana]:"Grafana",[En.SERVER_kubernetes]:"Kubernetes",[En.SERVER_llm]:"大模型"}},Sn=g.i18n.getFixedT(null,fn);var Rn,Mn=i(31748);let Nn,_n,Wn;(0,g.initializeI18n)(fn,yn);const Tn={lib:"antd",icon:"tool"},Cn=new Map([["EasyOps平台",{servers:["cmdb","cmdb_product_helper"]}],["Grafana",{servers:["grafana"]}],["Kubernetes",{servers:["kubernetes"]}],["监控事件",{servers:["alert"]}],["浏览器",{servers:["playwright"]}],["低代码",{servers:["web-builder","web-builder2"]}],["大模型",{servers:["llm"]}],["故障排查",{servers:["host-troubleshooting"]}]]),In=(0,m.wrapBrick)("eo-icon"),{defineElement:Vn,property:zn}=(0,u.createDecorators)();let Fn;var On=new WeakMap;class Dn extends m.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,On,_n(this)),Wn(this)}get list(){return(0,c.A)(On,this)}set list(e){(0,o.A)(On,this,e)}render(){return p().createElement(Un,{list:this.list})}}function Un(e){let{list:t}=e;const[i,a]=(0,d.useMemo)((()=>{const e=new Map,i=new Map;null==t||t.forEach((t=>{const a=Sn(`SERVER_${t.server.id.replaceAll("-","_")}`,t.server.name);let s=e.get(a);s||e.set(a,s=[]),s.push(t);const n=[...Cn.entries()].find((e=>{let[i,{servers:a}]=e;return a.includes(t.server.id)})),r=n?n[0]:"其他";let l=i.get(r);l||i.set(r,l=[]),l.push(a)}));const a=["CMDB"];return[new Map([...e.entries()].sort(((e,t)=>{let[i]=e,[s]=t;const n=a.indexOf(i),r=a.indexOf(s);return(n<0?a.length:n)-(r<0?a.length:r)}))),i]}),[t]),s=(0,d.useMemo)((()=>{const e=[...Cn.keys()],t=[...a.keys()];return t.sort(((t,i)=>{const a=e.indexOf(t),s=e.indexOf(i);return(a<0?e.length:a)-(s<0?e.length:s)})),[null,...t]}),[a]),[n,r]=(0,d.useState)(null),l=(0,d.useMemo)((()=>{const e=[...i];if(null===n)return e;const t=a.get(n);return e.filter((e=>{let[i]=e;return null==t?void 0:t.includes(i)}))}),[n,i,a]);return p().createElement("div",{className:"container"},p().createElement("h1",null,Sn(En.MCP_HUB)),p().createElement("ul",{className:"nav"},null==s?void 0:s.map((e=>p().createElement("li",{key:e,className:"item"},p().createElement("a",{className:jt()({active:n===e}),onClick:()=>r(e)},null===e?Sn(En.ALL):e))))),p().createElement("ul",{className:"groups"},null==l?void 0:l.map((e=>{let[t,i]=e;return p().createElement("li",{key:t,className:"group"},p().createElement("h2",null,t),p().createElement("ul",{className:"list"},i.map(((e,t)=>{var i;return p().createElement("li",{key:t,className:"item"},p().createElement("div",{className:"heading"},p().createElement(In,(0,Ci.A)({className:"icon"},null!==(i=e.icon)&&void 0!==i?i:Tn,{fallback:Tn})),p().createElement("div",{className:"title"},e.title)),p().createElement("div",{className:"description"},e.description))}))))}))))}Rn=Dn,({e:[_n,Wn],c:[Fn,Nn]}=(0,h.A)(Rn,[Vn("ai-portal.mcp-tools",{styleTexts:[Mn.A]})],[[zn({attribute:!1}),1,"list"]],0,void 0,m.ReactNextElement)),Nn();var Ln,Bn=i(99126),Yn=i(92914),Pn=i(7863),Hn=i(80413),jn=i(22025),Jn=i(44394),qn=i(13183),Gn=i(30578),Kn=i(31918),$n=i(92449),Qn=i(85011),Xn=i(65023),Zn=i(17911),er=i(95491),tr=i(11303);let ir,ar,sr,nr,rr,lr,or,cr,hr,dr,pr,ur,mr,gr,br,Ar,kr,wr,xr,vr,Er,fr,yr,Sr,Rr,Mr,Nr,_r,Wr,Tr,Cr,Ir,Vr,zr,Fr,Or,Dr,Ur;(0,g.initializeI18n)(Yn.NS,Yn.I);const Lr={lib:"easyops",icon:"share"},{defineElement:Br,property:Yr,event:Pr,method:Hr}=(0,u.createDecorators)(),jr=(0,d.forwardRef)(ml);let Jr;var qr=new WeakMap,Gr=new WeakMap,Kr=new WeakMap,$r=new WeakMap,Qr=new WeakMap,Xr=new WeakMap,Zr=new WeakMap,el=new WeakMap,tl=new WeakMap,il=new WeakSet,al=new WeakMap,sl=new WeakMap,nl=new WeakMap,rl=new WeakMap,ll=new WeakMap,ol=new WeakMap,cl=new WeakMap,hl=new WeakMap,dl=new WeakMap,pl=new WeakMap;class ul extends m.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,il),(0,n.A)(this,qr,(ir(this),sr(this))),(0,n.A)(this,Gr,(nr(this),rr(this))),(0,n.A)(this,Kr,(lr(this),or(this))),(0,n.A)(this,$r,(cr(this),hr(this))),(0,n.A)(this,Qr,(dr(this),pr(this))),(0,n.A)(this,Xr,(ur(this),mr(this))),(0,n.A)(this,Zr,(gr(this),br(this))),(0,n.A)(this,el,(Ar(this),kr(this))),(0,n.A)(this,tl,(wr(this),xr(this))),(0,n.A)(this,al,(fr(this),()=>{(0,l.A)(il,this,vr).emit()})),(0,n.A)(this,sl,yr(this)),(0,n.A)(this,nl,(Mr(this),()=>{(0,l.A)(il,this,Sr).emit()})),(0,n.A)(this,rl,Nr(this)),(0,n.A)(this,ll,(Tr(this),e=>{(0,l.A)(il,this,_r).emit(e)})),(0,n.A)(this,ol,Cr(this)),(0,n.A)(this,cl,(zr(this),e=>{(0,l.A)(il,this,Ir).emit(e)})),(0,n.A)(this,hl,Fr(this)),(0,n.A)(this,dl,(Ur(this),()=>{(0,l.A)(il,this,Or).emit("canvas")})),(0,n.A)(this,pl,(0,d.createRef)())}get taskId(){return(0,c.A)(qr,this)}set taskId(e){(0,o.A)(qr,this,e)}get replay(){return(0,c.A)(Gr,this)}set replay(e){(0,o.A)(Gr,this,e)}get replayDelay(){return(0,c.A)(Kr,this)}set replayDelay(e){(0,o.A)(Kr,this,e)}get supports(){return(0,c.A)($r,this)}set supports(e){(0,o.A)($r,this,e)}get showFeedback(){return(0,c.A)(Qr,this)}set showFeedback(e){(0,o.A)(Qr,this,e)}get showFeedbackOnView(){return(0,c.A)(Xr,this)}set showFeedbackOnView(e){(0,o.A)(Xr,this,e)}get showUiSwitch(){return(0,c.A)(Zr,this)}set showUiSwitch(e){(0,o.A)(Zr,this,e)}get hideMermaid(){return(0,c.A)(el,this)}set hideMermaid(e){(0,o.A)(el,this,e)}resumed(){var e;null===(e=(0,c.A)(pl,this).current)||void 0===e||e.resumed()}feedbackSubmitDone(){var e;null===(e=(0,c.A)(pl,this).current)||void 0===e||e.feedbackSubmitDone()}feedbackSubmitFailed(){var e;null===(e=(0,c.A)(pl,this).current)||void 0===e||e.feedbackSubmitFailed()}feedbackOnViewDone(e){var t;null===(t=(0,c.A)(pl,this).current)||void 0===t||t.feedbackOnViewDone(e)}render(){return p().createElement(jr,{taskId:this.taskId,replay:this.replay,replayDelay:this.replayDelay,supports:this.supports,showFeedback:this.showFeedback,showFeedbackOnView:this.showFeedbackOnView,showUiSwitch:this.showUiSwitch,onShare:(0,c.A)(al,this),onTerminate:(0,c.A)(nl,this),onSubmitFeedback:(0,c.A)(ll,this),onSwitchToCanvas:(0,c.A)(dl,this),onFeedbackOnView:(0,c.A)(cl,this)})}}function ml(e,t){var i;let{taskId:a,replay:s,replayDelay:n,supports:r,showFeedback:l,showFeedbackOnView:o,showUiSwitch:c,onShare:h,onTerminate:u,onSubmitFeedback:m,onSwitchToCanvas:g,onFeedbackOnView:b}=e;const{task:A,jobs:k,error:w,humanInputRef:x,resumedRef:v,skipToResults:E,watchAgain:f}=(0,Pn.S)(a,s,n),y=null!==(i=null==A?void 0:A.title)&&void 0!==i?i:"",S=null==A?void 0:A.state,R=Xt.QB.includes(S),{messages:M,inputRequiredJobId:N,lastToolCallJobId:_}=(0,Hn.e)(A,k),W=(0,d.useMemo)((()=>null==k?void 0:k.flatMap((e=>e.generatedView?{id:e.id,view:e.generatedView}:[]))),[k]),[T,C]=(0,d.useState)(!1),[I,V]=(0,d.useState)(!1),[z,F]=(0,d.useState)(!!l);(0,d.useEffect)((()=>{F(!!l)}),[l]);const[O,D]=(0,d.useState)(),U=(0,d.useCallback)((e=>{C(!0),m(e)}),[m]);(0,d.useImperativeHandle)(t,(()=>({resumed:()=>{var e;return null===(e=v.current)||void 0===e?void 0:e.call(v)},feedbackSubmitDone:()=>{V(!0),setTimeout((()=>{F(!1)}),3e3)},feedbackSubmitFailed:()=>{C(!1)},feedbackOnViewDone:e=>{D((t=>{const i=new Set(t);return i.add(e),i}))}})),[v]);const[L,B]=(0,d.useState)(null),[Y,P]=(0,d.useState)(null),[H,j]=(0,d.useState)(!1),J=(0,d.useRef)(!1),q=!!A;(0,d.useEffect)((()=>{if(q){const e=setTimeout((()=>{J.current=!0}),1e3);return()=>{clearTimeout(e)}}}),[q]),(0,d.useEffect)((()=>{J.current&&_&&!H&&P(_)}),[_,H]),(0,d.useEffect)((()=>{(0,Ra.getRuntime)().applyPageTitle(y)}),[y]),(0,d.useEffect)((()=>{w&&(0,Ra.handleHttpError)(w)}),[w]);const G=(0,d.useCallback)(((e,t)=>{var i;null===(i=x.current)||void 0===i||i.call(x,e,t)}),[x]),K=(0,d.useMemo)((()=>({humanInput:G,onShare:h,onTerminate:u,supports:r,activeExpandedViewJobId:L,setActiveExpandedViewJobId:B,activeToolCallJobId:Y,setActiveToolCallJobId:P,submittingFeedback:T,submittedFeedback:I,onSubmitFeedback:U,setShowFeedback:F,showFeedbackOnView:o,onFeedbackOnView:b,feedbackDoneViews:O})),[G,h,u,r,L,Y,T,I,U,o,b,O]),$=(0,d.useMemo)((()=>({lastToolCallJobId:_,setUserClosedAside:j})),[_]),Q=(0,d.useRef)(!1),X=(0,d.useRef)(!1),Z=(0,d.useRef)(null),[ee,te]=(0,d.useState)(!1);(0,d.useEffect)((()=>{const e=Z.current,t=null==e?void 0:e.firstElementChild;if(X.current||!e||!t)return;const i=()=>{te(e.scrollTop+e.clientHeight+24<e.scrollHeight),Q.current&&(X.current=e.scrollTop+e.clientHeight+6<e.scrollHeight)};let a;e.addEventListener("scroll",i);const s=new Bn.A((()=>{X.current||(Q.current=!1,e.scrollTo({top:t.scrollHeight,behavior:"instant"}),clearTimeout(a),a=setTimeout((()=>{Q.current=!0}),100))}));return s.observe(t),()=>{s.disconnect(),e.removeEventListener("scroll",i)}}),[q]);const ie=(0,d.useCallback)((()=>{const e=Z.current;null==e||e.scrollTo({top:null==e?void 0:e.scrollHeight,behavior:"instant"})}),[]),ae=(0,d.useMemo)((()=>Y?null==k?void 0:k.find((e=>e.id===Y)):null),[Y,k]);return p().createElement(Kn.j.Provider,{value:K},p().createElement(er.W.Provider,{value:$},p().createElement("div",{className:jn.A.container},p().createElement("div",{className:jn.A.header},p().createElement("div",{className:jn.A.left}),p().createElement("h1",null,y),p().createElement("div",{className:jn.A.right},c&&p().createElement(Jn.Py,{icon:Xt.Rq,variant:"mini",style:{transform:"rotate(90deg)"},onClick:g}),p().createElement(Jn.Py,{icon:Lr,variant:"mini",onClick:h}))),q?p().createElement(p().Fragment,null,p().createElement("div",{className:jn.A.main,ref:Z},p().createElement("div",{className:jn.A.narrow},M.map(((e,t,i)=>p().createElement("div",{className:jn.A.message,key:t},"user"===e.role?p().createElement(qn.R,{content:e.content}):p().createElement(Gn.G,{jobs:e.jobs,taskState:S,isLatest:t===i.length-1})))),z&&"completed"===S&&p().createElement(tr.k,{className:jn.A.feedback}))),p().createElement("div",{className:jn.A["scroll-down"],hidden:!ee,onClick:ie},p().createElement(Jn.Bj,{lib:"antd",icon:"down"}))):p().createElement("div",{className:jn.A["loading-icon"]},p().createElement(Jn.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})),s||null!=r&&r.chat?p().createElement("div",{className:jn.A.footer},p().createElement("div",{className:jn.A.narrow},s?p().createElement(Xn.b,{taskDone:R,skipToResults:E,watchAgain:f}):p().createElement($n.s,{state:S,canChat:R&&!!N,inputRequiredJobId:N}))):null),p().createElement("div",{className:jt()(jn.A.aside,{[jn.A.expanded]:!!Y})},Y&&p().createElement(Zn.n,{job:ae})),L&&p().createElement(Qn.f,{views:W})))}Ln=ul,({e:[sr,nr,rr,lr,or,cr,hr,dr,pr,ur,mr,gr,br,Ar,kr,wr,xr,vr,Er,fr,yr,Sr,Rr,Mr,Nr,_r,Wr,Tr,Cr,Ir,Vr,zr,Fr,Or,Dr,Ur,ir],c:[Jr,ar]}=(0,h.A)(Ln,[Br("ai-portal.chat-stream",{shadowOptions:!1})],[[Yr(),1,"taskId"],[Yr({type:Boolean}),1,"replay"],[Yr({type:Number}),1,"replayDelay"],[Yr({attribute:!1}),1,"supports"],[Yr({type:Boolean}),1,"showFeedback"],[Yr({type:Boolean}),1,"showFeedbackOnView"],[Yr({type:Boolean}),1,"showUiSwitch"],[Yr({type:Boolean,render:!1}),1,"hideMermaid"],[Pr({type:"share"}),1,"shareEvent",e=>(0,c.A)(tl,e),(e,t)=>(0,o.A)(tl,e,t)],[Pr({type:"terminate"}),1,"terminateEvent",e=>(0,c.A)(sl,e),(e,t)=>(0,o.A)(sl,e,t)],[Pr({type:"feedback.submit"}),1,"feedbackSubmitEvent",e=>(0,c.A)(rl,e),(e,t)=>(0,o.A)(rl,e,t)],[Pr({type:"feedback.on.view"}),1,"feedbackOnViewEvent",e=>(0,c.A)(ol,e),(e,t)=>(0,o.A)(ol,e,t)],[Pr({type:"ui.switch"}),1,"switch",e=>(0,c.A)(hl,e),(e,t)=>(0,o.A)(hl,e,t)],[Hr(),2,"resumed"],[Hr(),2,"feedbackSubmitDone"],[Hr(),2,"feedbackSubmitFailed"],[Hr(),2,"feedbackOnViewDone"]],0,(e=>pl.has((0,r.A)(e))),m.ReactNextElement)),ar();const gl=i.p+"images/8c2cf79e.png",bl=i.p+"images/0cbe181e.png",Al=i.p+"images/87c8a33b.png",kl=i.p+"images/f542faa9.png",wl=i.p+"images/8e5c445f.png",xl=i.p+"images/dd5fc700.png",vl=i.p+"images/4215203f.png",El=i.p+"images/5e54ffc5.png";let fl=function(e){return e.AI_EMPLOYEES="AI_EMPLOYEES",e}({});const yl="bricks/ai-portal/ai-employees",Sl=g.i18n.getFixedT(null,yl);var Rl,Ml=i(98036);let Nl,_l,Wl,Tl,Cl;(0,g.initializeI18n)(yl,{en:{AI_EMPLOYEES:"AI Employees"},zh:{AI_EMPLOYEES:"Ai 数字人"}});const Il=[gl,bl,Al,kl,wl,xl,vl,El],{defineElement:Vl,property:zl}=(0,u.createDecorators)();let Fl;var Ol=new WeakMap,Dl=new WeakMap;class Ul extends m.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,Ol,_l(this)),(0,n.A)(this,Dl,(Wl(this),Tl(this))),Cl(this)}get list(){return(0,c.A)(Ol,this)}set list(e){(0,o.A)(Ol,this,e)}get industries(){return(0,c.A)(Dl,this)}set industries(e){(0,o.A)(Dl,this,e)}render(){return p().createElement(Ll,{list:this.list,industries:this.industries})}}function Ll(e){let{list:t,industries:i}=e;const a=(0,d.useMemo)((()=>[...new Set([...null!=i?i:[],...(null!=t?t:[]).map((e=>e.industry))])]),[i,t]),[s,n]=(0,d.useState)(a[0]),r=(0,d.useMemo)((()=>{const e=new Map;return null==t||t.forEach((t=>{if(t.industry!==s)return;let i=e.get(t.role);i||e.set(t.role,i=[]),i.push(t)})),[...e.entries()]}),[s,t]),l=a.indexOf(s);return p().createElement("div",{className:"container"},p().createElement("h1",null,Sl(fl.AI_EMPLOYEES)),p().createElement("ul",{className:"nav"},a.map((e=>p().createElement("li",{key:e,className:"item"},p().createElement("a",{className:jt()({active:e===s}),onClick:()=>n(e)},e))))),p().createElement("ul",{className:"groups"},r.map(((e,t)=>{let[i,a]=e;return p().createElement("li",{key:i,className:"group"},p().createElement("h2",null,i),p().createElement("ul",{className:"list"},a.map(((e,i)=>p().createElement("li",{key:i,className:"item"},p().createElement("div",{className:"heading"},p().createElement("div",{className:"avatar"},p().createElement("img",{src:Il[(i+t+l)%Il.length]})),p().createElement("div",{className:"title"},e.name)),p().createElement("div",{className:"description"},e.description))))))}))))}Rl=Ul,({e:[_l,Wl,Tl,Cl],c:[Fl,Nl]}=(0,h.A)(Rl,[Vl("ai-portal.ai-employees",{styleTexts:[Ml.A]})],[[zl({attribute:!1}),1,"list"],[zl({attribute:!1}),1,"industries"]],0,void 0,m.ReactNextElement)),Nl();let Bl=function(e){return e.AGENTS="AGENTS",e}({});const Yl="bricks/ai-portal/ai-agents",Pl=g.i18n.getFixedT(null,Yl);var Hl,jl=i(83059);let Jl,ql,Gl;const Kl={lib:"antd",icon:"tool"};(0,g.initializeI18n)(Yl,{en:{AGENTS:"Agents"},zh:{AGENTS:"智能体"}});const $l=(0,m.wrapBrick)("eo-icon"),{defineElement:Ql,property:Xl}=(0,u.createDecorators)();let Zl;var eo=new WeakMap;class to extends m.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,eo,ql(this)),Gl(this)}get list(){return(0,c.A)(eo,this)}set list(e){(0,o.A)(eo,this,e)}render(){return p().createElement(io,{list:this.list})}}function io(e){let{list:t}=e;return p().createElement("div",{className:"container"},p().createElement("h1",null,Pl(Bl.AGENTS)),p().createElement("ul",{className:"list"},null==t?void 0:t.map(((e,t)=>{var i,a;return p().createElement("li",{key:t,className:"item"},p().createElement("div",{className:"heading"},p().createElement("div",{className:"icon"},p().createElement($l,(0,Ci.A)({},null!==(i=e.icon)&&void 0!==i?i:Kl,{fallback:Kl}))),p().createElement("div",{className:"title"},e.name)),p().createElement("div",{className:"tags"},null===(a=e.tags)||void 0===a?void 0:a.map(((e,t)=>p().createElement("span",{key:t,className:"tag"},e)))),p().createElement("div",{className:"description"},e.description))}))))}Hl=to,({e:[ql,Gl],c:[Zl,Jl]}=(0,h.A)(Hl,[Ql("ai-portal.ai-agents",{styleTexts:[jl.A]})],[[Xl({attribute:!1}),1,"list"]],0,void 0,m.ReactNextElement)),Jl();var ao=i(94558);let so=null;customElements.define("ai-portal.save-request-store",(0,ao.createProviderClass)((function(e){so=e}))),customElements.define("ai-portal.load-request-store",(0,ao.createProviderClass)((function(){const e=so;return so=null,e}))),customElements.define("ai-portal.clear-request-store",(0,ao.createProviderClass)((function(){so=null})))},15733:(e,t,i)=>{e.exports=i.p+"images/4b299d0b.png"},21411:(e,t,i)=>{i.d(t,{A:()=>l});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n)()(s());r.push([e.id,":host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.loading{display:flex;justify-content:center;padding:8px}.group + .group{margin-top:15px}.group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.item{display:block}.item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.item::part(link):hover{background:rgba(0,0,0,0.04)}.item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions{cursor:auto}.item:not(:hover):not(.active) .actions{display:none}.working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.item:hover .working,\n.item.active .working{display:none}.load-more{display:flex;justify-content:center;align-items:center;height:36px}",""]);const l=r.toString()},31653:(e,t,i)=>{i.d(t,{A:()=>l});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n)()(s());r.push([e.id,":host{display:inline-block;padding:3px 0}:host([hidden]){display:none}img{display:block}",""]);const l=r.toString()},31748:(e,t,i)=>{i.d(t,{A:()=>p});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n),l=i(20062),o=i.n(l),c=new URL(i(15733),i.b),h=r()(s()),d=o()(c);h.push([e.id,`:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${d});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:"";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`,""]);const p=h.toString()},32360:(e,t,i)=>{e.exports=i.p+"images/6336f999.png"},42873:(e,t,i)=>{i.d(t,{A:()=>p});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n),l=i(20062),o=i.n(l),c=new URL(i(89518),i.b),h=r()(s()),d=o()(c);h.push([e.id,`:host{display:flex;flex-direction:column;align-items:center;max-width:1200px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.nav,\n.cases{list-style:none;padding:0;margin:0}.nav{display:flex;font-size:16px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:"";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.cases{display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:24px;margin-top:2em}.link{background:#fefefe;border:1px solid #e8e9ec;border-radius:12px;overflow:hidden;display:block}.link::part(link){display:flex;gap:0;flex-direction:column;height:218px}.title{width:100%;height:76px;padding:16px 16px 15px;color:#262626;border-top:1px solid #e8e9ec;font-weight:500;font-size:15px;line-height:22px}.title span{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder{width:100%;height:142px;background:linear-gradient(308deg,#dee9fc 0%,#fcfbfd 100%,#fbf9fe 100%);overflow:hidden}.summary{color:rgba(0,0,0,0.65);padding:27px 0 0 24px}.thumbnail span{display:block;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.link:hover{box-shadow:0px 4px 12px 0px rgba(0,0,0,0.06)}.link:hover .title{color:var(--elevo-color-brand)}.summary-1{display:block;background-image:url(${d});background-size:237px 115px;background-repeat:no-repeat;background-position:0 0;padding:10px 0 0 10px}.summary-2{display:block;background:linear-gradient(90deg,#ffffff 0%,#e4ecfc 100%);padding:12px 15px 5px 15px;border-top-left-radius:12px}.summary-2 span{display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;color:#525971;line-height:22px;height:88px}`,""]);const p=h.toString()},47008:(e,t,i)=>{i.d(t,{A:()=>p});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n),l=i(20062),o=i.n(l),c=new URL(i(91107),i.b),h=r()(s()),d=o()(c);h.push([e.id,`:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background-color:#e1e3ec;background-image:url(${d});background-size:694px 144px;background-position:top left;background-repeat:no-repeat;box-shadow:inset 0px 2px 5px 1px rgba(42,46,59,0.1);border-radius:20px;padding:12px}.container{position:relative}textarea{display:block;width:100%;padding:10px 16px 52px;color:var(--antd-input-color);background:rgba(255,255,255,0.8);border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:130px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{position:absolute;bottom:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.suggestions{margin-top:19px}.heading{display:flex;align-items:center;padding:0 5px;margin-bottom:8px}.icon{margin-right:5px}.carousel{overflow:hidden}.carousel + .carousel{margin-top:7px}.list{display:flex;width:max-content;list-style:none;margin:0;padding:0;font-size:12px}.item{background:rgba(255,255,255,0.4);border-radius:12px;border:1px solid #dcdee6;padding:12px;max-width:330px;cursor:pointer}.item:hover{background:rgba(255,255,255,0.5);border:1px solid rgba(37,64,255,0.3)}.list > li + li{margin-left:7px}.title{margin-bottom:4px}.content{color:rgba(0,0,0,0.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip{display:block}`,""]);const p=h.toString()},47338:(e,t,i)=>{i.d(t,{A:()=>l});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n)()(s());r.push([e.id,':host{display:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant="light"]) button{color:#595959}:host([variant="mini"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}',""]);const l=r.toString()},82165:(e,t,i)=>{i.d(t,{A:()=>p});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n),l=i(20062),o=i.n(l),c=new URL(i(32360),i.b),h=r()(s()),d=o()(c);h.push([e.id,`:host{display:block;background-color:#fff;background-image:url(${d});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}`,""]);const p=h.toString()},83059:(e,t,i)=>{i.d(t,{A:()=>p});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n),l=i(20062),o=i.n(l),c=new URL(i(15733),i.b),h=r()(s()),d=o()(c);h.push([e.id,`:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${d});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px}.list{list-style:none;margin:0;padding:0;margin-top:30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`,""]);const p=h.toString()},89518:(e,t,i)=>{e.exports=i.p+"images/f819b04a.png"},91107:(e,t,i)=>{e.exports=i.p+"images/eef4f2bd.png"},98036:(e,t,i)=>{i.d(t,{A:()=>p});var a=i(36758),s=i.n(a),n=i(40935),r=i.n(n),l=i(20062),o=i.n(l),c=new URL(i(15733),i.b),h=r()(s()),d=o()(c);h.push([e.id,`:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${d});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:"";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`,""]);const p=h.toString()}}]);
|
|
2
|
+
//# sourceMappingURL=1138.6a52e235.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/1138.6a52e235.js","mappings":"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","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/chat-history/i18n.ts","webpack:///./src/chat-history/index.tsx","webpack:///./src/stat-with-mini-chart/index.tsx","webpack:///./src/elevo-logo/index.tsx","webpack:///./src/elevo-sidebar/index.tsx","webpack:///./src/icon-button/index.tsx","webpack:///./src/show-cases/i18n.ts","webpack:///./src/show-cases/index.tsx","webpack:///./src/mcp-tools/i18n.ts","webpack:///./src/mcp-tools/index.tsx","webpack:///./src/chat-stream/index.tsx","webpack:///./src/ai-employees/i18n.ts","webpack:///./src/ai-employees/index.tsx","webpack:///./src/ai-agents/i18n.ts","webpack:///./src/ai-agents/index.tsx","webpack:///./src/data-providers/request-store.ts","webpack:///./src/chat-history/styles.shadow.css","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///./src/mcp-tools/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/ai-agents/styles.shadow.css","webpack:///./src/ai-employees/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size=\"small\"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size=\"small\"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size=\"small\"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size=\"small\"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size=\"small\"])) .chart{width:calc(100% - 160px)}:host([size=\"small\"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size=\"small\"]) .label-and-stat{position:absolute;left:15px}:host([size=\"small\"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size=\"small\"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size=\"small\"]) .chart{width:calc(100% - 90px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { Job, TaskBaseDetail, FeedbackDetail } from \"./interfaces.js\";\nimport { LegacyCruiseCanvasComponent } from \"./LegacyCruiseCanvas.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type { RequestStore } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface CruiseCanvasProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n taskId?: string;\n task?: TaskBaseDetail;\n jobs?: Job[];\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHiddenJobs?: boolean;\n showFeedback?: boolean;\n showUiSwitch?: boolean;\n showFeedbackOnView?: boolean;\n showJsxEditor?: boolean;\n}\n\nconst ForwardedLegacyCruiseCanvasComponent = forwardRef(\n LegacyCruiseCanvasComponent\n);\n\nconst ForwardedCruiseCanvasComponent = forwardRef(CruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n @property()\n accessor taskId: string | undefined;\n\n @property({ attribute: false })\n accessor task: TaskBaseDetail | undefined;\n\n @property({ attribute: false })\n accessor jobs: Job[] | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean, render: false })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number, render: false })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHiddenJobs: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showJsxEditor: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"chat\">;\n\n #onSwitchToChat = () => {\n this.#switch.emit(\"chat\");\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n const Component = this.conversationId\n ? ForwardedCruiseCanvasComponent\n : ForwardedLegacyCruiseCanvasComponent;\n return (\n <Component\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHiddenJobs={this.showHiddenJobs}\n showFeedback={this.showFeedback}\n showUiSwitch={this.showUiSwitch}\n showFeedbackOnView={this.showFeedbackOnView}\n showJsxEditor={this.showJsxEditor}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToChat={this.#onSwitchToChat}\n onFeedbackOnView={this.#onFeedbackOnView}\n ref={this.#ref}\n />\n );\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\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, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport { chunk } from \"lodash\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport tips from \"./images/tips.svg\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n suggestions?: Suggestion[];\n suggestionsLabel?: string;\n}\n\nexport interface Suggestion {\n title: string;\n content: string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\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 suggestions: Suggestion[] | undefined;\n\n @property()\n accessor suggestionsLabel: 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 render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n suggestions={this.suggestions}\n suggestionsLabel={this.suggestionsLabel}\n onSubmit={this.#handleMessageSubmit}\n />\n );\n }\n}\n\nexport interface ChatBoxComponentProps extends ChatBoxProps {\n // Define react event handlers here.\n onSubmit?: (value: string) => void;\n}\n\nexport function ChatBoxComponent({\n disabled,\n placeholder,\n autoFocus,\n suggestions,\n suggestionsLabel,\n onSubmit,\n}: ChatBoxComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit?.(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit?.(valueRef.current);\n }, [onSubmit]);\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 // istanbul ignore next: experimental\n const groupedSuggestions = useMemo(() => {\n if (!suggestions?.length) {\n return [];\n }\n return chunk(suggestions, Math.max(2, Math.ceil(suggestions.length / 2)));\n }, [suggestions]);\n\n // istanbul ignore next: experimental\n const handleSelectSuggestion = useCallback((suggestion: Suggestion) => {\n valueRef.current = suggestion.content;\n setValue(suggestion.content);\n setTimeout(() => {\n textareaRef.current?.focus();\n });\n }, []);\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={3}\n paddingSize={62}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n {\n // istanbul ignore next: experimental\n !!groupedSuggestions?.length && (\n <div className=\"suggestions\">\n <div className=\"heading\">\n <img\n className=\"icon\"\n src={tips as unknown as string}\n width={16}\n height={16}\n />\n <span>{suggestionsLabel ?? t(K.COMMON_TASKS)}</span>\n </div>\n {groupedSuggestions.map((group, index) => (\n <SuggestionCarousel\n key={index}\n suggestions={group}\n pixelPerSecond={(index + 2) * 10}\n onSelect={handleSelectSuggestion}\n />\n ))}\n </div>\n )\n }\n </div>\n );\n}\n\nexport interface SuggestionCarouselProps {\n suggestions: Suggestion[];\n pixelPerSecond: number;\n onSelect: (suggestion: Suggestion) => void;\n}\n\n// istanbul ignore next: experimental\nfunction SuggestionCarousel({\n suggestions,\n pixelPerSecond,\n onSelect,\n}: SuggestionCarouselProps) {\n const carouselRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const [x, setX] = useState(0);\n\n // Auto scroll suggestions infinitely.\n // Stop scrolling when mouse enter, and resume when mouse leave.\n useEffect(() => {\n const carousel = carouselRef.current;\n const list = listRef.current;\n\n if (!carousel || !list) {\n return;\n }\n\n let previousTimestamp: number | undefined;\n let currentTimestamp: number | undefined;\n let offsetTime = 0;\n let start: number | undefined;\n let timer: number;\n\n // We doubled the suggestions to make it scroll infinitely.\n const gap = 7;\n const listSingleWidth = (list.offsetWidth - gap) / 2;\n const mod = listSingleWidth + gap;\n\n function step(timestamp: number) {\n currentTimestamp = timestamp;\n if (start === undefined) {\n start = timestamp;\n }\n if (previousTimestamp !== undefined) {\n offsetTime += timestamp - previousTimestamp;\n previousTimestamp = undefined;\n }\n const elapsed = timestamp - start - offsetTime;\n setX(((elapsed / 1000) * pixelPerSecond) % mod);\n timer = requestAnimationFrame(step);\n }\n\n timer = requestAnimationFrame(step);\n\n const onMouseEnter = () => {\n cancelAnimationFrame(timer);\n previousTimestamp = currentTimestamp;\n };\n const onMouseLeave = () => {\n timer = requestAnimationFrame(step);\n };\n\n carousel.addEventListener(\"mouseenter\", onMouseEnter);\n carousel.addEventListener(\"mouseleave\", onMouseLeave);\n\n return () => {\n cancelAnimationFrame(timer);\n carousel.removeEventListener(\"mouseenter\", onMouseEnter);\n carousel.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }, [suggestions, pixelPerSecond]);\n\n return (\n <div className=\"carousel\" ref={carouselRef}>\n <ul\n className=\"list\"\n ref={listRef}\n style={{ transform: `translateX(${-x}px)` }}\n >\n {[...suggestions, ...suggestions].map((item, index) => (\n <li key={index}>\n <div\n className=\"item\"\n onClick={() => onSelect(item)}\n title={item.content}\n >\n <div className=\"title\">{item.title}</div>\n <div className=\"content\">{item.content}</div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n}\n\nconst en: Locale = {\n [K.TODAY]: \"Today\",\n [K.YESTERDAY]: \"Yesterday\",\n [K.PREVIOUS_7_DAYS]: \"Previous 7 days\",\n [K.PREVIOUS_30_DAYS]: \"Previous 30 days\",\n};\n\nconst zh: Locale = {\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-history\";\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","// istanbul ignore file: experimental\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport moment from \"moment\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatHistoryProps {\n list?: HistoryItem[];\n actions?: ActionType[];\n nextToken?: string;\n}\n\nexport interface HistoryItem {\n id: string;\n url: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n}\n\n/**\n * 构件 `ai-portal.chat-history`\n */\nexport\n@defineElement(\"ai-portal.chat-history\", {\n styleTexts: [styleText],\n})\nclass ChatHistory extends ReactNextElement implements ChatHistoryProps {\n @property({ attribute: false })\n accessor list: HistoryItem[] | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @property()\n accessor nextToken: string | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"load.more\" })\n accessor #loadMore!: EventEmitter<{ nextToken: string }>;\n\n #handleLoadMore = (nextToken: string) => {\n this.#loadMore.emit({ nextToken });\n };\n\n render() {\n return (\n <ChatHistoryComponent\n root={this}\n list={this.list}\n actions={this.actions}\n nextToken={this.nextToken}\n onActionClick={this.#handleActionClick}\n onLoadMore={this.#handleLoadMore}\n />\n );\n }\n}\n\nexport interface ChatHistoryComponentProps extends ChatHistoryProps {\n root: HTMLElement;\n onActionClick: (detail: ActionClickDetail) => void;\n onLoadMore: (nextToken: string) => void;\n}\n\ninterface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport function ChatHistoryComponent({\n root,\n list,\n actions,\n nextToken,\n onActionClick,\n onLoadMore,\n}: ChatHistoryComponentProps) {\n const groups = useMemo(() => {\n const groupMap = new Map<string, GroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n if (!next || !nextToken) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n onLoadMore(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, onLoadMore, root]);\n\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n );\n }\n\n return (\n <>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n active: actionsVisible === item.id,\n })}\n url={item.url}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n MiniLineChart,\n MiniLineChartProps,\n} from \"@next-bricks/mini-chart/mini-line-chart\";\n\nconst WrappedMiniLineChart = wrapBrick<MiniLineChart, MiniLineChartProps>(\n \"eo-mini-line-chart\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StatWithMiniChartProps\n extends Pick<\n MiniLineChartProps,\n \"data\" | \"xField\" | \"yField\" | \"lineColor\" | \"showArea\" | \"min\" | \"max\"\n > {\n label?: string;\n value?: string;\n size?: \"medium\" | \"small\";\n}\n\n/**\n * 构件 `ai-portal.stat-with-mini-chart`\n */\nexport\n@defineElement(\"ai-portal.stat-with-mini-chart\", {\n styleTexts: [styleText],\n})\nclass StatWithMiniChart\n extends ReactNextElement\n implements StatWithMiniChartProps\n{\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"medium\"\n */\n @property()\n accessor size: \"medium\" | \"small\" | undefined;\n\n /**\n * @default \"var(--color-brand)\"\n */\n @property()\n accessor lineColor: string | undefined;\n\n @property({ type: Boolean })\n accessor showArea: boolean | undefined;\n\n /**\n * Specify the minimum value of the y-axis.\n * If not specified, the minimum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor min: number | undefined;\n\n /**\n * Specify the maximum value of the y-axis.\n * If not specified, the maximum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor max: number | undefined;\n\n /**\n * @default \"0\"\n */\n @property()\n accessor xField: string | undefined;\n\n /**\n * @default \"1\"\n */\n @property()\n accessor yField: string | undefined;\n\n @property({ attribute: false })\n accessor data: Record<string, number>[] | undefined;\n\n render() {\n return (\n <StatWithMiniChartComponent\n label={this.label}\n value={this.value}\n size={this.size}\n lineColor={this.lineColor}\n showArea={this.showArea}\n min={this.min}\n max={this.max}\n xField={this.xField}\n yField={this.yField}\n data={this.data}\n />\n );\n }\n}\n\nfunction StatWithMiniChartComponent({\n label,\n value,\n size,\n ...chartProps\n}: StatWithMiniChartProps) {\n if (size === \"small\") {\n return (\n <div className=\"container\">\n <div className=\"label-and-stat\">\n <div className=\"label\">{label}</div>\n <div className=\"stat\">{value}</div>\n </div>\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={1.5}\n width=\"auto\"\n height=\"55\"\n />\n </div>\n </div>\n );\n }\n return (\n <div className=\"container\">\n <div className=\"label\">{label}</div>\n <div className=\"stat-and-chart\">\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={2}\n width=\"auto\"\n height=\"92\"\n />\n </div>\n <div className=\"stat\">{value}</div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport logoImage from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * Elevo Logo\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return <ElevoLogoComponent />;\n }\n}\n\nfunction ElevoLogoComponent() {\n return <img src={logoImage} alt=\"Elevo\" width={95} height={28} />;\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { getHistory } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { DropdownActionsProps } from \"@next-bricks/basic/dropdown-actions\";\nimport type { ActionType } from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport ElevoLogo from \"../elevo-logo/images/logo@2x.png\";\nimport {\n WrappedDropdownActions,\n WrappedEasyopsAvatar,\n WrappedIcon,\n WrappedIconButton,\n WrappedLink,\n} from \"./bricks.js\";\nimport {\n ChatHistory,\n type ActionClickDetail,\n type ChatHistoryRef,\n} from \"./ChatHistory.js\";\nimport {\n LegacyChatHistory,\n type LegacyActionClickDetail,\n} from \"./LegacyChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ElevoSidebarProps {\n /** @deprecated */\n legacy?: boolean;\n username?: string;\n userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\n logoUrl?: string;\n newChatUrl?: string;\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n links?: SidebarLink[];\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon: GeneralIconProps;\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n close: () => void;\n}\n\n/**\n * 构件 `ai-portal.elevo-sidebar`\n */\nexport\n@defineElement(\"ai-portal.elevo-sidebar\", {\n styleTexts: [styleText],\n})\nclass ElevoSidebar extends ReactNextElement implements ElevoSidebarProps {\n /** @deprecated */\n @property({ type: Boolean })\n accessor legacy = true;\n\n @property()\n accessor username: string | undefined;\n\n @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | undefined;\n\n @property()\n accessor logoUrl: string | undefined;\n\n @property()\n accessor newChatUrl: string | undefined;\n\n @property()\n accessor historyActiveId: string | undefined;\n\n @property()\n accessor historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor links: SidebarLink[] | undefined;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<\n ActionClickDetail | LegacyActionClickDetail\n >;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #handleLegacyActionClick = (detail: LegacyActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #ref = createRef<ElevoSidebarRef>();\n\n /**\n * @param delay Delay in milliseconds before pulling the latest chat history.\n */\n @method()\n pullHistory(delay: number) {\n // Wait several seconds to let the task title to be summarized.\n setTimeout(() => {\n this.#ref.current?.pull();\n }, delay);\n }\n\n @method()\n close() {\n this.#ref.current?.close();\n }\n\n render() {\n return (\n <ElevoSidebarComponent\n ref={this.#ref}\n legacy={this.legacy}\n username={this.username}\n userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n historyActiveId={this.historyActiveId}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n links={this.links}\n onLogout={this.#handleLogout}\n onLegacyActionClick={this.#handleLegacyActionClick}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ElevoSidebarComponentProps extends ElevoSidebarProps {\n onLogout: () => void;\n onActionClick: (detail: ActionClickDetail) => void;\n onLegacyActionClick: (detail: LegacyActionClickDetail) => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n legacy,\n username,\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n links,\n onLogout,\n onActionClick,\n onLegacyActionClick,\n }: ElevoSidebarComponentProps,\n ref: React.Ref<ElevoSidebarRef>\n) {\n const [collapsed, setCollapsed] = useState(behavior === \"drawer\");\n const handleCollapse = useCallback(() => {\n setCollapsed(true);\n }, []);\n const handleExpand = useCallback(() => {\n setCollapsed(false);\n }, []);\n\n useEffect(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const handleClickMask = useCallback(() => {\n setCollapsed(true);\n }, []);\n\n const handleHistoryClick = useCallback(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const dropdownActions = useMemo<DropdownActionsProps[\"actions\"]>(\n () => [\n {\n key: \"logout\",\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n {\n key: \"switch-language\",\n icon: {\n lib: \"easyops\",\n icon: \"language\",\n },\n text: t(K.SWITCH_LANGUAGE),\n },\n ],\n []\n );\n\n const historyRef = useRef<ChatHistoryRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n close: () => {\n setCollapsed(true);\n },\n pull: () => {\n historyRef.current?.pull();\n },\n }),\n []\n );\n\n return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\n <div className=\"alternative\">\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleExpand}\n />\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n </div>\n <div className=\"sidebar\">\n <div className=\"logo-bar\">\n <WrappedLink url={logoUrl} className=\"logo-link\">\n <img\n className=\"logo\"\n alt=\"Elevo\"\n src={ElevoLogo}\n width={95}\n height={28}\n />\n </WrappedLink>\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleCollapse}\n />\n </div>\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n {links?.length ? (\n <div className=\"links\">\n {links.map((link, index) => (\n <WrappedLink className=\"link\" key={index} url={link.url}>\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n ))}\n </div>\n ) : null}\n {legacy ? (\n <LegacyChatHistory\n ref={historyRef}\n activeId={historyActiveId}\n urlTemplate={historyUrlTemplate}\n actions={historyActions}\n onActionClick={onLegacyActionClick}\n onHistoryClick={handleHistoryClick}\n />\n ) : (\n <ChatHistory\n ref={historyRef}\n username={username}\n activeId={historyActiveId}\n urlTemplate={historyUrlTemplate}\n actions={historyActions}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n />\n )}\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n actions={dropdownActions}\n onActionClick={async (e) => {\n if (e.detail.key === \"logout\") {\n onLogout();\n } else {\n await i18n.changeLanguage(\n i18n.language && i18n.language.split(\"-\")[0] === \"en\"\n ? \"zh\"\n : \"en\"\n );\n getHistory().reload();\n }\n }}\n >\n <button className=\"account\">\n <WrappedEasyopsAvatar\n nameOrInstanceId={userInstanceId}\n showName\n size=\"xs\"\n />\n </button>\n </WrappedDropdownActions>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface IconButtonProps {\n icon?: GeneralIconProps;\n tooltip?: string;\n disabled?: boolean;\n variant?: IconButtonVariant;\n}\n\nexport type IconButtonVariant = \"default\" | \"light\" | \"mini\";\n\n/**\n * 构件 `ai-portal.icon-button`\n */\nexport\n@defineElement(\"ai-portal.icon-button\", {\n styleTexts: [styleText],\n})\nclass IconButton extends ReactNextElement implements IconButtonProps {\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({ icon, tooltip, disabled }: IconButtonProps) {\n const btn = (\n <button disabled={disabled}>\n <WrappedIcon {...icon} />\n </button>\n );\n\n if (tooltip) {\n return <WrappedTooltip content={tooltip}>{btn}</WrappedTooltip>;\n }\n\n return btn;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n}\n\nconst en: Locale = {\n [K.ALL]: \"All\",\n};\n\nconst zh: Locale = {\n [K.ALL]: \"全部\",\n};\n\nexport const NS = \"bricks/ai-portal/show-cases\";\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, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { get } from \"lodash\";\nimport classNames from \"classnames\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCasesProps {\n list?: ShowCase[];\n taskUrlTemplate?: string;\n}\n\nexport interface ShowCase {\n taskId: string;\n title: string;\n summary: string;\n scenario: string;\n thumbUrl?: string;\n}\n\n/**\n * 构件 `ai-portal.show-cases`\n */\nexport\n@defineElement(\"ai-portal.show-cases\", {\n styleTexts: [styleText],\n})\nclass ShowCases extends ReactNextElement implements ShowCasesProps {\n @property({ attribute: false })\n accessor list: ShowCase[] | undefined;\n\n @property()\n accessor taskUrlTemplate: string | undefined;\n\n render() {\n return (\n <ShowCasesComponent\n list={this.list}\n taskUrlTemplate={this.taskUrlTemplate}\n />\n );\n }\n}\n\nfunction ShowCasesComponent({ list, taskUrlTemplate }: ShowCasesProps) {\n // Grouping the list by scenario\n const groups = useMemo<(string | null)[]>(() => {\n return [\n null,\n ...new Set(list?.map((item) => item.scenario).filter(Boolean)),\n ];\n }, [list]);\n\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n\n const filteredList = useMemo(() => {\n if (!activeGroup) {\n return list;\n }\n return list?.filter((item) => item.scenario === activeGroup);\n }, [activeGroup, list]);\n\n if (!list?.length) {\n return null;\n }\n\n return (\n <>\n <ul className=\"nav\">\n {groups?.map((group) => (\n <li key={group} className=\"item\">\n <a\n className={classNames({ active: activeGroup === group })}\n onClick={() => setActiveGroup(group)}\n >\n {group === null ? t(K.ALL) : group}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"cases\">\n {filteredList?.map((item) => (\n <li key={item.taskId} className=\"item\">\n <WrappedLink\n className=\"link\"\n url={parseTemplate(taskUrlTemplate, item)}\n >\n <span\n className={classNames(\n \"placeholder\",\n item.thumbUrl ? \"thumbnail\" : \"summary\"\n )}\n >\n {item.thumbUrl ? (\n <span\n style={{\n backgroundImage: `url(${getBasePath()}${item.thumbUrl})`,\n }}\n />\n ) : (\n <span className=\"summary-1\">\n <span className=\"summary-2\">\n <span>{item.summary}</span>\n </span>\n </span>\n )}\n </span>\n <span className=\"title\">\n <span>{item.title}</span>\n </span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n}\n\nfunction parseTemplate(\n template: string | undefined,\n context: Record<string, any>\n) {\n return template?.replace(/{{(.*?)}}/g, (_match: string, key: string) => {\n const value = get(context, key);\n return value;\n });\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MCP_HUB = \"MCP_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_cmdb_product_helper = \"SERVER_cmdb_product_helper\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_web_builder2 = \"SERVER_web_builder2\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n SERVER_grafana = \"SERVER_grafana\",\n SERVER_kubernetes = \"SERVER_kubernetes\",\n SERVER_llm = \"SERVER_llm\",\n}\n\nconst en: Locale = {\n [K.MCP_HUB]: \"MCP Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_web_builder2]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"LLM\",\n};\n\nconst zh: Locale = {\n [K.MCP_HUB]: \"MCP 中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_web_builder2]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"大模型\",\n};\n\nexport const NS = \"bricks/ai-portal/mcp-tools\";\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, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\nconst PLATFORM_CONFIG = new Map([\n [\n \"EasyOps平台\",\n {\n servers: [\"cmdb\", \"cmdb_product_helper\"],\n },\n ],\n [\n \"Grafana\",\n {\n servers: [\"grafana\"],\n },\n ],\n [\n \"Kubernetes\",\n {\n servers: [\"kubernetes\"],\n },\n ],\n [\n \"监控事件\",\n {\n servers: [\"alert\"],\n },\n ],\n [\n \"浏览器\",\n {\n servers: [\"playwright\"],\n },\n ],\n [\n \"低代码\",\n {\n servers: [\"web-builder\", \"web-builder2\"],\n },\n ],\n [\n \"大模型\",\n {\n servers: [\"llm\"],\n },\n ],\n [\n \"故障排查\",\n {\n servers: [\"host-troubleshooting\"],\n },\n ],\n]);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n}\n\nexport interface McpTool {\n name: string;\n title: string;\n description: string;\n icon?: GeneralIconProps;\n server: McpServer;\n}\n\nexport interface McpServer {\n id: string;\n name: string;\n}\n\n/**\n * 构件 `ai-portal.mcp-tools`\n */\nexport\n@defineElement(\"ai-portal.mcp-tools\", {\n styleTexts: [styleText],\n})\nclass McpTools extends ReactNextElement implements McpToolsProps {\n @property({ attribute: false })\n accessor list: McpTool[] | undefined;\n\n render() {\n return <McpToolsComponent list={this.list} />;\n }\n}\n\nfunction McpToolsComponent({ list }: McpToolsProps) {\n // Grouping the list by server name\n const [groupMap, platformMap] = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n const platformMap = new Map<string, string[]>();\n list?.forEach((item) => {\n const groupName = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(groupName);\n if (!list) {\n map.set(groupName, (list = []));\n }\n list.push(item);\n\n const platform = [...PLATFORM_CONFIG.entries()].find(\n ([_name, { servers }]) => servers.includes(item.server.id)\n );\n const platformName = platform ? platform[0] : \"其他\";\n let groups = platformMap.get(platformName);\n if (!groups) {\n platformMap.set(platformName, (groups = []));\n }\n groups.push(groupName);\n });\n\n const orderedNames = [\"CMDB\"];\n const orderedMap = new Map<string, McpTool[]>(\n [...map.entries()].sort(([nameA], [nameB]) => {\n const indexA = orderedNames.indexOf(nameA);\n const indexB = orderedNames.indexOf(nameB);\n return (\n (indexA < 0 ? orderedNames.length : indexA) -\n (indexB < 0 ? orderedNames.length : indexB)\n );\n })\n );\n\n return [orderedMap, platformMap];\n }, [list]);\n\n const platforms = useMemo(() => {\n const orderedNames = [...PLATFORM_CONFIG.keys()];\n const names = [...platformMap.keys()];\n names.sort((a, b) => {\n const aIndex = orderedNames.indexOf(a);\n const bIndex = orderedNames.indexOf(b);\n return (\n (aIndex < 0 ? orderedNames.length : aIndex) -\n (bIndex < 0 ? orderedNames.length : bIndex)\n );\n });\n return [null, ...names];\n }, [platformMap]);\n\n const [activePlatform, setActivePlatform] = useState<string | null>(null);\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (activePlatform === null) {\n return groupedList;\n }\n const platformGroups = platformMap.get(activePlatform);\n return groupedList.filter(([group]) => platformGroups?.includes(group));\n }, [activePlatform, groupMap, platformMap]);\n\n return (\n <div className=\"container\">\n <h1>{t(K.MCP_HUB)}</h1>\n <ul className=\"nav\">\n {platforms?.map((platform) => (\n <li key={platform} className=\"item\">\n <a\n className={classNames({ active: activePlatform === platform })}\n onClick={() => setActivePlatform(platform)}\n >\n {platform === null ? t(K.ALL) : platform}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <WrappedIcon\n className=\"icon\"\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n <div className=\"title\">{item.title}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","// istanbul ignore file: experimental\nimport React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { getRuntime, handleHttpError } from \"@next-core/runtime\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { NS, locales } from \"./i18n.js\";\nimport { useTaskDetail } from \"../cruise-canvas/useTaskDetail.js\";\nimport { useChatStream } from \"./useChatStream.js\";\nimport styles from \"./styles.module.css\";\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 { ReplayToolbar } from \"../shared/ReplayToolbar/ReplayToolbar.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\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_SHARE: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"share\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatStreamProps {\n taskId?: string;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showFeedback?: boolean;\n showFeedbackOnView?: boolean;\n showUiSwitch?: boolean;\n}\n\nconst ChatStreamComponent = forwardRef(LegacyChatStreamComponent);\n\n/**\n * 构件 `ai-portal.chat-stream`\n */\nexport\n@defineElement(\"ai-portal.chat-stream\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass ChatStream extends ReactNextElement implements ChatStreamProps {\n @property()\n accessor taskId: string | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"canvas\">;\n\n #onSwitchToCanvas = () => {\n this.#switch.emit(\"canvas\");\n };\n\n #ref = createRef<ChatStreamRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ChatStreamComponent\n taskId={this.taskId}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showFeedback={this.showFeedback}\n showFeedbackOnView={this.showFeedbackOnView}\n showUiSwitch={this.showUiSwitch}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToCanvas={this.#onSwitchToCanvas}\n onFeedbackOnView={this.#onFeedbackOnView}\n />\n );\n }\n}\n\ninterface ChatStreamComponentProps extends ChatStreamProps {\n onShare: () => void;\n onTerminate: () => void;\n onSubmitFeedback: (detail: FeedbackDetail) => void;\n onSwitchToCanvas: () => void;\n onFeedbackOnView: (viewId: string) => void;\n}\n\ninterface ChatStreamRef {\n resumed: () => void;\n feedbackSubmitDone: () => void;\n feedbackSubmitFailed: () => void;\n feedbackOnViewDone: (viewId: string) => void;\n}\n\nfunction LegacyChatStreamComponent(\n {\n taskId,\n replay,\n replayDelay,\n supports,\n showFeedback: propShowFeedback,\n showFeedbackOnView,\n showUiSwitch,\n onShare,\n onTerminate,\n onSubmitFeedback,\n onSwitchToCanvas,\n onFeedbackOnView,\n }: ChatStreamComponentProps,\n ref: React.Ref<ChatStreamRef>\n) {\n const {\n task,\n jobs,\n error,\n humanInputRef,\n resumedRef,\n skipToResults,\n watchAgain,\n } = useTaskDetail(taskId, replay, replayDelay);\n const pageTitle = task?.title ?? \"\";\n const taskState = task?.state;\n const taskDone = DONE_STATES.includes(taskState!);\n const { messages, inputRequiredJobId, lastToolCallJobId } = useChatStream(\n task,\n jobs\n );\n\n const views = useMemo(() => {\n return jobs?.flatMap((job) =>\n job.generatedView\n ? {\n id: job.id,\n view: job.generatedView,\n }\n : []\n );\n }, [jobs]);\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 resumed: () => resumedRef.current?.(),\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 [resumedRef]\n );\n\n const [activeExpandedViewJobId, setActiveExpandedViewJobId] = useState<\n string | null\n >(null);\n\n const [activeToolCallJobId, setActiveToolCallJobId] = useState<string | null>(\n null\n );\n const [userClosedAside, setUserClosedAside] = useState(false);\n // Delay flag to prevent aside from auto opened for a completed task\n const delayRef = useRef(false);\n\n const taskAvailable = !!task;\n useEffect(() => {\n if (taskAvailable) {\n const timer = setTimeout(() => {\n delayRef.current = true;\n }, 1000);\n return () => {\n clearTimeout(timer);\n };\n }\n }, [taskAvailable]);\n\n useEffect(() => {\n if (delayRef.current && lastToolCallJobId && !userClosedAside) {\n setActiveToolCallJobId(lastToolCallJobId);\n }\n }, [lastToolCallJobId, userClosedAside]);\n\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n\n useEffect(() => {\n if (error) {\n handleHttpError(error);\n }\n }, [error]);\n\n const humanInput = useCallback(\n (jobId: string, input: string) => {\n humanInputRef.current?.(jobId, input);\n },\n [humanInputRef]\n );\n\n const taskContextValue = useMemo(\n () => ({\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n activeToolCallJobId,\n setActiveToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n onSubmitFeedback: handleSubmitFeedback,\n setShowFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n }),\n [\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n activeToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n handleSubmitFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n ]\n );\n\n const streamContextValue = useMemo(\n () => ({\n lastToolCallJobId,\n setUserClosedAside,\n }),\n [lastToolCallJobId]\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 }, [taskAvailable]);\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 activeToolCallJob = useMemo(() => {\n if (!activeToolCallJobId) {\n return null;\n }\n return jobs?.find((job) => job.id === activeToolCallJobId);\n }, [activeToolCallJobId, jobs]);\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 icon={ICON_CANVAS}\n variant=\"mini\"\n style={{\n transform: \"rotate(90deg)\",\n }}\n onClick={onSwitchToCanvas}\n />\n )}\n <WrappedIconButton\n icon={ICON_SHARE}\n variant=\"mini\"\n onClick={onShare}\n />\n </div>\n </div>\n {taskAvailable ? (\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} />\n ) : (\n <AssistantMessage\n jobs={msg.jobs}\n taskState={taskState}\n isLatest={index === list.length - 1}\n />\n )}\n </div>\n ))}\n {showFeedback && taskState === \"completed\" && (\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 </>\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 {replay || supports?.chat ? (\n <div className={styles.footer}>\n <div className={styles.narrow}>\n {replay ? (\n <ReplayToolbar\n taskDone={taskDone}\n skipToResults={skipToResults}\n watchAgain={watchAgain}\n />\n ) : (\n <ChatBox\n state={taskState}\n canChat={taskDone && !!inputRequiredJobId}\n inputRequiredJobId={inputRequiredJobId}\n />\n )}\n </div>\n </div>\n ) : null}\n </div>\n <div\n className={classNames(styles.aside, {\n [styles.expanded]: !!activeToolCallJobId,\n })}\n >\n {activeToolCallJobId && <Aside job={activeToolCallJob!} />}\n </div>\n {activeExpandedViewJobId && <ExpandedView views={views!} />}\n </StreamContext.Provider>\n </TaskContext.Provider>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AI_EMPLOYEES = \"AI_EMPLOYEES\",\n}\n\nconst en: Locale = {\n AI_EMPLOYEES: \"AI Employees\",\n};\n\nconst zh: Locale = {\n AI_EMPLOYEES: \"Ai 数字人\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-employees\";\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, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport Avatar1 from \"./images/avatar-1@2x.png\";\nimport Avatar2 from \"./images/avatar-2@2x.png\";\nimport Avatar3 from \"./images/avatar-3@2x.png\";\nimport Avatar4 from \"./images/avatar-4@2x.png\";\nimport Avatar5 from \"./images/avatar-5@2x.png\";\nimport Avatar6 from \"./images/avatar-6@2x.png\";\nimport Avatar7 from \"./images/avatar-7@2x.png\";\nimport Avatar8 from \"./images/avatar-8@2x.png\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst AVATARS = [\n Avatar1,\n Avatar2,\n Avatar3,\n Avatar4,\n Avatar5,\n Avatar6,\n Avatar7,\n Avatar8,\n];\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n}\n\nexport interface Employee {\n name: string;\n industry: string;\n role: string;\n description: string;\n}\n\n/**\n * 构件 `ai-portal.ai-employees`\n */\nexport\n@defineElement(\"ai-portal.ai-employees\", {\n styleTexts: [styleText],\n})\nclass AIEmployees extends ReactNextElement implements AIEmployeesProps {\n @property({ attribute: false })\n accessor list: Employee[] | undefined;\n\n @property({ attribute: false })\n accessor industries: string[] | undefined;\n\n // @property({ attribute: false })\n // accessor roles: string[] | undefined;\n\n render() {\n return (\n <AIEmployeesComponent list={this.list} industries={this.industries} />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n}: AIEmployeesProps) {\n const industries = useMemo(() => {\n return [\n ...new Set([\n ...(_industries ?? []),\n ...(list ?? []).map((item) => item.industry),\n ]),\n ];\n }, [_industries, list]);\n\n const [activeIndustry, setActiveIndustry] = useState(industries[0]);\n\n // Grouping the list by role\n const groups = useMemo(() => {\n const map = new Map<string, Employee[]>();\n list?.forEach((item) => {\n if (item.industry !== activeIndustry) {\n return;\n }\n let array = map.get(item.role);\n if (!array) {\n map.set(item.role, (array = []));\n }\n array.push(item);\n });\n return [...map.entries()];\n }, [activeIndustry, list]);\n\n const industryIndex = industries.indexOf(activeIndustry);\n\n return (\n <div className=\"container\">\n <h1>{t(K.AI_EMPLOYEES)}</h1>\n <ul className=\"nav\">\n {industries.map((industry) => (\n <li key={industry} className=\"item\">\n <a\n className={classNames({ active: industry === activeIndustry })}\n onClick={() => setActiveIndustry(industry)}\n >\n {industry}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"groups\">\n {groups.map(([groupName, items], groupIndex) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <div className=\"avatar\">\n <img\n src={\n AVATARS[\n (index + groupIndex + industryIndex) %\n AVATARS.length\n ]\n }\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AGENTS = \"AGENTS\",\n}\n\nconst en: Locale = {\n AGENTS: \"Agents\",\n};\n\nconst zh: Locale = {\n AGENTS: \"智能体\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-agents\";\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 from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIAgentsProps {\n list?: Agent[];\n}\n\nexport interface Agent {\n name: string;\n description: string;\n icon?: GeneralIconProps;\n tags?: string[];\n}\n\n/**\n * 构件 `ai-portal.ai-agents`\n */\nexport\n@defineElement(\"ai-portal.ai-agents\", {\n styleTexts: [styleText],\n})\nclass AIAgents extends ReactNextElement implements AIAgentsProps {\n @property({ attribute: false })\n accessor list: Agent[] | undefined;\n\n render() {\n return <AIAgentsComponent list={this.list} />;\n }\n}\n\nfunction AIAgentsComponent({ list }: AIAgentsProps) {\n return (\n <div className=\"container\">\n <h1>{t(K.AGENTS)}</h1>\n <ul className=\"list\">\n {list?.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <div className=\"icon\">\n <WrappedIcon\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"tags\">\n {item.tags?.map((tag, tagIndex) => (\n <span key={tagIndex} className=\"tag\">\n {tag}\n </span>\n ))}\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { RequestStore } from \"../shared/interfaces\";\n\nlet store: RequestStore | null = null;\n\nexport function saveRequestStore(value: RequestStore): void {\n store = value;\n}\n\nexport function loadRequestStore(): RequestStore | null {\n const value = store;\n store = null;\n return value;\n}\n\nexport function clearRequestStore(): void {\n store = null;\n}\n\ncustomElements.define(\n \"ai-portal.save-request-store\",\n createProviderClass(saveRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.load-request-store\",\n createProviderClass(loadRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.clear-request-store\",\n createProviderClass(clearRequestStore)\n);\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.loading{display:flex;justify-content:center;padding:8px}.group + .group{margin-top:15px}.group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.item{display:block}.item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.item::part(link):hover{background:rgba(0,0,0,0.04)}.item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions{cursor:auto}.item:not(:hover):not(.active) .actions{display:none}.working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.item:hover .working,\n.item.active .working{display:none}.load-more{display:flex;justify-content:center;align-items:center;height:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block;padding:3px 0}:host([hidden]){display:none}img{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"./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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"./images/border@2x.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, `:host{display:flex;flex-direction:column;align-items:center;max-width:1200px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.nav,\n.cases{list-style:none;padding:0;margin:0}.nav{display:flex;font-size:16px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.cases{display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:24px;margin-top:2em}.link{background:#fefefe;border:1px solid #e8e9ec;border-radius:12px;overflow:hidden;display:block}.link::part(link){display:flex;gap:0;flex-direction:column;height:218px}.title{width:100%;height:76px;padding:16px 16px 15px;color:#262626;border-top:1px solid #e8e9ec;font-weight:500;font-size:15px;line-height:22px}.title span{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder{width:100%;height:142px;background:linear-gradient(308deg,#dee9fc 0%,#fcfbfd 100%,#fbf9fe 100%);overflow:hidden}.summary{color:rgba(0,0,0,0.65);padding:27px 0 0 24px}.thumbnail span{display:block;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.link:hover{box-shadow:0px 4px 12px 0px rgba(0,0,0,0.06)}.link:hover .title{color:var(--elevo-color-brand)}.summary-1{display:block;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:237px 115px;background-repeat:no-repeat;background-position:0 0;padding:10px 0 0 10px}.summary-2{display:block;background:linear-gradient(90deg,#ffffff 0%,#e4ecfc 100%);padding:12px 15px 5px 15px;border-top-left-radius:12px}.summary-2 span{display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;color:#525971;line-height:22px;height:88px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"./images/background@2x.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, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background-color:#e1e3ec;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:694px 144px;background-position:top left;background-repeat:no-repeat;box-shadow:inset 0px 2px 5px 1px rgba(42,46,59,0.1);border-radius:20px;padding:12px}.container{position:relative}textarea{display:block;width:100%;padding:10px 16px 52px;color:var(--antd-input-color);background:rgba(255,255,255,0.8);border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:130px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{position:absolute;bottom:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.suggestions{margin-top:19px}.heading{display:flex;align-items:center;padding:0 5px;margin-bottom:8px}.icon{margin-right:5px}.carousel{overflow:hidden}.carousel + .carousel{margin-top:7px}.list{display:flex;width:max-content;list-style:none;margin:0;padding:0;font-size:12px}.item{background:rgba(255,255,255,0.4);border-radius:12px;border:1px solid #dcdee6;padding:12px;max-width:330px;cursor:pointer}.item:hover{background:rgba(255,255,255,0.5);border:1px solid rgba(37,64,255,0.3)}.list > li + li{margin-left:7px}.title{margin-bottom:4px}.content{color:rgba(0,0,0,0.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"./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, `:host{display:block;background-color:#fff;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"../mcp-tools/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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px}.list{list-style:none;margin:0;padding:0;margin-top:30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"../mcp-tools/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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedLegacyCruiseCanvasComponent","forwardRef","LegacyCruiseCanvasComponent","ForwardedCruiseCanvasComponent","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_CruiseCanvas_brand","WeakSet","_onShare","_P","_onTerminate","_Q","_onSubmitFeedback","_R","_onFeedbackOnView","_S","_onSwitchToChat","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_replay","_init_extra_replay","_init_replayDelay","_init_extra_replayDelay","_init_supports","_init_extra_supports","_init_showHiddenJobs","_init_extra_showHiddenJobs","_init_showFeedback","_init_extra_showFeedback","_init_showFeedbackOnView","_init_extra_showFeedbackOnView","_init_showUiSwitch","_init_extra_showUiSwitch","_init_hideMermaid","_init_extra_hideMermaid","_init_showJsxEditor","_init_extra_showJsxEditor","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_terminateEvent","_init_extra_terminateEvent","_get_terminateEvent","_init_feedbackSubmitEvent","_init_extra_feedbackSubmitEvent","detail","_get_feedbackSubmitEvent","_init_feedbackOnViewEvent","_init_extra_feedbackOnViewEvent","viewId","_get_feedbackOnViewEvent","_init_switch","_init_extra_switch","_get_switch","createRef","conversationId","_classPrivateFieldGet","v","_classPrivateFieldSet","initialRequest","taskId","task","jobs","replay","replayDelay","supports","showHiddenJobs","showFeedback","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","Component","React","onShare","onTerminate","onSubmitFeedback","onSwitchToChat","onFeedbackOnView","ref","_CruiseCanvas2","e","_set_shareEvent","_set_terminateEvent","_set_feedbackSubmitEvent","_set_feedbackOnViewEvent","_set_switch","c","_initClass","_applyDecs","shadowOptions","attribute","type","Boolean","Number","o","_","has","_checkInRHS","K","en","ASK_ANY_THING","COMMON_TASKS","zh","t","i18n","getFixedT","WrappedIcon","wrapBrick","_ChatBox","_ChatBox_brand","_handleMessageSubmit","ChatBox","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_suggestions","_init_extra_suggestions","_init_suggestionsLabel","_init_extra_suggestionsLabel","_init_messageSubmit","_init_extra_messageSubmit","value","_get_messageSubmit","disabled","placeholder","autoFocus","suggestions","suggestionsLabel","ChatBoxComponent","onSubmit","containerRef","useRef","textareaRef","setValue","useState","valueRef","handleSubmit","useCallback","currentTarget","handleChange","target","handleSubmitClick","useEffect","Promise","resolve","then","_textareaRef$current","focus","groupedSuggestions","useMemo","length","chunk","Math","max","ceil","handleSelectSuggestion","suggestion","content","setTimeout","_textareaRef$current2","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","onClick","lib","prefix","icon","src","tips","width","height","map","group","index","SuggestionCarousel","key","pixelPerSecond","onSelect","_ref2","carouselRef","listRef","x","setX","carousel","list","previousTimestamp","currentTimestamp","start","timer","offsetTime","mod","offsetWidth","step","timestamp","undefined","requestAnimationFrame","onMouseEnter","cancelAnimationFrame","onMouseLeave","addEventListener","removeEventListener","style","transform","item","title","_ChatBox2","_set_messageSubmit","styleTexts","styleText","_HomeContainer","HomeContainer","HomeContainerComponent","_HomeContainer2","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","WrappedLink","WrappedMiniActions","onActionClick","onVisibleChange","_ChatHistory","_ChatHistory_brand","_handleActionClick","_handleLoadMore","ChatHistory","_init_list","_init_extra_list","_init_actions","_init_extra_actions","_init_nextToken","_init_extra_nextToken","_init_actionClick","_init_extra_actionClick","_get_actionClick","_init_loadMore","_init_extra_loadMore","nextToken","_get_loadMore","actions","ChatHistoryComponent","root","onLoadMore","groups","groupMap","Map","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","groupKey","startTime","format","get","set","items","values","actionsVisible","setActionsVisible","nextRef","next","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","classNames","active","url","action","DONE_STATES","includes","state","spinning","theme","_ChatHistory2","_set_actionClick","_set_loadMore","WrappedMiniLineChart","_StatWithMiniChart","StatWithMiniChart","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_size","_init_extra_size","_init_lineColor","_init_extra_lineColor","_init_showArea","_init_extra_showArea","_init_min","_init_extra_min","_init_max","_init_extra_max","_init_xField","_init_extra_xField","_init_yField","_init_extra_yField","_init_data","_init_extra_data","label","size","lineColor","showArea","min","xField","yField","data","StatWithMiniChartComponent","chartProps","_extends","lineWidth","_StatWithMiniChart2","_ElevoLogo","ElevoLogo","ElevoLogoComponent","logoImage","alt","_ElevoLogo2","SIDEBAR_ICON","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","_handleLegacyActionClick","ElevoSidebar","_init_legacy","_init_extra_legacy","_init_username","_init_extra_username","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_historyActiveId","_init_extra_historyActiveId","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_links","_init_extra_links","_init_logout","_init_extra_logout","_get_logout","legacy","username","userInstanceId","behavior","logoUrl","newChatUrl","historyActiveId","historyUrlTemplate","historyActions","links","pullHistory","delay","pull","close","onLogout","onLegacyActionClick","collapsed","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","text","LOGOUT","SWITCH_LANGUAGE","historyRef","useImperativeHandle","_historyRef$current","WrappedIconButton","variant","NEW_CHAT","link","LegacyChatHistory","activeId","urlTemplate","onHistoryClick","WrappedDropdownActions","async","changeLanguage","language","split","getHistory","reload","WrappedEasyopsAvatar","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_variant","_init_extra_variant","tooltip","IconButtonComponent","btn","_IconButton2","ALL","_ShowCases","ShowCases","_init_taskUrlTemplate","_init_extra_taskUrlTemplate","taskUrlTemplate","ShowCasesComponent","Set","scenario","filter","activeGroup","setActiveGroup","filteredList","template","context","replace","_match","thumbUrl","backgroundImage","getBasePath","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","servers","_McpTools","McpTools","McpToolsComponent","platformMap","forEach","groupName","server","replaceAll","name","platform","find","_name","platformName","orderedNames","sort","_ref3","_ref4","nameA","nameB","indexA","indexOf","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","_ref6","_item$icon","fallback","description","_McpTools2","ICON_SHARE","ChatStreamComponent","LegacyChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","ChatStream","onSwitchToCanvas","_task$title","propShowFeedback","error","humanInputRef","resumedRef","skipToResults","watchAgain","useTaskDetail","pageTitle","taskState","taskDone","messages","inputRequiredJobId","lastToolCallJobId","useChatStream","views","flatMap","job","generatedView","view","submittingFeedback","setSubmittingFeedback","submittedFeedback","setSubmittedFeedback","setShowFeedback","feedbackDoneViews","setFeedbackDoneViews","handleSubmitFeedback","_resumedRef$current","prev","newSet","add","activeExpandedViewJobId","setActiveExpandedViewJobId","activeToolCallJobId","setActiveToolCallJobId","userClosedAside","setUserClosedAside","delayRef","taskAvailable","clearTimeout","getRuntime","applyPageTitle","handleHttpError","humanInput","jobId","input","_humanInputRef$curren","taskContextValue","streamContextValue","detectScrolledUpRef","manualScrolledRef","scrollContainerRef","scrollable","setScrollable","scrollContainer","contentContainer","firstElementChild","handleScroll","scrollTop","clientHeight","scrollHeight","ResizeObserver","scrollTo","top","scrollToBottom","activeToolCallJob","TaskContext","Provider","StreamContext","styles","container","header","left","right","ICON_CANVAS","main","narrow","msg","message","role","UserMessage","AssistantMessage","isLatest","NodeFeedback","feedback","hidden","chat","footer","ReplayToolbar","canChat","aside","expanded","Aside","ExpandedView","_ChatStream2","AI_EMPLOYEES","AVATARS","Avatar1","Avatar2","Avatar3","Avatar4","Avatar5","Avatar6","Avatar7","Avatar8","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","industries","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","industryIndex","groupIndex","_AIEmployees2","AGENTS","_AIAgents","AIAgents","AIAgentsComponent","_item$tags","tags","tag","tagIndex","_AIAgents2","store","customElements","define","createProviderClass","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}
|