blade-code 0.10.34 → 0.10.35
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/blade.js +2 -2
- package/dist/{chunk-p01t6c78.js → chunk-015fx09x.js} +2 -2
- package/dist/{chunk-16449n3m.js → chunk-031n82db.js} +1 -1
- package/dist/{chunk-jdms602t.js → chunk-0g7cjx1t.js} +1 -1
- package/dist/{chunk-0kqp5z4v.js → chunk-0hdsbwhf.js} +2 -2
- package/dist/{chunk-1qj0qms6.js → chunk-0zs3mn75.js} +1 -1
- package/dist/{chunk-pnjftj8t.js → chunk-132q0hyf.js} +2 -2
- package/dist/{chunk-prqgpq92.js → chunk-1jagjybs.js} +1 -1
- package/dist/{chunk-7a8k7ck4.js → chunk-2kzg80r3.js} +1 -1
- package/dist/{chunk-ba2dky3s.js → chunk-2y4qyct0.js} +1 -1
- package/dist/{chunk-c23bewtt.js → chunk-38ca5c9f.js} +1 -1
- package/dist/chunk-39wa7cfr.js +1 -0
- package/dist/{chunk-00gwp388.js → chunk-3nn4rth6.js} +1 -1
- package/dist/{chunk-95jjpdh9.js → chunk-3qmawdwf.js} +2 -2
- package/dist/{chunk-vfecv6cv.js → chunk-4en93rc4.js} +1 -1
- package/dist/{chunk-7afbvxqt.js → chunk-4ncddyay.js} +2 -2
- package/dist/{chunk-2sdbj0zz.js → chunk-4s6w24r3.js} +2 -2
- package/dist/chunk-51b7jb2s.js +1 -0
- package/dist/{chunk-rjg5rq90.js → chunk-6b1vvq1f.js} +1 -1
- package/dist/{chunk-wz6atg87.js → chunk-6r9jb465.js} +4 -4
- package/dist/{chunk-qd7r2w39.js → chunk-6v51xb9r.js} +1 -1
- package/dist/chunk-7cbe8yjn.js +1 -0
- package/dist/{chunk-fw1fm9cn.js → chunk-7jja0242.js} +1 -1
- package/dist/{chunk-sexhm0r5.js → chunk-7m5az521.js} +1 -1
- package/dist/{chunk-nq1wqpsx.js → chunk-83w81bma.js} +1 -1
- package/dist/{chunk-64f79ce5.js → chunk-9h41rm97.js} +2 -2
- package/dist/{chunk-fb80q06q.js → chunk-a1wjgf44.js} +2 -2
- package/dist/{chunk-y9a1jwnv.js → chunk-aytg9gw0.js} +2 -2
- package/dist/chunk-b7xdtjh8.js +1610 -0
- package/dist/{chunk-2gca6fvf.js → chunk-ck9r8h1h.js} +2 -2
- package/dist/chunk-cz1hb799.js +1 -0
- package/dist/chunk-d4hcy6p1.js +2 -0
- package/dist/{chunk-1142vwqa.js → chunk-dbwa9rwr.js} +2 -2
- package/dist/{chunk-bx99mx3k.js → chunk-eqj58q4r.js} +1 -1
- package/dist/chunk-fbxgxwfm.js +1 -0
- package/dist/chunk-gcyd5s5h.js +1 -0
- package/dist/{chunk-vqqxjgf2.js → chunk-gg179pdx.js} +1 -1
- package/dist/chunk-h7v23pw2.js +1 -0
- package/dist/chunk-hk36a59x.js +1 -0
- package/dist/{chunk-ysr3frmw.js → chunk-hq8cbzfv.js} +1 -1
- package/dist/{chunk-h34g9v9z.js → chunk-hymw69m4.js} +1 -1
- package/dist/{chunk-3ctcv013.js → chunk-js5whev4.js} +2 -2
- package/dist/{chunk-ag0z1q2q.js → chunk-k5gv2phs.js} +1 -1
- package/dist/chunk-mkmcwc5r.js +1 -0
- package/dist/{chunk-58gk92k3.js → chunk-nwtgx6p6.js} +1 -1
- package/dist/{chunk-fjbptkh2.js → chunk-pf8rybpm.js} +2 -2
- package/dist/{chunk-b9y9mc7f.js → chunk-pmxqjb29.js} +1 -1
- package/dist/chunk-pn2e99pn.js +1 -0
- package/dist/{chunk-crwa61tq.js → chunk-q30azbe2.js} +1 -1
- package/dist/{chunk-5v642sh3.js → chunk-qf357j45.js} +2 -2
- package/dist/chunk-qhfbdp5e.js +1 -0
- package/dist/{chunk-1ep6bcpc.js → chunk-r84jsjnc.js} +1 -1
- package/dist/chunk-r9j56qcs.js +1 -0
- package/dist/{chunk-d3gx05ph.js → chunk-rcp5maxt.js} +3 -3
- package/dist/{chunk-v6x80gdg.js → chunk-rwtgrs8d.js} +1 -1
- package/dist/chunk-sbyyg6qg.js +204 -0
- package/dist/chunk-se9krwes.js +6 -0
- package/dist/{chunk-7ryqs453.js → chunk-sqp79c1a.js} +2 -2
- package/dist/{chunk-dsxjgty6.js → chunk-t1zs40rj.js} +2 -2
- package/dist/chunk-tencwrxf.js +1 -0
- package/dist/{chunk-5knt529c.js → chunk-vpe44cnj.js} +2 -2
- package/dist/chunk-wf7ycftn.js +1 -0
- package/dist/{chunk-sgyk3gq1.js → chunk-wmvj44cr.js} +2 -2
- package/dist/{chunk-d90tnjst.js → chunk-xf03b657.js} +1 -1
- package/dist/{chunk-mr0xs5t4.js → chunk-y5kp6fmy.js} +1 -1
- package/dist/{chunk-t1z46fqz.js → chunk-ytec29ph.js} +1 -1
- package/dist/chunk-z45qe8dg.js +2 -0
- package/dist/chunk-zhr1btfv.js +10 -0
- package/dist/{chunk-3j6bsp1q.js → chunk-zj29g9rc.js} +2 -2
- package/dist/{chunk-dvf4cfye.js → chunk-znp4bexg.js} +1 -1
- package/dist/web/assets/{ChatView-B7_Um8KR.js → ChatView-Dx9j7CGg.js} +2 -2
- package/dist/web/assets/{CodeBlockHighlighter-JzE91vkT.js → CodeBlockHighlighter-CZADKR6S.js} +1 -1
- package/dist/web/assets/{FilePreview-BTbtoUBJ.js → FilePreview-BOIDa_oJ.js} +1 -1
- package/dist/web/assets/{MarkdownRenderer-IaPtOh2w.js → MarkdownRenderer-DXsfHVUX.js} +3 -3
- package/dist/web/assets/{SettingsModal-CPgWPfZ2.js → SettingsModal-lQveNhC6.js} +1 -1
- package/dist/web/assets/{TaskSwitcher-D4RZxQKp.js → TaskSwitcher-BSrmpJ2u.js} +1 -1
- package/dist/web/assets/{TerminalPanel-yWbQfbYa.js → TerminalPanel-BFre9Shc.js} +1 -1
- package/dist/web/assets/{index-BnCT8SxR.js → index-DGZjm9wT.js} +4 -4
- package/dist/web/assets/{session-events-BZao_jMQ.js → session-events-Dk20sSDo.js} +19 -19
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunk-2c8d4q3y.js +0 -1
- package/dist/chunk-5f956qbf.js +0 -1
- package/dist/chunk-87ge6dkk.js +0 -2
- package/dist/chunk-958rac3y.js +0 -1
- package/dist/chunk-ap5qpeh4.js +0 -1
- package/dist/chunk-c6fq52m9.js +0 -1
- package/dist/chunk-dvyv53nz.js +0 -1
- package/dist/chunk-ecsj4njh.js +0 -1
- package/dist/chunk-epyys9aw.js +0 -6
- package/dist/chunk-g0gqxn3c.js +0 -2
- package/dist/chunk-h3cvnbah.js +0 -1
- package/dist/chunk-jh6b81rb.js +0 -10
- package/dist/chunk-mxffhqe5.js +0 -1610
- package/dist/chunk-qr8j2mr6.js +0 -1
- package/dist/chunk-s1j86hhh.js +0 -204
- package/dist/chunk-s3sv04hf.js +0 -1
- package/dist/chunk-sjc7bm23.js +0 -1
- package/dist/chunk-tvrxzsna.js +0 -1
- package/dist/chunk-vhpvt5v8.js +0 -1
- package/dist/chunk-zp9p9tk6.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as n,e as Qe,g as $t,j as e}from"./vendor-react-DG5dkZ_t.js";import{u as ge,j as D,r as G,D as $e,e as Ie,o as Je,g as Ke,P as Xt,p as Zt,q as ea,S as ta,a as Le,t as It,v as Pe,l as aa,b as sa,w as na,K as ra,x as la}from"./index-BnCT8SxR.js";import{_ as ie,n as se,o as ke,p as dt,q as ct,r as Kt}from"./vendor-radix-DXRuAJHH.js";import{a as Te,i as We,f as Ue,L as ne,k as oa,_ as vt,C as ft,D as ut,X as He,y as _t,a8 as ia,a3 as da,P as mt,T as ze,a9 as ca,aa as ua,u as ht,Z as Ut,O as ma,ab as xa,ac as pa,ad as fa}from"./vendor-icons-ICv1v-tf.js";import"./session-events-BZao_jMQ.js";var ha=function(t){return function(a,s){var l=n.useRef(!1);t(function(){return function(){l.current=!1}},[]),t(function(){if(!l.current)l.current=!0;else return a()},s)}},zt=function(t){return typeof t=="function"},Ee=function(t){var a=n.useRef(t);a.current=n.useMemo(function(){return t},[t]);var s=n.useRef(void 0);return s.current||(s.current=function(){for(var l=[],r=0;r<arguments.length;r++)l[r]=arguments[r];return a.current.apply(this,l)}),s.current};const at=ha(n.useEffect);var Ht=function(t,a){var s=a.manual,l=a.ready,r=l===void 0?!0:l,m=a.defaultParams,h=m===void 0?[]:m,g=a.refreshDeps,u=g===void 0?[]:g,i=a.refreshDepsAction,N=n.useRef(!1);return N.current=!1,at(function(){!s&&r&&(N.current=!0,t.run.apply(t,ie([],se(h),!1)))},[r]),at(function(){N.current||s||(N.current=!0,i?i():t.refresh())},ie([],se(u),!1)),{onBefore:function(){if(!r)return{stopNow:!0}}}};Ht.onInit=function(t){var a=t.ready,s=a===void 0?!0:a,l=t.manual;return{loading:!l&&s}};function xt(t,a){if(t===a)return!0;for(var s=0;s<t.length;s++)if(!Object.is(t[s],a[s]))return!1;return!0}var qt=function(t,a){var s=n.useRef({deps:a,obj:void 0,initialized:!1}).current;return(s.initialized===!1||!xt(s.deps,a))&&(s.deps=a,s.obj=t(),s.initialized=!0),s.obj};function nt(t){var a=n.useRef(t);return a.current=t,a}var Ye=function(t){var a=nt(t);n.useEffect(function(){return function(){a.current()}},[])},Xe=new Map,ga=function(t,a,s){var l=Xe.get(t);l!=null&&l.timer&&clearTimeout(l.timer);var r=void 0;a>-1&&(r=setTimeout(function(){Xe.delete(t)},a)),Xe.set(t,ke(ke({},s),{timer:r}))},ba=function(t){return Xe.get(t)},Ze=new Map,va=function(t){return Ze.get(t)},ka=function(t,a){Ze.set(t,a),a.then(function(s){return Ze.delete(t),s}).catch(function(){Ze.delete(t)})},De={},ja=function(t,a){De[t]&&De[t].forEach(function(s){return s(a)})},rt=function(t,a){return De[t]||(De[t]=[]),De[t].push(a),function(){var l=De[t].indexOf(a);De[t].splice(l,1)}},ya=function(t,a){var s=a.cacheKey,l=a.cacheTime,r=l===void 0?5*60*1e3:l,m=a.staleTime,h=m===void 0?0:m,g=a.setCache,u=a.getCache,i=n.useRef(void 0),N=n.useRef(void 0),c=function(k,p){g?g(p):ga(k,r,p),ja(k,p.data)},b=function(k,p){return p===void 0&&(p=[]),u?u(p):ba(k)};return qt(function(){if(s){var k=b(s);k&&Object.hasOwnProperty.call(k,"data")&&(t.state.data=k.data,t.state.params=k.params,(h===-1||Date.now()-k.time<=h)&&(t.state.loading=!1)),i.current=rt(s,function(p){t.setState({data:p})})}},[]),Ye(function(){var k;(k=i.current)===null||k===void 0||k.call(i)}),s?{onBefore:function(k){var p=b(s,k);return!p||!Object.hasOwnProperty.call(p,"data")?{}:h===-1||Date.now()-p.time<=h?{loading:!1,data:p==null?void 0:p.data,error:void 0,returnNow:!0}:{data:p==null?void 0:p.data,error:void 0}},onRequest:function(k,p){var E=va(s);return E&&E!==N.current?{servicePromise:E}:(E=k.apply(void 0,ie([],se(p),!1)),N.current=E,ka(s,E),{servicePromise:E})},onSuccess:function(k,p){var E;s&&((E=i.current)===null||E===void 0||E.call(i),c(s,{data:k,params:p,time:Date.now()}),i.current=rt(s,function(w){t.setState({data:w})}))},onMutate:function(k){var p;s&&((p=i.current)===null||p===void 0||p.call(i),c(s,{data:k,params:t.state.params,time:Date.now()}),i.current=rt(s,function(E){t.setState({data:E})}))}}:{}};function Na(t){var a=typeof t;return t!=null&&(a=="object"||a=="function")}var gt=Na,Ea=typeof Qe=="object"&&Qe&&Qe.Object===Object&&Qe,wa=Ea,Ca=wa,Sa=typeof self=="object"&&self&&self.Object===Object&&self,Aa=Ca||Sa||Function("return this")(),Gt=Aa,Fa=Gt,Pa=function(){return Fa.Date.now()},Ba=Pa,Ta=/\s/;function Ma(t){for(var a=t.length;a--&&Ta.test(t.charAt(a)););return a}var Ra=Ma,Oa=Ra,Da=/^\s+/;function La(t){return t&&t.slice(0,Oa(t)+1).replace(Da,"")}var $a=La,Ia=Gt,Ka=Ia.Symbol,Wt=Ka,kt=Wt,Jt=Object.prototype,_a=Jt.hasOwnProperty,Ua=Jt.toString,Ge=kt?kt.toStringTag:void 0;function za(t){var a=_a.call(t,Ge),s=t[Ge];try{t[Ge]=void 0;var l=!0}catch{}var r=Ua.call(t);return l&&(a?t[Ge]=s:delete t[Ge]),r}var Ha=za,qa=Object.prototype,Ga=qa.toString;function Wa(t){return Ga.call(t)}var Ja=Wa,jt=Wt,Ya=Ha,Va=Ja,Qa="[object Null]",Xa="[object Undefined]",yt=jt?jt.toStringTag:void 0;function Za(t){return t==null?t===void 0?Xa:Qa:yt&&yt in Object(t)?Ya(t):Va(t)}var es=Za;function ts(t){return t!=null&&typeof t=="object"}var as=ts,ss=es,ns=as,rs="[object Symbol]";function ls(t){return typeof t=="symbol"||ns(t)&&ss(t)==rs}var os=ls,is=$a,Nt=gt,ds=os,Et=NaN,cs=/^[-+]0x[0-9a-f]+$/i,us=/^0b[01]+$/i,ms=/^0o[0-7]+$/i,xs=parseInt;function ps(t){if(typeof t=="number")return t;if(ds(t))return Et;if(Nt(t)){var a=typeof t.valueOf=="function"?t.valueOf():t;t=Nt(a)?a+"":a}if(typeof t!="string")return t===0?t:+t;t=is(t);var s=us.test(t);return s||ms.test(t)?xs(t.slice(2),s?2:8):cs.test(t)?Et:+t}var fs=ps,hs=gt,lt=Ba,wt=fs,gs="Expected a function",bs=Math.max,vs=Math.min;function ks(t,a,s){var l,r,m,h,g,u,i=0,N=!1,c=!1,b=!0;if(typeof t!="function")throw new TypeError(gs);a=wt(a)||0,hs(s)&&(N=!!s.leading,c="maxWait"in s,m=c?bs(wt(s.maxWait)||0,a):m,b="trailing"in s?!!s.trailing:b);function k(A){var F=l,R=r;return l=r=void 0,i=A,h=t.apply(R,F),h}function p(A){return i=A,g=setTimeout(B,a),N?k(A):h}function E(A){var F=A-u,R=A-i,j=a-F;return c?vs(j,m-R):j}function w(A){var F=A-u,R=A-i;return u===void 0||F>=a||F<0||c&&R>=m}function B(){var A=lt();if(w(A))return I(A);g=setTimeout(B,E(A))}function I(A){return g=void 0,b&&l?k(A):(l=r=void 0,h)}function y(){g!==void 0&&clearTimeout(g),i=0,l=u=r=g=void 0}function S(){return g===void 0?h:I(lt())}function U(){var A=lt(),F=w(A);if(l=arguments,r=this,u=A,F){if(g===void 0)return p(u);if(c)return clearTimeout(g),g=setTimeout(B,a),k(u)}return g===void 0&&(g=setTimeout(B,a)),h}return U.cancel=y,U.flush=S,U}var Yt=ks;const Vt=$t(Yt);var js=function(t,a){var s=a.debounceWait,l=a.debounceLeading,r=a.debounceTrailing,m=a.debounceMaxWait,h=n.useRef(void 0),g=n.useMemo(function(){var u={};return l!==void 0&&(u.leading=l),r!==void 0&&(u.trailing=r),m!==void 0&&(u.maxWait=m),u},[l,r,m]);return n.useEffect(function(){if(s){var u=t.runAsync.bind(t);return h.current=Vt(function(i){i()},s,g),t.runAsync=function(){for(var i=[],N=0;N<arguments.length;N++)i[N]=arguments[N];return new Promise(function(c,b){var k;(k=h.current)===null||k===void 0||k.call(h,function(){u.apply(void 0,ie([],se(i),!1)).then(c).catch(b)})})},function(){var i;(i=h.current)===null||i===void 0||i.cancel(),t.runAsync=u}}},[s,g]),s?{onCancel:function(){var u;(u=h.current)===null||u===void 0||u.cancel()}}:{}},ys=function(t,a){var s=a.loadingDelay,l=a.ready,r=n.useRef(void 0);if(!s)return{};var m=function(){r.current&&clearTimeout(r.current)};return{onBefore:function(){return m(),l!==!1&&(r.current=setTimeout(function(){t.setState({loading:!0})},s)),{loading:!1}},onFinally:function(){m()},onCancel:function(){m()}}},Ve=!!(typeof window<"u"&&window.document&&window.document.createElement);function bt(){return Ve?document.visibilityState!=="hidden":!0}var et=new Set;function Ns(t){return et.add(t),function(){et.has(t)&&et.delete(t)}}if(Ve){var Es=function(){bt()&&et.forEach(function(t){return t()})};window.addEventListener("visibilitychange",Es,!1)}var ws=function(t,a){var s=a.pollingInterval,l=a.pollingWhenHidden,r=l===void 0?!0:l,m=a.pollingErrorRetryCount,h=m===void 0?-1:m,g=n.useRef(void 0),u=n.useRef(void 0),i=n.useRef(0),N=function(){var c;g.current&&clearTimeout(g.current),(c=u.current)===null||c===void 0||c.call(u)};return at(function(){s||N()},[s]),s?{onBefore:function(){N()},onError:function(){i.current+=1},onSuccess:function(){i.current=0},onFinally:function(){h===-1||h!==-1&&i.current<=h?g.current=setTimeout(function(){!r&&!bt()?u.current=Ns(function(){t.refresh()}):t.refresh()},s):i.current=0},onCancel:function(){N()}}:{}};function Cs(t,a){var s=!1;return function(){for(var l=[],r=0;r<arguments.length;r++)l[r]=arguments[r];s||(s=!0,t.apply(void 0,ie([],se(l),!1)),setTimeout(function(){s=!1},a))}}var Ss=function(){return Ve&&typeof navigator.onLine<"u"?navigator.onLine:!0},tt=new Set;function As(t){return tt.add(t),function(){tt.has(t)&&tt.delete(t)}}if(Ve){var Ct=function(){!bt()||!Ss()||tt.forEach(function(t){return t()})};window.addEventListener("visibilitychange",Ct,!1),window.addEventListener("focus",Ct,!1)}var Fs=function(t,a){var s=a.refreshOnWindowFocus,l=a.focusTimespan,r=l===void 0?5e3:l,m=n.useRef(void 0),h=function(){var g;(g=m.current)===null||g===void 0||g.call(m)};return n.useEffect(function(){if(s){var g=Cs(t.refresh.bind(t),r);m.current=As(function(){g()})}return function(){h()}},[s,r]),Ye(function(){h()}),{}},Ps=function(t,a){var s=a.retryInterval,l=a.retryCount,r=n.useRef(void 0),m=n.useRef(0),h=n.useRef(!1);return l?{onBefore:function(){h.current||(m.current=0),h.current=!1,r.current&&clearTimeout(r.current)},onSuccess:function(){m.current=0},onError:function(){if(m.current+=1,l===-1||m.current<=l){var g=s??Math.min(1e3*Math.pow(2,m.current),3e4);r.current=setTimeout(function(){h.current=!0,t.refresh()},g)}else m.current=0},onCancel:function(){m.current=0,r.current&&clearTimeout(r.current)}}:{}},Bs=Yt,Ts=gt,Ms="Expected a function";function Rs(t,a,s){var l=!0,r=!0;if(typeof t!="function")throw new TypeError(Ms);return Ts(s)&&(l="leading"in s?!!s.leading:l,r="trailing"in s?!!s.trailing:r),Bs(t,a,{leading:l,maxWait:a,trailing:r})}var Os=Rs;const Ds=$t(Os);var Ls=function(t,a){var s=a.throttleWait,l=a.throttleLeading,r=a.throttleTrailing,m=n.useRef(void 0),h={};return l!==void 0&&(h.leading=l),r!==void 0&&(h.trailing=r),n.useEffect(function(){if(s){var g=t.runAsync.bind(t);return m.current=Ds(function(u){u()},s,h),t.runAsync=function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return new Promise(function(N,c){var b;(b=m.current)===null||b===void 0||b.call(m,function(){g.apply(void 0,ie([],se(u),!1)).then(N).catch(c)})})},function(){var u;t.runAsync=g,(u=m.current)===null||u===void 0||u.cancel()}}},[s,l,r]),s?{onCancel:function(){var g;(g=m.current)===null||g===void 0||g.cancel()}}:{}},$s=function(t){n.useEffect(function(){var a=t==null?void 0:t();if(!(a&&typeof a=="object"&&typeof a.then=="function"))return a},[])},Is=function(){var t=se(n.useState({}),2),a=t[1];return Ee(function(){return a({})})},Ks=function(){function t(a,s,l,r){r===void 0&&(r={}),this.serviceRef=a,this.options=s,this.subscribe=l,this.initState=r,this.pluginImpls=[],this.count=0,this.state={loading:!1,params:void 0,data:void 0,error:void 0},this.state=ke(ke(ke({},this.state),{loading:!s.manual}),r)}return t.prototype.setState=function(a){a===void 0&&(a={}),this.state=ke(ke({},this.state),a),this.subscribe()},t.prototype.runPluginHandler=function(a){for(var s=[],l=1;l<arguments.length;l++)s[l-1]=arguments[l];var r=this.pluginImpls.map(function(m){var h;return(h=m[a])===null||h===void 0?void 0:h.call.apply(h,ie([m],se(s),!1))}).filter(Boolean);return Object.assign.apply(Object,ie([{}],se(r),!1))},t.prototype.runAsync=function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return dt(this,void 0,void 0,function(){var l,r,m,h,g,u,i,N,c,b,k,p,E,w,B,I,y,S,U,A,F;return ct(this,function(R){switch(R.label){case 0:if(this.count+=1,l=this.count,r=this.runPluginHandler("onBefore",a),m=r.stopNow,h=m===void 0?!1:m,g=r.returnNow,u=g===void 0?!1:g,i=Kt(r,["stopNow","returnNow"]),h)return[2,Promise.resolve(i.data)];if(this.setState(ke({loading:!0,params:a},i)),u)return[2,Promise.resolve(i.data)];(E=(p=this.options).onBefore)===null||E===void 0||E.call(p,a),R.label=1;case 1:return R.trys.push([1,3,,4]),N=this.runPluginHandler("onRequest",this.serviceRef.current,a).servicePromise,N||(N=(k=this.serviceRef).current.apply(k,ie([],se(a),!1))),[4,N];case 2:return c=R.sent(),l!==this.count?[2,new Promise(function(){})]:(this.setState({data:c,error:void 0,loading:!1}),(B=(w=this.options).onSuccess)===null||B===void 0||B.call(w,c,a),this.runPluginHandler("onSuccess",c,a),(y=(I=this.options).onFinally)===null||y===void 0||y.call(I,a,c,void 0),l===this.count&&this.runPluginHandler("onFinally",a,c,void 0),[2,c]);case 3:if(b=R.sent(),l!==this.count)return[2,new Promise(function(){})];throw this.setState({error:b,loading:!1}),(U=(S=this.options).onError)===null||U===void 0||U.call(S,b,a),this.runPluginHandler("onError",b,a),(F=(A=this.options).onFinally)===null||F===void 0||F.call(A,a,void 0,b),l===this.count&&this.runPluginHandler("onFinally",a,void 0,b),b;case 4:return[2]}})})},t.prototype.run=function(){for(var a=this,s=[],l=0;l<arguments.length;l++)s[l]=arguments[l];this.runAsync.apply(this,ie([],se(s),!1)).catch(function(r){a.options.onError||console.error(r)})},t.prototype.cancel=function(){this.count+=1,this.setState({loading:!1}),this.runPluginHandler("onCancel")},t.prototype.refresh=function(){this.run.apply(this,ie([],se(this.state.params||[]),!1))},t.prototype.refreshAsync=function(){return this.runAsync.apply(this,ie([],se(this.state.params||[]),!1))},t.prototype.mutate=function(a){var s=zt(a)?a(this.state.data):a;this.runPluginHandler("onMutate",s),this.setState({data:s})},t}();function _s(t,a,s){a===void 0&&(a={}),s===void 0&&(s=[]);var l=a.manual,r=l===void 0?!1:l,m=a.ready,h=m===void 0?!0:m,g=Kt(a,["manual","ready"]),u=ke({manual:r,ready:h},g),i=nt(t),N=Is(),c=qt(function(){var b=s.map(function(k){var p;return(p=k==null?void 0:k.onInit)===null||p===void 0?void 0:p.call(k,u)}).filter(Boolean);return new Ks(i,u,N,Object.assign.apply(Object,ie([{}],se(b),!1)))},[]);return c.options=u,c.pluginImpls=s.map(function(b){return b(c,u)}),$s(function(){if(!r&&h){var b=c.state.params||a.defaultParams||[];c.run.apply(c,ie([],se(b),!1))}}),Ye(function(){c.cancel()}),{loading:c.state.loading,data:c.state.data,error:c.state.error,params:c.state.params||[],cancel:Ee(c.cancel.bind(c)),refresh:Ee(c.refresh.bind(c)),refreshAsync:Ee(c.refreshAsync.bind(c)),run:Ee(c.run.bind(c)),runAsync:Ee(c.runAsync.bind(c)),mutate:Ee(c.mutate.bind(c))}}function _e(t,a,s){return _s(t,a,ie(ie([],se([]),!1),[js,ys,ws,Fs,Ls,Ht,ya,Ps],!1))}function st(t,a){if(Ve){if(!t)return a;var s;return zt(t)?s=t():"current"in t?s=t.current:s=t,s}}var Us=function(t){var a=function(s,l,r){var m=n.useRef(!1),h=n.useRef([]),g=n.useRef([]),u=n.useRef(void 0);t(function(){var i,N=Array.isArray(r)?r:[r],c=N.map(function(b){return st(b)});if(!m.current){m.current=!0,h.current=c,g.current=l,u.current=s();return}(c.length!==h.current.length||!xt(h.current,c)||!xt(g.current,l))&&((i=u.current)===null||i===void 0||i.call(u),h.current=c,g.current=l,u.current=s())}),Ye(function(){var i;(i=u.current)===null||i===void 0||i.call(u),m.current=!1})};return a},zs=Us(n.useEffect);function Hs(){var t=(typeof global>"u"?"undefined":typeof global)=="object"&&global&&global.Object===Object&&global,a=typeof self=="object"&&self&&self.Object===Object&&self;return t||a}Hs()||(global.Date=Date);function qs(t,a){var s,l=nt(t),r=(s=a==null?void 0:a.wait)!==null&&s!==void 0?s:1e3,m=n.useMemo(function(){return Vt(function(){for(var h=[],g=0;g<arguments.length;g++)h[g]=arguments[g];return l.current.apply(l,ie([],se(h),!1))},r,a)},[]);return Ye(function(){m.cancel()}),{run:m,cancel:m.cancel,flush:m.flush}}function Gs(t,a,s){s===void 0&&(s={});var l=s.enable,r=l===void 0?!0:l,m=nt(a);zs(function(){if(r){var h=st(s.target,window);if(h!=null&&h.addEventListener){var g=function(i){return m.current(i)},u=Array.isArray(t)?t:[t];return u.forEach(function(i){h.addEventListener(i,g,{capture:s.capture,once:s.once,passive:s.passive})}),function(){u.forEach(function(i){h.removeEventListener(i,g,{capture:s.capture})})}}}},[t,s.capture,s.once,s.passive,r],s.target)}var Ws=function(t){return t===document||t===document.documentElement||t===document.body?Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop):t.scrollTop},St=function(t){return t.scrollHeight||Math.max(document.documentElement.scrollHeight,document.body.scrollHeight)},Js=function(t){return t.clientHeight||Math.max(document.documentElement.clientHeight,document.body.clientHeight)},Ys=function(t,a){a===void 0&&(a={});var s=a.target,l=a.isNoMore,r=a.threshold,m=r===void 0?100:r,h=a.direction,g=h===void 0?"bottom":h,u=a.reloadDeps,i=u===void 0?[]:u,N=a.manual,c=a.onBefore,b=a.onSuccess,k=a.onError,p=a.onFinally,E=se(n.useState(),2),w=E[0],B=E[1],I=se(n.useState(!1),2),y=I[0],S=I[1],U=g==="top",A=n.useRef(void 0),F=n.useRef(0),R=n.useMemo(function(){return l?l(w):!1},[w]),j=_e(function(L){return dt(void 0,void 0,void 0,function(){var C;return ct(this,function(v){switch(v.label){case 0:return[4,t(L)];case 1:return C=v.sent(),[2,{currentData:C,lastData:L}]}})})},{manual:N,onFinally:function(L,C,v){S(!1),p==null||p(C==null?void 0:C.currentData,v)},onBefore:function(){return c==null?void 0:c()},onSuccess:function(L){var C,v,M;L.lastData?B(ke(ke({},L.currentData),{list:U?ie(ie([],se(L.currentData.list),!1),se((v=L.lastData.list)!==null&&v!==void 0?v:[]),!1):ie(ie([],se((M=L.lastData.list)!==null&&M!==void 0?M:[]),!1),se(L.currentData.list),!1)})):B(ke(ke({},L.currentData),{list:ie([],se((C=L.currentData.list)!==null&&C!==void 0?C:[]),!1)})),setTimeout(function(){requestAnimationFrame(function(){if(U){var V=st(s);if(V=V===document?document.documentElement:V,V){var pe=St(V);V.scrollTo(0,pe-F.current)}}else te()})}),b==null||b(L.currentData)},onError:function(L){return k==null?void 0:k(L)}}),O=j.loading,Q=j.error,Y=j.run,Z=j.runAsync,ee=j.cancel,J=Ee(function(){R||(S(!0),Y(w))}),X=function(L){return dt(void 0,void 0,void 0,function(){var C;return ct(this,function(v){switch(v.label){case 0:return[4,Z(L)];case 1:return C=v.sent(),[2,C.currentData]}})})},T=Ee(function(){return R?Promise.reject():(S(!0),X(w))}),K=function(){return S(!1),Y()},q=function(){return S(!1),X()},te=function(){var L=st(s);if(L){var C=L===document?document.documentElement:L,v=Ws(C),M=St(C),V=Js(C);U?(A.current!==void 0&&A.current>v&&v<=m&&J(),A.current=v,F.current=M-v):M-v<=V+m&&J()}};return Gs("scroll",function(){O||y||te()},{target:s}),at(function(){Y()},ie([],se(i),!1)),{data:w,loading:!y&&O,error:Q,loadingMore:y,noMore:R,loadMore:J,loadMoreAsync:T,reload:Ee(K),reloadAsync:Ee(q),mutate:B,cancel:ee}};const At={connected:"text-[#16A34A] dark:text-[#22C55E]",connecting:"text-[#2563eb] dark:text-[#3b82f6]",reconnecting:"text-[#2563eb] dark:text-[#60a5fa]",offline:"text-[#f59e0b]",error:"text-[#ef4444]"},Vs={connected:"mcp.status.connected",connecting:"mcp.status.connecting",reconnecting:"mcp.status.reconnecting",offline:"mcp.status.offline",error:"mcp.status.error"},Qs={disabled:"mcp.oauth.status.disabled",unavailable:"mcp.oauth.status.unavailable",unauthenticated:"mcp.oauth.status.unauthenticated",authorizing:"mcp.oauth.status.authorizing",authenticated:"mcp.oauth.status.authenticated",error:"mcp.oauth.status.error"},Xs={Official:"mcp.catalog.tag.official",Popular:"mcp.catalog.tag.popular",Community:"mcp.catalog.tag.community"},Ft=20,Zs=["debug","info","notice","warning","error","critical","alert","emergency"],Pt=(t,a)=>t.status!=="reconnecting"||!t.recovery?a(Vs[t.status]):a("mcp.status.recoveringAttempt",{attempt:t.recovery.attempt,max:t.recovery.maxAttempts}),en=async()=>G("/mcp"),tn=async t=>G(`/mcp/${encodeURIComponent(t)}/logs?limit=20`),an="mcp server @modelcontextprotocol",sn=3,Qt=t=>{var a;return((a=t.split("/").pop())==null?void 0:a.replace(/^server-/,""))||t},nn=async(t,a)=>{const s=t&&t.length>=sn?t:an,l=`https://registry.npmjs.org/-/v1/search?text=${encodeURIComponent(s)}&size=${Ft}&from=${a}`,r=await G(l);return{list:r.objects.map(m=>m.package),total:r.total,hasMore:a+Ft<r.total}};function rn({active:t}){const a=ge(),[s,l]=n.useState("installed"),[r,m]=n.useState(!1),[h,g]=n.useState(null),[u,i]=n.useState(""),[N,c]=n.useState(null),[b,k]=n.useState(null),[p,E]=n.useState(null),[w,B]=n.useState(null),[I,y]=n.useState(null),[S,U]=n.useState(""),[A,F]=n.useState(null),[R,j]=n.useState(!1),[O,Q]=n.useState(null),[Y,Z]=n.useState(null),[ee,J]=n.useState(""),[X,T]=n.useState(""),[K,q]=n.useState(null),[te,L]=n.useState(null),C=n.useRef(null),{run:v}=qs(d=>{T(d)},{wait:500}),{data:M=[],loading:V,error:pe,run:Ae,runAsync:le}=_e(en,{refreshDeps:[t],ready:t,onSuccess:d=>{d.length>0&&!h&&g(d[0].id)}}),{data:he,loading:we,error:ce,runAsync:Ce}=_e(tn,{manual:!0}),{data:de,loading:re,loadingMore:f,noMore:_,error:ae,reload:oe}=Ys(async d=>{var H;const W=((H=d==null?void 0:d.list)==null?void 0:H.length)??0;return nn(X,W)},{target:C,isNoMore:d=>!(d!=null&&d.hasMore),reloadDeps:[X],manual:!t||s!=="catalog"}),{runAsync:xe,loading:fe,error:be}=_e(async d=>{await G("/mcp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:d.name,config:d})})},{manual:!0,onSuccess:()=>{le(),m(!1),L(null),q(null)},onError:()=>{q(null)}}),Fe=n.useMemo(()=>{const d=u.trim().toLowerCase();return d?M.filter(W=>[W.name,W.endpoint,W.description].some(H=>H.toLowerCase().includes(d))):M},[u,M]),P=n.useMemo(()=>Fe.find(d=>d.id===h)??Fe[0],[Fe,h]),Be=n.useMemo(()=>{if(!P)return[];const d=(P.prompts??[]).flatMap(H=>H.arguments.map(ye=>({key:`prompt:${H.name}:${ye.name}`,label:`${H.name}.${ye.name}`,reference:{type:"prompt",name:H.name},argument:ye.name}))),W=(P.resourceTemplates??[]).flatMap(H=>(H.variables??[]).map(ye=>({key:`resource:${H.uriTemplate}:${ye}`,label:`${H.uriTemplate} · ${ye}`,reference:{type:"resource",uri:H.uriTemplate},argument:ye})));return[...d,...W]},[P]),ve=Be.find(d=>d.key===I)??Be[0];n.useEffect(()=>{if(!t||!M.some(W=>W.oauthStatus==="authorizing"||W.status==="connecting"||W.status==="reconnecting"))return;const d=window.setInterval(()=>{le()},1e3);return()=>window.clearInterval(d)},[t,le,M]),n.useEffect(()=>{b&&M.some(d=>d.name===b.serverName&&(d.oauthStatus==="authenticated"||d.oauthStatus==="disabled"||d.oauthStatus==="unavailable"))&&k(null)},[b,M]),n.useEffect(()=>{!t||s!=="installed"||!P||Ce(P.name).catch(()=>{})},[t,Ce,P,s]);const Me=async(d,W)=>{E({type:d,name:W}),c(null);try{const H=d==="delete"?"":`/${d}`;await G(`/mcp/${encodeURIComponent(W)}${H}`,{method:d==="delete"?"DELETE":"POST"}),await le(),d==="delete"&&(Z(null),g(null))}catch(H){c(H instanceof Error?H.message:a(d==="connect"?"mcp.error.connectFailed":d==="disconnect"?"mcp.error.disconnectFailed":"mcp.error.deleteFailed"))}finally{E(null)}},x=async(d,W)=>{E({type:d,name:W.name}),c(null);try{if(d==="login"){const H=await G(`/mcp/${encodeURIComponent(W.name)}/oauth/login`,{method:"POST"});k({serverName:W.name,url:H.authorizationUrl})}else await G(`/mcp/${encodeURIComponent(W.name)}/oauth/logout`,{method:"POST"}),k(null);await le()}catch(H){c(H instanceof Error?H.message:a(d==="login"?"mcp.error.loginFailed":"mcp.error.logoutFailed"))}finally{E(null)}},ue=async(d,W)=>{B(W),c(null);try{await G(`/mcp/${encodeURIComponent(d.name)}/logging-level`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:W})}),await le(),Ce(d.name).catch(()=>{})}catch(H){c(H instanceof Error?H.message:a("mcp.error.loggingLevelFailed"))}finally{B(null)}},Ne=async d=>{if(ve){j(!0),Q(null),F(null);try{const W=await G(`/mcp/${encodeURIComponent(d.name)}/complete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reference:ve.reference,argument:{name:ve.argument,value:S}})});F(W)}catch(W){Q(W instanceof Error?W.message:a("mcp.error.completionFailed"))}finally{j(!1)}}},je=n.useMemo(()=>new Set(M.map(d=>d.name.toLowerCase())),[M]),o=d=>{L(d)},$=d=>d.startsWith("@modelcontextprotocol/"),z=d=>$(d.name)?"Official":"Community";return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex h-full min-h-0 flex-col",children:e.jsxs("div",{className:"flex overflow-hidden flex-col flex-1 gap-4 p-4 min-h-0 sm:gap-5 sm:p-8",children:[e.jsxs("div",{className:"flex justify-between items-center shrink-0",children:[e.jsx("h2",{className:"text-lg font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono",children:"MCP"}),e.jsxs("div",{className:"flex gap-2 items-center",children:[e.jsx("button",{onClick:Ae,"aria-label":a("mcp.action.refreshServers"),className:"h-8 w-8 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] transition-colors flex items-center justify-center",disabled:V,children:e.jsx(Te,{className:D("h-4 w-4",V&&"animate-spin")})}),e.jsxs("button",{"data-mcp-add-server-trigger":!0,onClick:()=>m(!0),className:"h-8 px-3 rounded-md bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5] text-xs font-mono font-semibold flex items-center gap-1 hover:bg-[#D1D5DB] dark:hover:bg-[#32323a]",children:[e.jsx(We,{className:"h-3.5 w-3.5"}),a("mcp.action.addServer")]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 p-1 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] w-fit shrink-0",children:[e.jsx(Bt,{active:s==="installed",onClick:()=>l("installed"),children:a("mcp.tab.installed",{count:M.length})}),e.jsx(Bt,{active:s==="catalog",onClick:()=>{l("catalog"),de||oe()},children:a("mcp.tab.catalog")})]}),N&&e.jsxs("div",{role:"alert",className:"flex shrink-0 items-start gap-2 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-[11px] font-mono text-red-700 dark:border-red-900/60 dark:bg-red-950/30 dark:text-red-300",children:[e.jsx(Ue,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),e.jsx("span",{className:"flex-1 min-w-0",children:N}),e.jsx("button",{type:"button",onClick:()=>c(null),className:"underline shrink-0",children:a("mcp.action.dismiss")})]}),s==="installed"?e.jsxs("div",{className:"flex overflow-hidden flex-col flex-1 gap-3 min-h-0 sm:flex-row sm:gap-5",children:[e.jsxs("div",{className:"flex h-[180px] w-full shrink-0 flex-col gap-3 overflow-hidden sm:h-auto sm:w-[220px]",children:[e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5] shrink-0",children:a("mcp.servers.title")}),e.jsx("input",{type:"search","aria-label":a("mcp.servers.searchAria"),value:u,onChange:d=>i(d.target.value),placeholder:a("mcp.servers.searchPlaceholder"),className:"h-8 shrink-0 rounded-md border border-transparent bg-[#F3F4F6] px-3 text-[12px] font-mono text-[#111827] outline-none placeholder:text-[#9CA3AF] focus:border-[#D1D5DB] dark:bg-[#18181b] dark:text-[#E5E5E5] dark:placeholder:text-[#71717a] dark:focus:border-[#3f3f46]"}),e.jsxs("div",{className:"flex overflow-y-auto flex-col flex-1 gap-2 pr-1 min-h-0",children:[V&&M.length===0&&e.jsxs("div",{role:"status",className:"flex items-center justify-center gap-2 py-8 text-sm font-mono text-[#9CA3AF] dark:text-[#71717a]",children:[e.jsx(ne,{className:"w-4 h-4 animate-spin"}),a("mcp.servers.loading")]}),pe&&!V&&e.jsxs("div",{role:"alert",className:"flex flex-col gap-2 items-center py-6 font-mono text-xs text-center text-red-600 dark:text-red-400",children:[e.jsx("span",{children:pe.message}),e.jsx("button",{type:"button",onClick:Ae,className:"rounded-md border border-red-200 px-2.5 py-1 text-[11px] dark:border-red-900",children:a("mcp.action.retry")})]}),!pe&&!V&&Fe.length===0&&e.jsx("div",{className:"text-center py-8 text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:a(u?"mcp.servers.noMatch":"mcp.servers.none")}),Fe.map(d=>e.jsxs("button",{onClick:()=>{g(d.id),Z(null),c(null),y(null),U(""),F(null),Q(null)},className:D("text-left rounded-lg px-3 py-2 flex flex-col gap-1 transition-colors shrink-0",d.id===(P==null?void 0:P.id)?"bg-[#E5E7EB] dark:bg-[#111827]":"bg-white dark:bg-[#0C0C0C] hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-[13px] font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:d.name}),e.jsx("span",{className:D("text-[11px] font-mono font-semibold",At[d.status]),children:Pt(d,a)})]}),e.jsx("span",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8] truncate",children:d.endpoint})]},d.id))]})]}),P?e.jsxs("div",{className:"flex overflow-y-auto flex-col flex-1 gap-3 pr-2 min-h-0",children:[e.jsxs("div",{className:"flex justify-between items-center shrink-0",children:[e.jsx("span",{className:"text-base font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:P.name}),e.jsx("span",{className:D("text-xs font-mono font-semibold",At[P.status]),children:Pt(P,a)})]}),e.jsx("p",{className:"text-[12px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:P.description}),P.error&&e.jsx("p",{className:"text-[12px] font-mono text-[#ef4444]",children:a("mcp.server.errorLabel",{error:P.error})}),P.instructions&&e.jsxs("div",{className:"rounded-md bg-[#F3F4F6] px-3 py-2 dark:bg-[#18181b]",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.instructions.title")}),e.jsxs("span",{className:"truncate text-[9px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["sha256 ",P.instructions.sha256]})]}),e.jsx("pre",{className:"mt-1 max-h-36 overflow-y-auto whitespace-pre-wrap break-words text-[11px] font-mono text-[#374151] dark:text-[#d4d4d8]",children:P.instructions.text??a("mcp.instructions.detailsOmittedByPolicy")}),(P.instructions.truncated||P.instructions.detailsOmitted)&&e.jsx("span",{className:"mt-1 block text-[9px] font-mono text-amber-600 dark:text-amber-400",children:P.instructions.detailsOmitted?a("mcp.instructions.detailsOmitted"):a("mcp.instructions.truncated")})]}),P.tasks&&e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-md bg-[#F3F4F6] px-3 py-2 dark:bg-[#18181b]",children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.tasks.title")}),e.jsx("span",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#a1a1aa]",children:P.tasks.enabled?a("mcp.tasks.summary",{count:P.tasks.maxTasksPerSession,interval:P.tasks.pollIntervalMs}):a("mcp.tasks.disabledByDefault")})]}),e.jsx("span",{className:D("text-[10px] font-mono font-semibold uppercase",P.tasks.enabled?"text-[#16A34A] dark:text-[#22C55E]":"text-[#9CA3AF] dark:text-[#71717a]"),children:P.tasks.enabled?a("mcp.tasks.enabled"):a("mcp.tasks.disabled")})]}),P.oauthEnabled&&e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md bg-[#F3F4F6] px-3 py-2 dark:bg-[#18181b]",children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-[#9CA3AF] dark:text-[#71717a]",children:"OAuth"}),e.jsx("span",{role:P.oauthStatus==="authorizing"?"status":void 0,className:D("text-[11px] font-mono",P.oauthStatus==="authenticated"?"text-[#16A34A] dark:text-[#22C55E]":P.oauthStatus==="error"?"text-[#ef4444]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:a(Qs[P.oauthStatus])})]}),P.oauthStatus==="authenticated"?e.jsx("button",{type:"button",onClick:()=>void x("logout",P),disabled:p!==null,className:"h-7 rounded-md border border-[#D1D5DB] px-2.5 text-[11px] font-mono text-[#374151] disabled:opacity-50 dark:border-[#3f3f46] dark:text-[#d4d4d8]",children:(p==null?void 0:p.type)==="logout"?a("mcp.oauth.signingOut"):a("mcp.oauth.signOut")}):P.oauthStatus==="authorizing"?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ne,{className:"h-3.5 w-3.5 animate-spin text-[#2563eb]","aria-hidden":"true"}),(b==null?void 0:b.serverName)===P.name?e.jsx("a",{href:b.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex h-7 items-center rounded-md bg-[#2563eb] px-2.5 text-[11px] font-mono font-semibold text-white dark:bg-[#3b82f6]",children:a("mcp.oauth.continueAuthorization")}):e.jsx("button",{type:"button",onClick:()=>void x("login",P),disabled:p!==null,className:"h-7 rounded-md border border-[#D1D5DB] px-2.5 text-[11px] font-mono text-[#374151] disabled:opacity-50 dark:border-[#3f3f46] dark:text-[#d4d4d8]",children:a("mcp.oauth.resumeAuthorization")})]}):P.oauthStatus==="unavailable"?null:e.jsx("button",{type:"button",onClick:()=>void x("login",P),disabled:p!==null,className:"h-7 rounded-md bg-[#2563eb] px-2.5 text-[11px] font-mono font-semibold text-white disabled:opacity-50 dark:bg-[#3b82f6]",children:(p==null?void 0:p.type)==="login"?a("mcp.oauth.opening"):a("mcp.oauth.authorize")})]}),e.jsxs("div",{className:"flex gap-2 items-center",children:[P.status==="connected"||P.status==="reconnecting"?e.jsx("button",{onClick:()=>void Me("disconnect",P.name),disabled:p!==null,className:"h-7 px-3 rounded-md bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5] text-[11px] font-mono font-semibold",children:(p==null?void 0:p.type)==="disconnect"&&p.name===P.name?a("mcp.action.disconnecting"):P.status==="reconnecting"?a("mcp.action.stopRecovery"):a("mcp.action.disconnect")}):e.jsx("button",{onClick:()=>void Me("connect",P.name),disabled:p!==null||P.oauthEnabled&&P.oauthStatus!=="authenticated",className:"h-7 px-3 rounded-md bg-[#16A34A] dark:bg-[#22C55E] text-white dark:text-[#0C0C0C] text-[11px] font-mono font-semibold",children:(p==null?void 0:p.type)==="connect"&&p.name===P.name?a("mcp.action.connecting"):P.oauthEnabled&&P.oauthStatus!=="authenticated"?a("mcp.action.authorizeFirst"):a("mcp.action.connect")}),e.jsx("button",{onClick:()=>Z(P.name),disabled:p!==null,className:"h-7 px-3 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#ef4444] text-[11px] font-mono font-semibold",children:a("mcp.action.delete")})]}),Y===P.name&&e.jsxs("div",{role:"alertdialog","aria-label":a("mcp.server.deleteAria",{name:P.name}),className:"flex flex-wrap gap-2 justify-between items-center px-3 py-2 bg-red-50 rounded-md border border-red-200 dark:border-red-900/60 dark:bg-red-950/30",children:[e.jsx("span",{className:"text-[11px] font-mono text-red-700 dark:text-red-300",children:a("mcp.delete.confirm")}),e.jsxs("div",{className:"flex gap-2 items-center",children:[e.jsx("button",{type:"button",onClick:()=>Z(null),className:"h-7 rounded-md px-2.5 text-[11px] font-mono text-[#6B7280] dark:text-[#a1a1aa]",children:a("mcp.action.cancel")}),e.jsx("button",{type:"button",onClick:()=>void Me("delete",P.name),disabled:p!==null,className:"h-7 rounded-md bg-red-600 px-2.5 text-[11px] font-mono font-semibold text-white disabled:opacity-60",children:(p==null?void 0:p.type)==="delete"?a("mcp.action.deleting"):a("mcp.action.deleteServer")})]})]}),e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:a("mcp.tools.title",{count:P.tools.length})}),e.jsx("div",{className:"flex flex-wrap gap-2",children:P.tools.length===0?e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.tools.none")}):P.tools.map(d=>e.jsx("span",{className:"px-2 py-1 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[11px] font-mono text-[#111827] dark:text-[#E5E5E5]",children:d},d))}),e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:a("mcp.completion.title")}),P.status!=="connected"?e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.completion.connectPrompt")}):P.completionSupported?Be.length===0?e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.completion.noTargets")}):e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("div",{"aria-label":a("mcp.completion.targetAria"),className:"flex max-h-20 flex-wrap gap-1 overflow-y-auto",children:Be.map(d=>e.jsx("button",{type:"button","aria-pressed":(ve==null?void 0:ve.key)===d.key,onClick:()=>{y(d.key),F(null),Q(null)},className:D("max-w-full truncate rounded px-2 py-1 text-[10px] font-mono",(ve==null?void 0:ve.key)===d.key?"bg-[#111827] text-white dark:bg-[#E5E5E5] dark:text-[#111827]":"bg-[#F3F4F6] text-[#6B7280] dark:bg-[#18181b] dark:text-[#a1a1aa]"),children:d.label},d.key))}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text","aria-label":a("mcp.completion.partialAria"),value:S,onChange:d=>U(d.target.value),placeholder:a("mcp.completion.partialPlaceholder"),className:"h-8 min-w-0 flex-1 rounded-md border border-transparent bg-[#F3F4F6] px-3 text-[11px] font-mono text-[#111827] outline-none placeholder:text-[#9CA3AF] focus:border-[#D1D5DB] dark:bg-[#18181b] dark:text-[#E5E5E5] dark:placeholder:text-[#71717a] dark:focus:border-[#3f3f46]"}),e.jsx("button",{type:"button",onClick:()=>void Ne(P),disabled:R,className:"h-8 shrink-0 rounded-md bg-[#2563eb] px-3 text-[11px] font-mono font-semibold text-white disabled:opacity-50 dark:bg-[#3b82f6]",children:a(R?"mcp.completion.completing":"mcp.completion.complete")})]}),O&&e.jsx("span",{role:"alert",className:"text-[11px] font-mono text-red-600 dark:text-red-400",children:O}),A&&e.jsxs("div",{"aria-label":a("mcp.completion.suggestionsAria"),className:"rounded-md bg-[#F3F4F6] p-2 dark:bg-[#18181b]",children:[e.jsx("div",{className:"flex flex-wrap gap-1",children:A.values.length>0?A.values.map(d=>e.jsx("span",{className:"rounded bg-white px-2 py-1 text-[10px] font-mono text-[#111827] dark:bg-[#0C0C0C] dark:text-[#E5E5E5]",children:d||a("mcp.completion.empty")},d)):e.jsx("span",{className:"text-[10px] font-mono text-[#9CA3AF]",children:a("mcp.completion.noSuggestions")})}),e.jsxs("span",{className:"mt-1 block truncate text-[9px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["sha256 ",A.sha256,A.truncated?a("mcp.meta.truncatedSuffix"):""]})]})]}):e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.completion.unsupported")}),e.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:a("mcp.diagnostics.title")}),e.jsx("button",{type:"button","aria-label":a("mcp.diagnostics.refreshAria",{name:P.name}),onClick:()=>void Ce(P.name),disabled:we,className:"flex h-7 w-7 items-center justify-center rounded-md text-[#9CA3AF] transition-colors hover:bg-[#E5E7EB] hover:text-[#111827] disabled:opacity-50 dark:text-[#71717a] dark:hover:bg-[#27272a] dark:hover:text-[#E5E5E5]",children:e.jsx(Te,{className:D("h-3.5 w-3.5",we&&"animate-spin")})})]}),e.jsx("div",{"aria-label":a("mcp.log.levelAria"),className:"flex flex-wrap gap-1",children:Zs.map(d=>{var W,H;return e.jsx("button",{type:"button",onClick:()=>void ue(P,d),disabled:P.status!=="connected"||w!==null,"aria-pressed":(((W=P.logging)==null?void 0:W.level)??"warning")===d,className:D("rounded px-2 py-1 text-[10px] font-mono transition-colors disabled:opacity-40",(((H=P.logging)==null?void 0:H.level)??"warning")===d?"bg-[#111827] text-white dark:bg-[#E5E5E5] dark:text-[#111827]":"bg-[#F3F4F6] text-[#6B7280] hover:text-[#111827] dark:bg-[#18181b] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5]"),children:w===d?a("mcp.log.setting"):d},d)})}),ce?e.jsx("div",{role:"alert",className:"rounded-md bg-red-50 px-3 py-2 text-[11px] font-mono text-red-700 dark:bg-red-950/30 dark:text-red-300",children:ce.message}):he!=null&&he.entries.length?e.jsx("div",{"aria-label":a("mcp.diagnostics.logsAria",{name:P.name}),className:"flex max-h-52 flex-col gap-1.5 overflow-y-auto rounded-md bg-[#F3F4F6] p-2 dark:bg-[#18181b]",children:he.entries.map(d=>e.jsxs("div",{className:"rounded bg-white px-2.5 py-2 dark:bg-[#0C0C0C]",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:D("text-[10px] font-mono font-semibold uppercase",["error","critical","alert","emergency"].includes(d.level)?"text-red-600 dark:text-red-400":d.level==="warning"?"text-amber-600 dark:text-amber-400":"text-[#2563eb] dark:text-[#60a5fa]"),children:d.level}),e.jsxs("span",{className:"truncate text-[10px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:[d.logger||P.name," · r",d.revision]})]}),e.jsx("pre",{className:"mt-1 whitespace-pre-wrap break-words text-[11px] font-mono text-[#374151] dark:text-[#d4d4d8]",children:d.message}),e.jsxs("span",{className:"mt-1 block truncate text-[9px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["sha256 ",d.dataSha256,d.truncated?a("mcp.meta.truncatedSuffix"):"",d.detailsOmitted?a("mcp.meta.detailsOmittedSuffix"):""]})]},d.revision))}):e.jsx("span",{className:"text-[11px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a(we?"mcp.log.loading":"mcp.log.none")})]}):e.jsx("div",{className:"flex flex-1 justify-center items-center",children:e.jsx("span",{className:"text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:a("mcp.server.selectPrompt")})})]}):e.jsxs("div",{className:"flex flex-col flex-1 gap-4 min-h-0",children:[e.jsx("div",{className:"flex gap-3 items-center shrink-0",children:e.jsxs("div",{className:"flex-1 h-8 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] flex items-center px-3 gap-2",children:[e.jsx(oa,{className:"h-3.5 w-3.5 text-[#9CA3AF] dark:text-[#71717a]"}),e.jsx("input",{type:"text","aria-label":a("mcp.catalog.searchAria"),value:ee,onChange:d=>{J(d.target.value),v(d.target.value)},placeholder:a("mcp.catalog.searchPlaceholder"),className:"flex-1 bg-transparent text-[12px] font-mono text-[#111827] dark:text-[#E5E5E5] placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none"})]})}),e.jsxs("div",{ref:C,className:"overflow-y-auto flex-1 min-h-0",children:[ae?e.jsxs("div",{role:"alert",className:"flex flex-col gap-3 items-center py-12 font-mono text-center",children:[e.jsx(Ue,{className:"w-6 h-6 text-red-500"}),e.jsx("span",{className:"text-xs text-red-600 dark:text-red-400",children:ae.message}),e.jsx("button",{type:"button",onClick:oe,className:"rounded-md border border-[#E5E7EB] px-3 py-1.5 text-[11px] text-[#6B7280] dark:border-[#27272a] dark:text-[#a1a1aa]",children:a("mcp.catalog.retry")})]}):re&&!de?e.jsx("div",{className:"flex justify-center items-center py-12",children:e.jsx(ne,{className:"h-6 w-6 text-[#9CA3AF] dark:text-[#71717a] animate-spin"})}):e.jsxs("div",{className:"grid grid-cols-1 gap-3 pb-4 sm:grid-cols-2",children:[de==null?void 0:de.list.map(d=>{var me,qe;const W=je.has(Qt(d.name).toLowerCase()),H=K===d.name,ye=z(d);return e.jsxs("div",{className:"rounded-lg bg-white dark:bg-[#0C0C0C] p-4 flex flex-col gap-2",children:[e.jsxs("div",{className:"flex gap-2 justify-between items-center",children:[e.jsx("span",{className:"text-[13px] font-mono font-semibold text-[#111827] dark:text-[#E5E5E5] truncate",children:d.name}),e.jsx("span",{className:D("text-[10px] font-mono px-2 py-0.5 rounded shrink-0",ye==="Official"?"bg-[#16A34A]/20 dark:bg-[#22C55E]/20 text-[#16A34A] dark:text-[#22C55E]":"bg-[#3b82f6]/20 text-[#3b82f6]"),children:a(Xs[ye])})]}),e.jsx("p",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8] line-clamp-2",children:d.description||a("mcp.catalog.noDescription")}),e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:[e.jsxs("span",{children:["v",d.version]}),((me=d.publisher)==null?void 0:me.username)&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"•"}),e.jsx("span",{children:a("mcp.catalog.byAuthor",{author:d.publisher.username})})]})]}),e.jsxs("div",{className:"flex justify-between items-center pt-2 mt-auto",children:[e.jsxs("a",{href:((qe=d.links)==null?void 0:qe.npm)||`https://www.npmjs.com/package/${d.name}`,target:"_blank",rel:"noopener noreferrer",className:"text-[10px] font-mono text-[#9CA3AF] dark:text-[#71717a] hover:text-[#111827] dark:hover:text-[#E5E5E5] flex items-center gap-1",children:[e.jsx(vt,{className:"w-3 h-3"}),"npm"]}),W?e.jsxs("span",{className:"text-[11px] font-mono text-[#16A34A] dark:text-[#22C55E] flex items-center gap-1",children:[e.jsx(ft,{className:"w-3 h-3"}),a("mcp.catalog.installed")]}):e.jsxs("button",{onClick:()=>o(d),disabled:H,className:"h-6 px-2 rounded-md bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5] text-[10px] font-mono font-semibold flex items-center gap-1 hover:bg-[#D1D5DB] dark:hover:bg-[#32323a] disabled:opacity-50",children:[e.jsx(ut,{className:D("h-3 w-3",H&&"animate-pulse")}),a(H?"mcp.catalog.installing":"mcp.catalog.install")]})]})]},d.name)}),(de==null?void 0:de.list.length)===0&&e.jsx("div",{className:"col-span-full py-12 text-center text-xs font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.catalog.noPackages")})]}),f&&e.jsx("div",{className:"flex justify-center items-center py-4",children:e.jsx(ne,{className:"h-5 w-5 text-[#9CA3AF] dark:text-[#71717a] animate-spin"})}),_&&de&&de.list.length>0&&e.jsx("div",{className:"text-center py-4 text-[11px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.catalog.noMore")})]}),e.jsxs("div",{className:"flex items-center justify-between pt-2 border-t border-[#E5E7EB] dark:border-[#1f2937] shrink-0",children:[e.jsx("span",{className:"text-[11px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.catalog.packagesFound",{count:(de==null?void 0:de.total)??0})}),e.jsxs("a",{href:"https://glama.ai/mcp/servers",target:"_blank",rel:"noopener noreferrer",className:"text-[11px] font-mono text-[#3b82f6] hover:underline flex items-center gap-1",children:[a("mcp.catalog.browseGlama"),e.jsx(vt,{className:"w-3 h-3"})]})]})]})]})}),e.jsx(ln,{open:r,onOpenChange:m,onAdd:xe,saving:fe,error:(be==null?void 0:be.message)??null}),te&&e.jsx(on,{pkg:te,onClose:()=>L(null),installing:fe,error:(be==null?void 0:be.message)??null,onInstall:d=>(q(te.name),xe(d))})]})}function Bt({active:t,children:a,onClick:s}){return e.jsx("button",{onClick:s,className:D("px-3 py-1 rounded text-[12px] font-mono font-semibold transition-colors",t?"bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:a})}function ln({open:t,onOpenChange:a,onAdd:s,saving:l,error:r}){const m=ge(),[h,g]=n.useState("form"),[u,i]=n.useState(""),[N,c]=n.useState(""),[b,k]=n.useState(""),[p,E]=n.useState(null),[w,B]=n.useState(`{
|
|
1
|
+
import{r as n,e as Qe,g as $t,j as e}from"./vendor-react-DG5dkZ_t.js";import{u as ge,j as D,r as G,D as $e,e as Ie,o as Je,g as Ke,P as Xt,p as Zt,q as ea,S as ta,a as Le,t as It,v as Pe,l as aa,b as sa,w as na,K as ra,x as la}from"./index-DGZjm9wT.js";import{_ as ie,n as se,o as ke,p as dt,q as ct,r as Kt}from"./vendor-radix-DXRuAJHH.js";import{a as Te,i as We,f as Ue,L as ne,k as oa,_ as vt,C as ft,D as ut,X as He,y as _t,a8 as ia,a3 as da,P as mt,T as ze,a9 as ca,aa as ua,u as ht,Z as Ut,O as ma,ab as xa,ac as pa,ad as fa}from"./vendor-icons-ICv1v-tf.js";import"./session-events-Dk20sSDo.js";var ha=function(t){return function(a,s){var l=n.useRef(!1);t(function(){return function(){l.current=!1}},[]),t(function(){if(!l.current)l.current=!0;else return a()},s)}},zt=function(t){return typeof t=="function"},Ee=function(t){var a=n.useRef(t);a.current=n.useMemo(function(){return t},[t]);var s=n.useRef(void 0);return s.current||(s.current=function(){for(var l=[],r=0;r<arguments.length;r++)l[r]=arguments[r];return a.current.apply(this,l)}),s.current};const at=ha(n.useEffect);var Ht=function(t,a){var s=a.manual,l=a.ready,r=l===void 0?!0:l,m=a.defaultParams,h=m===void 0?[]:m,g=a.refreshDeps,u=g===void 0?[]:g,i=a.refreshDepsAction,N=n.useRef(!1);return N.current=!1,at(function(){!s&&r&&(N.current=!0,t.run.apply(t,ie([],se(h),!1)))},[r]),at(function(){N.current||s||(N.current=!0,i?i():t.refresh())},ie([],se(u),!1)),{onBefore:function(){if(!r)return{stopNow:!0}}}};Ht.onInit=function(t){var a=t.ready,s=a===void 0?!0:a,l=t.manual;return{loading:!l&&s}};function xt(t,a){if(t===a)return!0;for(var s=0;s<t.length;s++)if(!Object.is(t[s],a[s]))return!1;return!0}var qt=function(t,a){var s=n.useRef({deps:a,obj:void 0,initialized:!1}).current;return(s.initialized===!1||!xt(s.deps,a))&&(s.deps=a,s.obj=t(),s.initialized=!0),s.obj};function nt(t){var a=n.useRef(t);return a.current=t,a}var Ye=function(t){var a=nt(t);n.useEffect(function(){return function(){a.current()}},[])},Xe=new Map,ga=function(t,a,s){var l=Xe.get(t);l!=null&&l.timer&&clearTimeout(l.timer);var r=void 0;a>-1&&(r=setTimeout(function(){Xe.delete(t)},a)),Xe.set(t,ke(ke({},s),{timer:r}))},ba=function(t){return Xe.get(t)},Ze=new Map,va=function(t){return Ze.get(t)},ka=function(t,a){Ze.set(t,a),a.then(function(s){return Ze.delete(t),s}).catch(function(){Ze.delete(t)})},De={},ja=function(t,a){De[t]&&De[t].forEach(function(s){return s(a)})},rt=function(t,a){return De[t]||(De[t]=[]),De[t].push(a),function(){var l=De[t].indexOf(a);De[t].splice(l,1)}},ya=function(t,a){var s=a.cacheKey,l=a.cacheTime,r=l===void 0?5*60*1e3:l,m=a.staleTime,h=m===void 0?0:m,g=a.setCache,u=a.getCache,i=n.useRef(void 0),N=n.useRef(void 0),c=function(k,p){g?g(p):ga(k,r,p),ja(k,p.data)},b=function(k,p){return p===void 0&&(p=[]),u?u(p):ba(k)};return qt(function(){if(s){var k=b(s);k&&Object.hasOwnProperty.call(k,"data")&&(t.state.data=k.data,t.state.params=k.params,(h===-1||Date.now()-k.time<=h)&&(t.state.loading=!1)),i.current=rt(s,function(p){t.setState({data:p})})}},[]),Ye(function(){var k;(k=i.current)===null||k===void 0||k.call(i)}),s?{onBefore:function(k){var p=b(s,k);return!p||!Object.hasOwnProperty.call(p,"data")?{}:h===-1||Date.now()-p.time<=h?{loading:!1,data:p==null?void 0:p.data,error:void 0,returnNow:!0}:{data:p==null?void 0:p.data,error:void 0}},onRequest:function(k,p){var E=va(s);return E&&E!==N.current?{servicePromise:E}:(E=k.apply(void 0,ie([],se(p),!1)),N.current=E,ka(s,E),{servicePromise:E})},onSuccess:function(k,p){var E;s&&((E=i.current)===null||E===void 0||E.call(i),c(s,{data:k,params:p,time:Date.now()}),i.current=rt(s,function(w){t.setState({data:w})}))},onMutate:function(k){var p;s&&((p=i.current)===null||p===void 0||p.call(i),c(s,{data:k,params:t.state.params,time:Date.now()}),i.current=rt(s,function(E){t.setState({data:E})}))}}:{}};function Na(t){var a=typeof t;return t!=null&&(a=="object"||a=="function")}var gt=Na,Ea=typeof Qe=="object"&&Qe&&Qe.Object===Object&&Qe,wa=Ea,Ca=wa,Sa=typeof self=="object"&&self&&self.Object===Object&&self,Aa=Ca||Sa||Function("return this")(),Gt=Aa,Fa=Gt,Pa=function(){return Fa.Date.now()},Ba=Pa,Ta=/\s/;function Ma(t){for(var a=t.length;a--&&Ta.test(t.charAt(a)););return a}var Ra=Ma,Oa=Ra,Da=/^\s+/;function La(t){return t&&t.slice(0,Oa(t)+1).replace(Da,"")}var $a=La,Ia=Gt,Ka=Ia.Symbol,Wt=Ka,kt=Wt,Jt=Object.prototype,_a=Jt.hasOwnProperty,Ua=Jt.toString,Ge=kt?kt.toStringTag:void 0;function za(t){var a=_a.call(t,Ge),s=t[Ge];try{t[Ge]=void 0;var l=!0}catch{}var r=Ua.call(t);return l&&(a?t[Ge]=s:delete t[Ge]),r}var Ha=za,qa=Object.prototype,Ga=qa.toString;function Wa(t){return Ga.call(t)}var Ja=Wa,jt=Wt,Ya=Ha,Va=Ja,Qa="[object Null]",Xa="[object Undefined]",yt=jt?jt.toStringTag:void 0;function Za(t){return t==null?t===void 0?Xa:Qa:yt&&yt in Object(t)?Ya(t):Va(t)}var es=Za;function ts(t){return t!=null&&typeof t=="object"}var as=ts,ss=es,ns=as,rs="[object Symbol]";function ls(t){return typeof t=="symbol"||ns(t)&&ss(t)==rs}var os=ls,is=$a,Nt=gt,ds=os,Et=NaN,cs=/^[-+]0x[0-9a-f]+$/i,us=/^0b[01]+$/i,ms=/^0o[0-7]+$/i,xs=parseInt;function ps(t){if(typeof t=="number")return t;if(ds(t))return Et;if(Nt(t)){var a=typeof t.valueOf=="function"?t.valueOf():t;t=Nt(a)?a+"":a}if(typeof t!="string")return t===0?t:+t;t=is(t);var s=us.test(t);return s||ms.test(t)?xs(t.slice(2),s?2:8):cs.test(t)?Et:+t}var fs=ps,hs=gt,lt=Ba,wt=fs,gs="Expected a function",bs=Math.max,vs=Math.min;function ks(t,a,s){var l,r,m,h,g,u,i=0,N=!1,c=!1,b=!0;if(typeof t!="function")throw new TypeError(gs);a=wt(a)||0,hs(s)&&(N=!!s.leading,c="maxWait"in s,m=c?bs(wt(s.maxWait)||0,a):m,b="trailing"in s?!!s.trailing:b);function k(A){var F=l,R=r;return l=r=void 0,i=A,h=t.apply(R,F),h}function p(A){return i=A,g=setTimeout(B,a),N?k(A):h}function E(A){var F=A-u,R=A-i,j=a-F;return c?vs(j,m-R):j}function w(A){var F=A-u,R=A-i;return u===void 0||F>=a||F<0||c&&R>=m}function B(){var A=lt();if(w(A))return I(A);g=setTimeout(B,E(A))}function I(A){return g=void 0,b&&l?k(A):(l=r=void 0,h)}function y(){g!==void 0&&clearTimeout(g),i=0,l=u=r=g=void 0}function S(){return g===void 0?h:I(lt())}function U(){var A=lt(),F=w(A);if(l=arguments,r=this,u=A,F){if(g===void 0)return p(u);if(c)return clearTimeout(g),g=setTimeout(B,a),k(u)}return g===void 0&&(g=setTimeout(B,a)),h}return U.cancel=y,U.flush=S,U}var Yt=ks;const Vt=$t(Yt);var js=function(t,a){var s=a.debounceWait,l=a.debounceLeading,r=a.debounceTrailing,m=a.debounceMaxWait,h=n.useRef(void 0),g=n.useMemo(function(){var u={};return l!==void 0&&(u.leading=l),r!==void 0&&(u.trailing=r),m!==void 0&&(u.maxWait=m),u},[l,r,m]);return n.useEffect(function(){if(s){var u=t.runAsync.bind(t);return h.current=Vt(function(i){i()},s,g),t.runAsync=function(){for(var i=[],N=0;N<arguments.length;N++)i[N]=arguments[N];return new Promise(function(c,b){var k;(k=h.current)===null||k===void 0||k.call(h,function(){u.apply(void 0,ie([],se(i),!1)).then(c).catch(b)})})},function(){var i;(i=h.current)===null||i===void 0||i.cancel(),t.runAsync=u}}},[s,g]),s?{onCancel:function(){var u;(u=h.current)===null||u===void 0||u.cancel()}}:{}},ys=function(t,a){var s=a.loadingDelay,l=a.ready,r=n.useRef(void 0);if(!s)return{};var m=function(){r.current&&clearTimeout(r.current)};return{onBefore:function(){return m(),l!==!1&&(r.current=setTimeout(function(){t.setState({loading:!0})},s)),{loading:!1}},onFinally:function(){m()},onCancel:function(){m()}}},Ve=!!(typeof window<"u"&&window.document&&window.document.createElement);function bt(){return Ve?document.visibilityState!=="hidden":!0}var et=new Set;function Ns(t){return et.add(t),function(){et.has(t)&&et.delete(t)}}if(Ve){var Es=function(){bt()&&et.forEach(function(t){return t()})};window.addEventListener("visibilitychange",Es,!1)}var ws=function(t,a){var s=a.pollingInterval,l=a.pollingWhenHidden,r=l===void 0?!0:l,m=a.pollingErrorRetryCount,h=m===void 0?-1:m,g=n.useRef(void 0),u=n.useRef(void 0),i=n.useRef(0),N=function(){var c;g.current&&clearTimeout(g.current),(c=u.current)===null||c===void 0||c.call(u)};return at(function(){s||N()},[s]),s?{onBefore:function(){N()},onError:function(){i.current+=1},onSuccess:function(){i.current=0},onFinally:function(){h===-1||h!==-1&&i.current<=h?g.current=setTimeout(function(){!r&&!bt()?u.current=Ns(function(){t.refresh()}):t.refresh()},s):i.current=0},onCancel:function(){N()}}:{}};function Cs(t,a){var s=!1;return function(){for(var l=[],r=0;r<arguments.length;r++)l[r]=arguments[r];s||(s=!0,t.apply(void 0,ie([],se(l),!1)),setTimeout(function(){s=!1},a))}}var Ss=function(){return Ve&&typeof navigator.onLine<"u"?navigator.onLine:!0},tt=new Set;function As(t){return tt.add(t),function(){tt.has(t)&&tt.delete(t)}}if(Ve){var Ct=function(){!bt()||!Ss()||tt.forEach(function(t){return t()})};window.addEventListener("visibilitychange",Ct,!1),window.addEventListener("focus",Ct,!1)}var Fs=function(t,a){var s=a.refreshOnWindowFocus,l=a.focusTimespan,r=l===void 0?5e3:l,m=n.useRef(void 0),h=function(){var g;(g=m.current)===null||g===void 0||g.call(m)};return n.useEffect(function(){if(s){var g=Cs(t.refresh.bind(t),r);m.current=As(function(){g()})}return function(){h()}},[s,r]),Ye(function(){h()}),{}},Ps=function(t,a){var s=a.retryInterval,l=a.retryCount,r=n.useRef(void 0),m=n.useRef(0),h=n.useRef(!1);return l?{onBefore:function(){h.current||(m.current=0),h.current=!1,r.current&&clearTimeout(r.current)},onSuccess:function(){m.current=0},onError:function(){if(m.current+=1,l===-1||m.current<=l){var g=s??Math.min(1e3*Math.pow(2,m.current),3e4);r.current=setTimeout(function(){h.current=!0,t.refresh()},g)}else m.current=0},onCancel:function(){m.current=0,r.current&&clearTimeout(r.current)}}:{}},Bs=Yt,Ts=gt,Ms="Expected a function";function Rs(t,a,s){var l=!0,r=!0;if(typeof t!="function")throw new TypeError(Ms);return Ts(s)&&(l="leading"in s?!!s.leading:l,r="trailing"in s?!!s.trailing:r),Bs(t,a,{leading:l,maxWait:a,trailing:r})}var Os=Rs;const Ds=$t(Os);var Ls=function(t,a){var s=a.throttleWait,l=a.throttleLeading,r=a.throttleTrailing,m=n.useRef(void 0),h={};return l!==void 0&&(h.leading=l),r!==void 0&&(h.trailing=r),n.useEffect(function(){if(s){var g=t.runAsync.bind(t);return m.current=Ds(function(u){u()},s,h),t.runAsync=function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return new Promise(function(N,c){var b;(b=m.current)===null||b===void 0||b.call(m,function(){g.apply(void 0,ie([],se(u),!1)).then(N).catch(c)})})},function(){var u;t.runAsync=g,(u=m.current)===null||u===void 0||u.cancel()}}},[s,l,r]),s?{onCancel:function(){var g;(g=m.current)===null||g===void 0||g.cancel()}}:{}},$s=function(t){n.useEffect(function(){var a=t==null?void 0:t();if(!(a&&typeof a=="object"&&typeof a.then=="function"))return a},[])},Is=function(){var t=se(n.useState({}),2),a=t[1];return Ee(function(){return a({})})},Ks=function(){function t(a,s,l,r){r===void 0&&(r={}),this.serviceRef=a,this.options=s,this.subscribe=l,this.initState=r,this.pluginImpls=[],this.count=0,this.state={loading:!1,params:void 0,data:void 0,error:void 0},this.state=ke(ke(ke({},this.state),{loading:!s.manual}),r)}return t.prototype.setState=function(a){a===void 0&&(a={}),this.state=ke(ke({},this.state),a),this.subscribe()},t.prototype.runPluginHandler=function(a){for(var s=[],l=1;l<arguments.length;l++)s[l-1]=arguments[l];var r=this.pluginImpls.map(function(m){var h;return(h=m[a])===null||h===void 0?void 0:h.call.apply(h,ie([m],se(s),!1))}).filter(Boolean);return Object.assign.apply(Object,ie([{}],se(r),!1))},t.prototype.runAsync=function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return dt(this,void 0,void 0,function(){var l,r,m,h,g,u,i,N,c,b,k,p,E,w,B,I,y,S,U,A,F;return ct(this,function(R){switch(R.label){case 0:if(this.count+=1,l=this.count,r=this.runPluginHandler("onBefore",a),m=r.stopNow,h=m===void 0?!1:m,g=r.returnNow,u=g===void 0?!1:g,i=Kt(r,["stopNow","returnNow"]),h)return[2,Promise.resolve(i.data)];if(this.setState(ke({loading:!0,params:a},i)),u)return[2,Promise.resolve(i.data)];(E=(p=this.options).onBefore)===null||E===void 0||E.call(p,a),R.label=1;case 1:return R.trys.push([1,3,,4]),N=this.runPluginHandler("onRequest",this.serviceRef.current,a).servicePromise,N||(N=(k=this.serviceRef).current.apply(k,ie([],se(a),!1))),[4,N];case 2:return c=R.sent(),l!==this.count?[2,new Promise(function(){})]:(this.setState({data:c,error:void 0,loading:!1}),(B=(w=this.options).onSuccess)===null||B===void 0||B.call(w,c,a),this.runPluginHandler("onSuccess",c,a),(y=(I=this.options).onFinally)===null||y===void 0||y.call(I,a,c,void 0),l===this.count&&this.runPluginHandler("onFinally",a,c,void 0),[2,c]);case 3:if(b=R.sent(),l!==this.count)return[2,new Promise(function(){})];throw this.setState({error:b,loading:!1}),(U=(S=this.options).onError)===null||U===void 0||U.call(S,b,a),this.runPluginHandler("onError",b,a),(F=(A=this.options).onFinally)===null||F===void 0||F.call(A,a,void 0,b),l===this.count&&this.runPluginHandler("onFinally",a,void 0,b),b;case 4:return[2]}})})},t.prototype.run=function(){for(var a=this,s=[],l=0;l<arguments.length;l++)s[l]=arguments[l];this.runAsync.apply(this,ie([],se(s),!1)).catch(function(r){a.options.onError||console.error(r)})},t.prototype.cancel=function(){this.count+=1,this.setState({loading:!1}),this.runPluginHandler("onCancel")},t.prototype.refresh=function(){this.run.apply(this,ie([],se(this.state.params||[]),!1))},t.prototype.refreshAsync=function(){return this.runAsync.apply(this,ie([],se(this.state.params||[]),!1))},t.prototype.mutate=function(a){var s=zt(a)?a(this.state.data):a;this.runPluginHandler("onMutate",s),this.setState({data:s})},t}();function _s(t,a,s){a===void 0&&(a={}),s===void 0&&(s=[]);var l=a.manual,r=l===void 0?!1:l,m=a.ready,h=m===void 0?!0:m,g=Kt(a,["manual","ready"]),u=ke({manual:r,ready:h},g),i=nt(t),N=Is(),c=qt(function(){var b=s.map(function(k){var p;return(p=k==null?void 0:k.onInit)===null||p===void 0?void 0:p.call(k,u)}).filter(Boolean);return new Ks(i,u,N,Object.assign.apply(Object,ie([{}],se(b),!1)))},[]);return c.options=u,c.pluginImpls=s.map(function(b){return b(c,u)}),$s(function(){if(!r&&h){var b=c.state.params||a.defaultParams||[];c.run.apply(c,ie([],se(b),!1))}}),Ye(function(){c.cancel()}),{loading:c.state.loading,data:c.state.data,error:c.state.error,params:c.state.params||[],cancel:Ee(c.cancel.bind(c)),refresh:Ee(c.refresh.bind(c)),refreshAsync:Ee(c.refreshAsync.bind(c)),run:Ee(c.run.bind(c)),runAsync:Ee(c.runAsync.bind(c)),mutate:Ee(c.mutate.bind(c))}}function _e(t,a,s){return _s(t,a,ie(ie([],se([]),!1),[js,ys,ws,Fs,Ls,Ht,ya,Ps],!1))}function st(t,a){if(Ve){if(!t)return a;var s;return zt(t)?s=t():"current"in t?s=t.current:s=t,s}}var Us=function(t){var a=function(s,l,r){var m=n.useRef(!1),h=n.useRef([]),g=n.useRef([]),u=n.useRef(void 0);t(function(){var i,N=Array.isArray(r)?r:[r],c=N.map(function(b){return st(b)});if(!m.current){m.current=!0,h.current=c,g.current=l,u.current=s();return}(c.length!==h.current.length||!xt(h.current,c)||!xt(g.current,l))&&((i=u.current)===null||i===void 0||i.call(u),h.current=c,g.current=l,u.current=s())}),Ye(function(){var i;(i=u.current)===null||i===void 0||i.call(u),m.current=!1})};return a},zs=Us(n.useEffect);function Hs(){var t=(typeof global>"u"?"undefined":typeof global)=="object"&&global&&global.Object===Object&&global,a=typeof self=="object"&&self&&self.Object===Object&&self;return t||a}Hs()||(global.Date=Date);function qs(t,a){var s,l=nt(t),r=(s=a==null?void 0:a.wait)!==null&&s!==void 0?s:1e3,m=n.useMemo(function(){return Vt(function(){for(var h=[],g=0;g<arguments.length;g++)h[g]=arguments[g];return l.current.apply(l,ie([],se(h),!1))},r,a)},[]);return Ye(function(){m.cancel()}),{run:m,cancel:m.cancel,flush:m.flush}}function Gs(t,a,s){s===void 0&&(s={});var l=s.enable,r=l===void 0?!0:l,m=nt(a);zs(function(){if(r){var h=st(s.target,window);if(h!=null&&h.addEventListener){var g=function(i){return m.current(i)},u=Array.isArray(t)?t:[t];return u.forEach(function(i){h.addEventListener(i,g,{capture:s.capture,once:s.once,passive:s.passive})}),function(){u.forEach(function(i){h.removeEventListener(i,g,{capture:s.capture})})}}}},[t,s.capture,s.once,s.passive,r],s.target)}var Ws=function(t){return t===document||t===document.documentElement||t===document.body?Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop):t.scrollTop},St=function(t){return t.scrollHeight||Math.max(document.documentElement.scrollHeight,document.body.scrollHeight)},Js=function(t){return t.clientHeight||Math.max(document.documentElement.clientHeight,document.body.clientHeight)},Ys=function(t,a){a===void 0&&(a={});var s=a.target,l=a.isNoMore,r=a.threshold,m=r===void 0?100:r,h=a.direction,g=h===void 0?"bottom":h,u=a.reloadDeps,i=u===void 0?[]:u,N=a.manual,c=a.onBefore,b=a.onSuccess,k=a.onError,p=a.onFinally,E=se(n.useState(),2),w=E[0],B=E[1],I=se(n.useState(!1),2),y=I[0],S=I[1],U=g==="top",A=n.useRef(void 0),F=n.useRef(0),R=n.useMemo(function(){return l?l(w):!1},[w]),j=_e(function(L){return dt(void 0,void 0,void 0,function(){var C;return ct(this,function(v){switch(v.label){case 0:return[4,t(L)];case 1:return C=v.sent(),[2,{currentData:C,lastData:L}]}})})},{manual:N,onFinally:function(L,C,v){S(!1),p==null||p(C==null?void 0:C.currentData,v)},onBefore:function(){return c==null?void 0:c()},onSuccess:function(L){var C,v,M;L.lastData?B(ke(ke({},L.currentData),{list:U?ie(ie([],se(L.currentData.list),!1),se((v=L.lastData.list)!==null&&v!==void 0?v:[]),!1):ie(ie([],se((M=L.lastData.list)!==null&&M!==void 0?M:[]),!1),se(L.currentData.list),!1)})):B(ke(ke({},L.currentData),{list:ie([],se((C=L.currentData.list)!==null&&C!==void 0?C:[]),!1)})),setTimeout(function(){requestAnimationFrame(function(){if(U){var V=st(s);if(V=V===document?document.documentElement:V,V){var pe=St(V);V.scrollTo(0,pe-F.current)}}else te()})}),b==null||b(L.currentData)},onError:function(L){return k==null?void 0:k(L)}}),O=j.loading,Q=j.error,Y=j.run,Z=j.runAsync,ee=j.cancel,J=Ee(function(){R||(S(!0),Y(w))}),X=function(L){return dt(void 0,void 0,void 0,function(){var C;return ct(this,function(v){switch(v.label){case 0:return[4,Z(L)];case 1:return C=v.sent(),[2,C.currentData]}})})},T=Ee(function(){return R?Promise.reject():(S(!0),X(w))}),K=function(){return S(!1),Y()},q=function(){return S(!1),X()},te=function(){var L=st(s);if(L){var C=L===document?document.documentElement:L,v=Ws(C),M=St(C),V=Js(C);U?(A.current!==void 0&&A.current>v&&v<=m&&J(),A.current=v,F.current=M-v):M-v<=V+m&&J()}};return Gs("scroll",function(){O||y||te()},{target:s}),at(function(){Y()},ie([],se(i),!1)),{data:w,loading:!y&&O,error:Q,loadingMore:y,noMore:R,loadMore:J,loadMoreAsync:T,reload:Ee(K),reloadAsync:Ee(q),mutate:B,cancel:ee}};const At={connected:"text-[#16A34A] dark:text-[#22C55E]",connecting:"text-[#2563eb] dark:text-[#3b82f6]",reconnecting:"text-[#2563eb] dark:text-[#60a5fa]",offline:"text-[#f59e0b]",error:"text-[#ef4444]"},Vs={connected:"mcp.status.connected",connecting:"mcp.status.connecting",reconnecting:"mcp.status.reconnecting",offline:"mcp.status.offline",error:"mcp.status.error"},Qs={disabled:"mcp.oauth.status.disabled",unavailable:"mcp.oauth.status.unavailable",unauthenticated:"mcp.oauth.status.unauthenticated",authorizing:"mcp.oauth.status.authorizing",authenticated:"mcp.oauth.status.authenticated",error:"mcp.oauth.status.error"},Xs={Official:"mcp.catalog.tag.official",Popular:"mcp.catalog.tag.popular",Community:"mcp.catalog.tag.community"},Ft=20,Zs=["debug","info","notice","warning","error","critical","alert","emergency"],Pt=(t,a)=>t.status!=="reconnecting"||!t.recovery?a(Vs[t.status]):a("mcp.status.recoveringAttempt",{attempt:t.recovery.attempt,max:t.recovery.maxAttempts}),en=async()=>G("/mcp"),tn=async t=>G(`/mcp/${encodeURIComponent(t)}/logs?limit=20`),an="mcp server @modelcontextprotocol",sn=3,Qt=t=>{var a;return((a=t.split("/").pop())==null?void 0:a.replace(/^server-/,""))||t},nn=async(t,a)=>{const s=t&&t.length>=sn?t:an,l=`https://registry.npmjs.org/-/v1/search?text=${encodeURIComponent(s)}&size=${Ft}&from=${a}`,r=await G(l);return{list:r.objects.map(m=>m.package),total:r.total,hasMore:a+Ft<r.total}};function rn({active:t}){const a=ge(),[s,l]=n.useState("installed"),[r,m]=n.useState(!1),[h,g]=n.useState(null),[u,i]=n.useState(""),[N,c]=n.useState(null),[b,k]=n.useState(null),[p,E]=n.useState(null),[w,B]=n.useState(null),[I,y]=n.useState(null),[S,U]=n.useState(""),[A,F]=n.useState(null),[R,j]=n.useState(!1),[O,Q]=n.useState(null),[Y,Z]=n.useState(null),[ee,J]=n.useState(""),[X,T]=n.useState(""),[K,q]=n.useState(null),[te,L]=n.useState(null),C=n.useRef(null),{run:v}=qs(d=>{T(d)},{wait:500}),{data:M=[],loading:V,error:pe,run:Ae,runAsync:le}=_e(en,{refreshDeps:[t],ready:t,onSuccess:d=>{d.length>0&&!h&&g(d[0].id)}}),{data:he,loading:we,error:ce,runAsync:Ce}=_e(tn,{manual:!0}),{data:de,loading:re,loadingMore:f,noMore:_,error:ae,reload:oe}=Ys(async d=>{var H;const W=((H=d==null?void 0:d.list)==null?void 0:H.length)??0;return nn(X,W)},{target:C,isNoMore:d=>!(d!=null&&d.hasMore),reloadDeps:[X],manual:!t||s!=="catalog"}),{runAsync:xe,loading:fe,error:be}=_e(async d=>{await G("/mcp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:d.name,config:d})})},{manual:!0,onSuccess:()=>{le(),m(!1),L(null),q(null)},onError:()=>{q(null)}}),Fe=n.useMemo(()=>{const d=u.trim().toLowerCase();return d?M.filter(W=>[W.name,W.endpoint,W.description].some(H=>H.toLowerCase().includes(d))):M},[u,M]),P=n.useMemo(()=>Fe.find(d=>d.id===h)??Fe[0],[Fe,h]),Be=n.useMemo(()=>{if(!P)return[];const d=(P.prompts??[]).flatMap(H=>H.arguments.map(ye=>({key:`prompt:${H.name}:${ye.name}`,label:`${H.name}.${ye.name}`,reference:{type:"prompt",name:H.name},argument:ye.name}))),W=(P.resourceTemplates??[]).flatMap(H=>(H.variables??[]).map(ye=>({key:`resource:${H.uriTemplate}:${ye}`,label:`${H.uriTemplate} · ${ye}`,reference:{type:"resource",uri:H.uriTemplate},argument:ye})));return[...d,...W]},[P]),ve=Be.find(d=>d.key===I)??Be[0];n.useEffect(()=>{if(!t||!M.some(W=>W.oauthStatus==="authorizing"||W.status==="connecting"||W.status==="reconnecting"))return;const d=window.setInterval(()=>{le()},1e3);return()=>window.clearInterval(d)},[t,le,M]),n.useEffect(()=>{b&&M.some(d=>d.name===b.serverName&&(d.oauthStatus==="authenticated"||d.oauthStatus==="disabled"||d.oauthStatus==="unavailable"))&&k(null)},[b,M]),n.useEffect(()=>{!t||s!=="installed"||!P||Ce(P.name).catch(()=>{})},[t,Ce,P,s]);const Me=async(d,W)=>{E({type:d,name:W}),c(null);try{const H=d==="delete"?"":`/${d}`;await G(`/mcp/${encodeURIComponent(W)}${H}`,{method:d==="delete"?"DELETE":"POST"}),await le(),d==="delete"&&(Z(null),g(null))}catch(H){c(H instanceof Error?H.message:a(d==="connect"?"mcp.error.connectFailed":d==="disconnect"?"mcp.error.disconnectFailed":"mcp.error.deleteFailed"))}finally{E(null)}},x=async(d,W)=>{E({type:d,name:W.name}),c(null);try{if(d==="login"){const H=await G(`/mcp/${encodeURIComponent(W.name)}/oauth/login`,{method:"POST"});k({serverName:W.name,url:H.authorizationUrl})}else await G(`/mcp/${encodeURIComponent(W.name)}/oauth/logout`,{method:"POST"}),k(null);await le()}catch(H){c(H instanceof Error?H.message:a(d==="login"?"mcp.error.loginFailed":"mcp.error.logoutFailed"))}finally{E(null)}},ue=async(d,W)=>{B(W),c(null);try{await G(`/mcp/${encodeURIComponent(d.name)}/logging-level`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:W})}),await le(),Ce(d.name).catch(()=>{})}catch(H){c(H instanceof Error?H.message:a("mcp.error.loggingLevelFailed"))}finally{B(null)}},Ne=async d=>{if(ve){j(!0),Q(null),F(null);try{const W=await G(`/mcp/${encodeURIComponent(d.name)}/complete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reference:ve.reference,argument:{name:ve.argument,value:S}})});F(W)}catch(W){Q(W instanceof Error?W.message:a("mcp.error.completionFailed"))}finally{j(!1)}}},je=n.useMemo(()=>new Set(M.map(d=>d.name.toLowerCase())),[M]),o=d=>{L(d)},$=d=>d.startsWith("@modelcontextprotocol/"),z=d=>$(d.name)?"Official":"Community";return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex h-full min-h-0 flex-col",children:e.jsxs("div",{className:"flex overflow-hidden flex-col flex-1 gap-4 p-4 min-h-0 sm:gap-5 sm:p-8",children:[e.jsxs("div",{className:"flex justify-between items-center shrink-0",children:[e.jsx("h2",{className:"text-lg font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono",children:"MCP"}),e.jsxs("div",{className:"flex gap-2 items-center",children:[e.jsx("button",{onClick:Ae,"aria-label":a("mcp.action.refreshServers"),className:"h-8 w-8 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] transition-colors flex items-center justify-center",disabled:V,children:e.jsx(Te,{className:D("h-4 w-4",V&&"animate-spin")})}),e.jsxs("button",{"data-mcp-add-server-trigger":!0,onClick:()=>m(!0),className:"h-8 px-3 rounded-md bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5] text-xs font-mono font-semibold flex items-center gap-1 hover:bg-[#D1D5DB] dark:hover:bg-[#32323a]",children:[e.jsx(We,{className:"h-3.5 w-3.5"}),a("mcp.action.addServer")]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 p-1 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] w-fit shrink-0",children:[e.jsx(Bt,{active:s==="installed",onClick:()=>l("installed"),children:a("mcp.tab.installed",{count:M.length})}),e.jsx(Bt,{active:s==="catalog",onClick:()=>{l("catalog"),de||oe()},children:a("mcp.tab.catalog")})]}),N&&e.jsxs("div",{role:"alert",className:"flex shrink-0 items-start gap-2 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-[11px] font-mono text-red-700 dark:border-red-900/60 dark:bg-red-950/30 dark:text-red-300",children:[e.jsx(Ue,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),e.jsx("span",{className:"flex-1 min-w-0",children:N}),e.jsx("button",{type:"button",onClick:()=>c(null),className:"underline shrink-0",children:a("mcp.action.dismiss")})]}),s==="installed"?e.jsxs("div",{className:"flex overflow-hidden flex-col flex-1 gap-3 min-h-0 sm:flex-row sm:gap-5",children:[e.jsxs("div",{className:"flex h-[180px] w-full shrink-0 flex-col gap-3 overflow-hidden sm:h-auto sm:w-[220px]",children:[e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5] shrink-0",children:a("mcp.servers.title")}),e.jsx("input",{type:"search","aria-label":a("mcp.servers.searchAria"),value:u,onChange:d=>i(d.target.value),placeholder:a("mcp.servers.searchPlaceholder"),className:"h-8 shrink-0 rounded-md border border-transparent bg-[#F3F4F6] px-3 text-[12px] font-mono text-[#111827] outline-none placeholder:text-[#9CA3AF] focus:border-[#D1D5DB] dark:bg-[#18181b] dark:text-[#E5E5E5] dark:placeholder:text-[#71717a] dark:focus:border-[#3f3f46]"}),e.jsxs("div",{className:"flex overflow-y-auto flex-col flex-1 gap-2 pr-1 min-h-0",children:[V&&M.length===0&&e.jsxs("div",{role:"status",className:"flex items-center justify-center gap-2 py-8 text-sm font-mono text-[#9CA3AF] dark:text-[#71717a]",children:[e.jsx(ne,{className:"w-4 h-4 animate-spin"}),a("mcp.servers.loading")]}),pe&&!V&&e.jsxs("div",{role:"alert",className:"flex flex-col gap-2 items-center py-6 font-mono text-xs text-center text-red-600 dark:text-red-400",children:[e.jsx("span",{children:pe.message}),e.jsx("button",{type:"button",onClick:Ae,className:"rounded-md border border-red-200 px-2.5 py-1 text-[11px] dark:border-red-900",children:a("mcp.action.retry")})]}),!pe&&!V&&Fe.length===0&&e.jsx("div",{className:"text-center py-8 text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:a(u?"mcp.servers.noMatch":"mcp.servers.none")}),Fe.map(d=>e.jsxs("button",{onClick:()=>{g(d.id),Z(null),c(null),y(null),U(""),F(null),Q(null)},className:D("text-left rounded-lg px-3 py-2 flex flex-col gap-1 transition-colors shrink-0",d.id===(P==null?void 0:P.id)?"bg-[#E5E7EB] dark:bg-[#111827]":"bg-white dark:bg-[#0C0C0C] hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-[13px] font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:d.name}),e.jsx("span",{className:D("text-[11px] font-mono font-semibold",At[d.status]),children:Pt(d,a)})]}),e.jsx("span",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8] truncate",children:d.endpoint})]},d.id))]})]}),P?e.jsxs("div",{className:"flex overflow-y-auto flex-col flex-1 gap-3 pr-2 min-h-0",children:[e.jsxs("div",{className:"flex justify-between items-center shrink-0",children:[e.jsx("span",{className:"text-base font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:P.name}),e.jsx("span",{className:D("text-xs font-mono font-semibold",At[P.status]),children:Pt(P,a)})]}),e.jsx("p",{className:"text-[12px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:P.description}),P.error&&e.jsx("p",{className:"text-[12px] font-mono text-[#ef4444]",children:a("mcp.server.errorLabel",{error:P.error})}),P.instructions&&e.jsxs("div",{className:"rounded-md bg-[#F3F4F6] px-3 py-2 dark:bg-[#18181b]",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.instructions.title")}),e.jsxs("span",{className:"truncate text-[9px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["sha256 ",P.instructions.sha256]})]}),e.jsx("pre",{className:"mt-1 max-h-36 overflow-y-auto whitespace-pre-wrap break-words text-[11px] font-mono text-[#374151] dark:text-[#d4d4d8]",children:P.instructions.text??a("mcp.instructions.detailsOmittedByPolicy")}),(P.instructions.truncated||P.instructions.detailsOmitted)&&e.jsx("span",{className:"mt-1 block text-[9px] font-mono text-amber-600 dark:text-amber-400",children:P.instructions.detailsOmitted?a("mcp.instructions.detailsOmitted"):a("mcp.instructions.truncated")})]}),P.tasks&&e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-md bg-[#F3F4F6] px-3 py-2 dark:bg-[#18181b]",children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.tasks.title")}),e.jsx("span",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#a1a1aa]",children:P.tasks.enabled?a("mcp.tasks.summary",{count:P.tasks.maxTasksPerSession,interval:P.tasks.pollIntervalMs}):a("mcp.tasks.disabledByDefault")})]}),e.jsx("span",{className:D("text-[10px] font-mono font-semibold uppercase",P.tasks.enabled?"text-[#16A34A] dark:text-[#22C55E]":"text-[#9CA3AF] dark:text-[#71717a]"),children:P.tasks.enabled?a("mcp.tasks.enabled"):a("mcp.tasks.disabled")})]}),P.oauthEnabled&&e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md bg-[#F3F4F6] px-3 py-2 dark:bg-[#18181b]",children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-[#9CA3AF] dark:text-[#71717a]",children:"OAuth"}),e.jsx("span",{role:P.oauthStatus==="authorizing"?"status":void 0,className:D("text-[11px] font-mono",P.oauthStatus==="authenticated"?"text-[#16A34A] dark:text-[#22C55E]":P.oauthStatus==="error"?"text-[#ef4444]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:a(Qs[P.oauthStatus])})]}),P.oauthStatus==="authenticated"?e.jsx("button",{type:"button",onClick:()=>void x("logout",P),disabled:p!==null,className:"h-7 rounded-md border border-[#D1D5DB] px-2.5 text-[11px] font-mono text-[#374151] disabled:opacity-50 dark:border-[#3f3f46] dark:text-[#d4d4d8]",children:(p==null?void 0:p.type)==="logout"?a("mcp.oauth.signingOut"):a("mcp.oauth.signOut")}):P.oauthStatus==="authorizing"?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ne,{className:"h-3.5 w-3.5 animate-spin text-[#2563eb]","aria-hidden":"true"}),(b==null?void 0:b.serverName)===P.name?e.jsx("a",{href:b.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex h-7 items-center rounded-md bg-[#2563eb] px-2.5 text-[11px] font-mono font-semibold text-white dark:bg-[#3b82f6]",children:a("mcp.oauth.continueAuthorization")}):e.jsx("button",{type:"button",onClick:()=>void x("login",P),disabled:p!==null,className:"h-7 rounded-md border border-[#D1D5DB] px-2.5 text-[11px] font-mono text-[#374151] disabled:opacity-50 dark:border-[#3f3f46] dark:text-[#d4d4d8]",children:a("mcp.oauth.resumeAuthorization")})]}):P.oauthStatus==="unavailable"?null:e.jsx("button",{type:"button",onClick:()=>void x("login",P),disabled:p!==null,className:"h-7 rounded-md bg-[#2563eb] px-2.5 text-[11px] font-mono font-semibold text-white disabled:opacity-50 dark:bg-[#3b82f6]",children:(p==null?void 0:p.type)==="login"?a("mcp.oauth.opening"):a("mcp.oauth.authorize")})]}),e.jsxs("div",{className:"flex gap-2 items-center",children:[P.status==="connected"||P.status==="reconnecting"?e.jsx("button",{onClick:()=>void Me("disconnect",P.name),disabled:p!==null,className:"h-7 px-3 rounded-md bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5] text-[11px] font-mono font-semibold",children:(p==null?void 0:p.type)==="disconnect"&&p.name===P.name?a("mcp.action.disconnecting"):P.status==="reconnecting"?a("mcp.action.stopRecovery"):a("mcp.action.disconnect")}):e.jsx("button",{onClick:()=>void Me("connect",P.name),disabled:p!==null||P.oauthEnabled&&P.oauthStatus!=="authenticated",className:"h-7 px-3 rounded-md bg-[#16A34A] dark:bg-[#22C55E] text-white dark:text-[#0C0C0C] text-[11px] font-mono font-semibold",children:(p==null?void 0:p.type)==="connect"&&p.name===P.name?a("mcp.action.connecting"):P.oauthEnabled&&P.oauthStatus!=="authenticated"?a("mcp.action.authorizeFirst"):a("mcp.action.connect")}),e.jsx("button",{onClick:()=>Z(P.name),disabled:p!==null,className:"h-7 px-3 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#ef4444] text-[11px] font-mono font-semibold",children:a("mcp.action.delete")})]}),Y===P.name&&e.jsxs("div",{role:"alertdialog","aria-label":a("mcp.server.deleteAria",{name:P.name}),className:"flex flex-wrap gap-2 justify-between items-center px-3 py-2 bg-red-50 rounded-md border border-red-200 dark:border-red-900/60 dark:bg-red-950/30",children:[e.jsx("span",{className:"text-[11px] font-mono text-red-700 dark:text-red-300",children:a("mcp.delete.confirm")}),e.jsxs("div",{className:"flex gap-2 items-center",children:[e.jsx("button",{type:"button",onClick:()=>Z(null),className:"h-7 rounded-md px-2.5 text-[11px] font-mono text-[#6B7280] dark:text-[#a1a1aa]",children:a("mcp.action.cancel")}),e.jsx("button",{type:"button",onClick:()=>void Me("delete",P.name),disabled:p!==null,className:"h-7 rounded-md bg-red-600 px-2.5 text-[11px] font-mono font-semibold text-white disabled:opacity-60",children:(p==null?void 0:p.type)==="delete"?a("mcp.action.deleting"):a("mcp.action.deleteServer")})]})]}),e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:a("mcp.tools.title",{count:P.tools.length})}),e.jsx("div",{className:"flex flex-wrap gap-2",children:P.tools.length===0?e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.tools.none")}):P.tools.map(d=>e.jsx("span",{className:"px-2 py-1 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[11px] font-mono text-[#111827] dark:text-[#E5E5E5]",children:d},d))}),e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:a("mcp.completion.title")}),P.status!=="connected"?e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.completion.connectPrompt")}):P.completionSupported?Be.length===0?e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.completion.noTargets")}):e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("div",{"aria-label":a("mcp.completion.targetAria"),className:"flex max-h-20 flex-wrap gap-1 overflow-y-auto",children:Be.map(d=>e.jsx("button",{type:"button","aria-pressed":(ve==null?void 0:ve.key)===d.key,onClick:()=>{y(d.key),F(null),Q(null)},className:D("max-w-full truncate rounded px-2 py-1 text-[10px] font-mono",(ve==null?void 0:ve.key)===d.key?"bg-[#111827] text-white dark:bg-[#E5E5E5] dark:text-[#111827]":"bg-[#F3F4F6] text-[#6B7280] dark:bg-[#18181b] dark:text-[#a1a1aa]"),children:d.label},d.key))}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text","aria-label":a("mcp.completion.partialAria"),value:S,onChange:d=>U(d.target.value),placeholder:a("mcp.completion.partialPlaceholder"),className:"h-8 min-w-0 flex-1 rounded-md border border-transparent bg-[#F3F4F6] px-3 text-[11px] font-mono text-[#111827] outline-none placeholder:text-[#9CA3AF] focus:border-[#D1D5DB] dark:bg-[#18181b] dark:text-[#E5E5E5] dark:placeholder:text-[#71717a] dark:focus:border-[#3f3f46]"}),e.jsx("button",{type:"button",onClick:()=>void Ne(P),disabled:R,className:"h-8 shrink-0 rounded-md bg-[#2563eb] px-3 text-[11px] font-mono font-semibold text-white disabled:opacity-50 dark:bg-[#3b82f6]",children:a(R?"mcp.completion.completing":"mcp.completion.complete")})]}),O&&e.jsx("span",{role:"alert",className:"text-[11px] font-mono text-red-600 dark:text-red-400",children:O}),A&&e.jsxs("div",{"aria-label":a("mcp.completion.suggestionsAria"),className:"rounded-md bg-[#F3F4F6] p-2 dark:bg-[#18181b]",children:[e.jsx("div",{className:"flex flex-wrap gap-1",children:A.values.length>0?A.values.map(d=>e.jsx("span",{className:"rounded bg-white px-2 py-1 text-[10px] font-mono text-[#111827] dark:bg-[#0C0C0C] dark:text-[#E5E5E5]",children:d||a("mcp.completion.empty")},d)):e.jsx("span",{className:"text-[10px] font-mono text-[#9CA3AF]",children:a("mcp.completion.noSuggestions")})}),e.jsxs("span",{className:"mt-1 block truncate text-[9px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["sha256 ",A.sha256,A.truncated?a("mcp.meta.truncatedSuffix"):""]})]})]}):e.jsx("span",{className:"text-[12px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.completion.unsupported")}),e.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:a("mcp.diagnostics.title")}),e.jsx("button",{type:"button","aria-label":a("mcp.diagnostics.refreshAria",{name:P.name}),onClick:()=>void Ce(P.name),disabled:we,className:"flex h-7 w-7 items-center justify-center rounded-md text-[#9CA3AF] transition-colors hover:bg-[#E5E7EB] hover:text-[#111827] disabled:opacity-50 dark:text-[#71717a] dark:hover:bg-[#27272a] dark:hover:text-[#E5E5E5]",children:e.jsx(Te,{className:D("h-3.5 w-3.5",we&&"animate-spin")})})]}),e.jsx("div",{"aria-label":a("mcp.log.levelAria"),className:"flex flex-wrap gap-1",children:Zs.map(d=>{var W,H;return e.jsx("button",{type:"button",onClick:()=>void ue(P,d),disabled:P.status!=="connected"||w!==null,"aria-pressed":(((W=P.logging)==null?void 0:W.level)??"warning")===d,className:D("rounded px-2 py-1 text-[10px] font-mono transition-colors disabled:opacity-40",(((H=P.logging)==null?void 0:H.level)??"warning")===d?"bg-[#111827] text-white dark:bg-[#E5E5E5] dark:text-[#111827]":"bg-[#F3F4F6] text-[#6B7280] hover:text-[#111827] dark:bg-[#18181b] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5]"),children:w===d?a("mcp.log.setting"):d},d)})}),ce?e.jsx("div",{role:"alert",className:"rounded-md bg-red-50 px-3 py-2 text-[11px] font-mono text-red-700 dark:bg-red-950/30 dark:text-red-300",children:ce.message}):he!=null&&he.entries.length?e.jsx("div",{"aria-label":a("mcp.diagnostics.logsAria",{name:P.name}),className:"flex max-h-52 flex-col gap-1.5 overflow-y-auto rounded-md bg-[#F3F4F6] p-2 dark:bg-[#18181b]",children:he.entries.map(d=>e.jsxs("div",{className:"rounded bg-white px-2.5 py-2 dark:bg-[#0C0C0C]",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:D("text-[10px] font-mono font-semibold uppercase",["error","critical","alert","emergency"].includes(d.level)?"text-red-600 dark:text-red-400":d.level==="warning"?"text-amber-600 dark:text-amber-400":"text-[#2563eb] dark:text-[#60a5fa]"),children:d.level}),e.jsxs("span",{className:"truncate text-[10px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:[d.logger||P.name," · r",d.revision]})]}),e.jsx("pre",{className:"mt-1 whitespace-pre-wrap break-words text-[11px] font-mono text-[#374151] dark:text-[#d4d4d8]",children:d.message}),e.jsxs("span",{className:"mt-1 block truncate text-[9px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["sha256 ",d.dataSha256,d.truncated?a("mcp.meta.truncatedSuffix"):"",d.detailsOmitted?a("mcp.meta.detailsOmittedSuffix"):""]})]},d.revision))}):e.jsx("span",{className:"text-[11px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a(we?"mcp.log.loading":"mcp.log.none")})]}):e.jsx("div",{className:"flex flex-1 justify-center items-center",children:e.jsx("span",{className:"text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:a("mcp.server.selectPrompt")})})]}):e.jsxs("div",{className:"flex flex-col flex-1 gap-4 min-h-0",children:[e.jsx("div",{className:"flex gap-3 items-center shrink-0",children:e.jsxs("div",{className:"flex-1 h-8 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] flex items-center px-3 gap-2",children:[e.jsx(oa,{className:"h-3.5 w-3.5 text-[#9CA3AF] dark:text-[#71717a]"}),e.jsx("input",{type:"text","aria-label":a("mcp.catalog.searchAria"),value:ee,onChange:d=>{J(d.target.value),v(d.target.value)},placeholder:a("mcp.catalog.searchPlaceholder"),className:"flex-1 bg-transparent text-[12px] font-mono text-[#111827] dark:text-[#E5E5E5] placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none"})]})}),e.jsxs("div",{ref:C,className:"overflow-y-auto flex-1 min-h-0",children:[ae?e.jsxs("div",{role:"alert",className:"flex flex-col gap-3 items-center py-12 font-mono text-center",children:[e.jsx(Ue,{className:"w-6 h-6 text-red-500"}),e.jsx("span",{className:"text-xs text-red-600 dark:text-red-400",children:ae.message}),e.jsx("button",{type:"button",onClick:oe,className:"rounded-md border border-[#E5E7EB] px-3 py-1.5 text-[11px] text-[#6B7280] dark:border-[#27272a] dark:text-[#a1a1aa]",children:a("mcp.catalog.retry")})]}):re&&!de?e.jsx("div",{className:"flex justify-center items-center py-12",children:e.jsx(ne,{className:"h-6 w-6 text-[#9CA3AF] dark:text-[#71717a] animate-spin"})}):e.jsxs("div",{className:"grid grid-cols-1 gap-3 pb-4 sm:grid-cols-2",children:[de==null?void 0:de.list.map(d=>{var me,qe;const W=je.has(Qt(d.name).toLowerCase()),H=K===d.name,ye=z(d);return e.jsxs("div",{className:"rounded-lg bg-white dark:bg-[#0C0C0C] p-4 flex flex-col gap-2",children:[e.jsxs("div",{className:"flex gap-2 justify-between items-center",children:[e.jsx("span",{className:"text-[13px] font-mono font-semibold text-[#111827] dark:text-[#E5E5E5] truncate",children:d.name}),e.jsx("span",{className:D("text-[10px] font-mono px-2 py-0.5 rounded shrink-0",ye==="Official"?"bg-[#16A34A]/20 dark:bg-[#22C55E]/20 text-[#16A34A] dark:text-[#22C55E]":"bg-[#3b82f6]/20 text-[#3b82f6]"),children:a(Xs[ye])})]}),e.jsx("p",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8] line-clamp-2",children:d.description||a("mcp.catalog.noDescription")}),e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:[e.jsxs("span",{children:["v",d.version]}),((me=d.publisher)==null?void 0:me.username)&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"•"}),e.jsx("span",{children:a("mcp.catalog.byAuthor",{author:d.publisher.username})})]})]}),e.jsxs("div",{className:"flex justify-between items-center pt-2 mt-auto",children:[e.jsxs("a",{href:((qe=d.links)==null?void 0:qe.npm)||`https://www.npmjs.com/package/${d.name}`,target:"_blank",rel:"noopener noreferrer",className:"text-[10px] font-mono text-[#9CA3AF] dark:text-[#71717a] hover:text-[#111827] dark:hover:text-[#E5E5E5] flex items-center gap-1",children:[e.jsx(vt,{className:"w-3 h-3"}),"npm"]}),W?e.jsxs("span",{className:"text-[11px] font-mono text-[#16A34A] dark:text-[#22C55E] flex items-center gap-1",children:[e.jsx(ft,{className:"w-3 h-3"}),a("mcp.catalog.installed")]}):e.jsxs("button",{onClick:()=>o(d),disabled:H,className:"h-6 px-2 rounded-md bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5] text-[10px] font-mono font-semibold flex items-center gap-1 hover:bg-[#D1D5DB] dark:hover:bg-[#32323a] disabled:opacity-50",children:[e.jsx(ut,{className:D("h-3 w-3",H&&"animate-pulse")}),a(H?"mcp.catalog.installing":"mcp.catalog.install")]})]})]},d.name)}),(de==null?void 0:de.list.length)===0&&e.jsx("div",{className:"col-span-full py-12 text-center text-xs font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.catalog.noPackages")})]}),f&&e.jsx("div",{className:"flex justify-center items-center py-4",children:e.jsx(ne,{className:"h-5 w-5 text-[#9CA3AF] dark:text-[#71717a] animate-spin"})}),_&&de&&de.list.length>0&&e.jsx("div",{className:"text-center py-4 text-[11px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.catalog.noMore")})]}),e.jsxs("div",{className:"flex items-center justify-between pt-2 border-t border-[#E5E7EB] dark:border-[#1f2937] shrink-0",children:[e.jsx("span",{className:"text-[11px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:a("mcp.catalog.packagesFound",{count:(de==null?void 0:de.total)??0})}),e.jsxs("a",{href:"https://glama.ai/mcp/servers",target:"_blank",rel:"noopener noreferrer",className:"text-[11px] font-mono text-[#3b82f6] hover:underline flex items-center gap-1",children:[a("mcp.catalog.browseGlama"),e.jsx(vt,{className:"w-3 h-3"})]})]})]})]})}),e.jsx(ln,{open:r,onOpenChange:m,onAdd:xe,saving:fe,error:(be==null?void 0:be.message)??null}),te&&e.jsx(on,{pkg:te,onClose:()=>L(null),installing:fe,error:(be==null?void 0:be.message)??null,onInstall:d=>(q(te.name),xe(d))})]})}function Bt({active:t,children:a,onClick:s}){return e.jsx("button",{onClick:s,className:D("px-3 py-1 rounded text-[12px] font-mono font-semibold transition-colors",t?"bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:a})}function ln({open:t,onOpenChange:a,onAdd:s,saving:l,error:r}){const m=ge(),[h,g]=n.useState("form"),[u,i]=n.useState(""),[N,c]=n.useState(""),[b,k]=n.useState(""),[p,E]=n.useState(null),[w,B]=n.useState(`{
|
|
2
2
|
"name": "my-server",
|
|
3
3
|
"command": "npx",
|
|
4
4
|
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as n,r as d}from"./vendor-react-DG5dkZ_t.js";import{j as N,y as Ce,d as G,c as L,z as Te,A as E,E as _,F as De,u as Ae,b as p,a as o,G as P,n as Ie,D as Fe,e as Pe,H as Re,g as Le,h as Ee,s as qe}from"./index-BnCT8SxR.js";import{ae as ue,i as Be,F as Me,j as Ke,h as Oe,af as $e,ag as We,o as Qe,ah as ze,ai as He,k as U,f as de,aj as Ue,U as Ge,ak as _e,G as Ve,al as Je,L as R,S as Xe,R as Ye}from"./vendor-icons-ICv1v-tf.js";import"./vendor-radix-DXRuAJHH.js";import"./session-events-BZao_jMQ.js";function Ze(t,r){const s=r.trim().toLocaleLowerCase();return s?t.filter(i=>`${i.label} ${i.description} ${i.keywords}`.toLocaleLowerCase().includes(s)):t}function et({actions:t,selectedIndex:r,onSelect:s,onRun:i}){return t.map((c,h)=>{const k=h===r,m=c.icon;return n.jsx("div",{id:`command-center-result-${h}`,"data-task-result-index":h,role:"option","aria-selected":k,onMouseEnter:()=>s(h),className:N("group flex min-h-[58px] w-full items-center rounded-lg border border-transparent text-left transition-colors",k?"border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]":"hover:bg-[hsl(var(--deck-surface))]/60"),children:n.jsxs("button",{type:"button",onClick:()=>i(c),className:"flex min-h-[58px] min-w-0 flex-1 items-center gap-3 px-3 py-2 text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))]",children:[n.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] text-[hsl(var(--deck-accent))]",children:n.jsx(m,{className:"h-3.5 w-3.5"})}),n.jsxs("span",{className:"min-w-0 flex-1",children:[n.jsx("span",{className:"block truncate font-mono text-[12.5px] font-medium text-[hsl(var(--deck-ink))]",children:c.label}),n.jsx("span",{className:"mt-0.5 block truncate text-[10.5px] text-[hsl(var(--deck-ink-faint))]",children:c.description})]}),c.shortcut&&n.jsx("span",{className:"shrink-0 rounded border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] px-1.5 py-0.5 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]",children:c.shortcut}),n.jsx(ue,{className:N("h-3.5 w-3.5 shrink-0 transition-all",k?"translate-x-0 text-[hsl(var(--deck-accent))] opacity-100":"-translate-x-1 text-[hsl(var(--deck-ink-faint))] opacity-0")})]})},c.id)})}const tt={running:"running active 进行中 运行中",queued:"queued waiting 排队中 等待中",interrupted:"interrupted paused 已暂停 已中断",failed:"failed error 已失败 错误",cancelled:"cancelled canceled 已取消",completed:"completed done finished 已完成 完成"};function V(t){return Te(t,De)}function nt(t){const r=t.lastMessageTime||t.firstMessageTime;if(!r)return"";const s=new Date(r);return Number.isNaN(s.getTime())?"":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(s)}function q(t){return t.normalize("NFKC").toLocaleLowerCase().trim()}function st(t,r){var i,c;const s=E(t,r);return q([V(t),_(s),s,t.projectPath,t.gitBranch,t.taskWorktreeBranch,t.taskStatus,tt[t.taskStatus],((i=t.pendingInteraction)==null?void 0:i.type)==="question"?"needs answer question attention 等待回答 需要回答":((c=t.pendingInteraction)==null?void 0:c.type)==="elicitation"?"mcp input elicitation attention MCP 输入 等待输入":t.pendingInteraction?"needs approval permission attention 等待审批 需要授权":"",t.sessionId].filter(Boolean).join(" "))}function me(t,r,s){if(!r)return 0;const i=q(V(t)),c=q(_(E(t,s)));return i===r?500:i.startsWith(r)?400:i.includes(r)?300:c===r?250:c.startsWith(r)?200:100}function at(t,r,s,i=50){const c=q(r),h=c.split(/\s+/).filter(Boolean),k=new Set;return t.filter(m=>{if(h.length===0)return!0;const u=st(m,s);return h.every(g=>u.includes(g))}).sort((m,u)=>{const g=+!!u.pendingInteraction-+!!m.pendingInteraction;return g!==0?g:me(u,c,s)-me(m,c,s)||Ce(m,u)}).filter(m=>{const u=G(L(m));return k.has(u)?!1:(k.add(u),!0)}).slice(0,i)}const rt={running:"sidebar.group.running",queued:"sidebar.group.queued",interrupted:"sidebar.group.interrupted",failed:"sidebar.group.failed",cancelled:"sidebar.group.cancelled",completed:"sidebar.group.done"};function mt(){const t=Ae(),r=p(e=>e.isTaskSwitcherOpen),s=p(e=>e.taskSwitcherMode),i=p(e=>e.setTaskSwitcherOpen),c=p(e=>e.setTaskSwitcherMode),h=p(e=>e.toggleSidebar),k=p(e=>e.isFilePreviewOpen),m=p(e=>e.setFilePreviewOpen),u=p(e=>e.openFilePreview),g=p(e=>e.toggleTerminal),b=p(e=>e.openSettings),v=o(e=>e.sessions),pe=o(e=>e.isLoading),C=o(e=>e.catalogLoadState),B=C==="loading"||C==="hydrating",M=o(e=>e.currentSessionRef),J=o(e=>e.isTemporarySession),X=o(e=>e.startTemporarySession),K=o(e=>e.unreadTaskKeys),he=o(e=>e.boundProjects),A=o(e=>{var a;return e.selectedProjectPath??((a=e.taskWorkspaceInfo)==null?void 0:a.cwd)??null}),ke=o(e=>e.selectProject),xe=o(e=>e.selectSession),fe=o(e=>e.cancelTask),ge=o(e=>e.retryTask),be=o(e=>e.cancellingTaskKeys),ve=o(e=>e.retryingTaskKeys),[w,Y]=d.useState(""),[f,j]=d.useState(0),[we,O]=d.useState(null),[Z,I]=d.useState(null),ee=d.useRef(null),te=d.useRef(null),ne=d.useMemo(()=>[{id:"new-task",label:t("commandCenter.action.newTask"),description:t("commandCenter.action.newTaskDescription"),keywords:"create compose session",icon:Be,shortcut:P("newTask"),run:()=>{X(),requestAnimationFrame(()=>Ie())}},{id:"toggle-preview",label:t("commandCenter.action.preview"),description:t("commandCenter.action.previewDescription"),keywords:"diff files logs artifact review",icon:Me,run:()=>{k?m(!1):u((!M||J)&&p.getState().previewRequestId===0?{tab:"files"}:void 0)}},{id:"toggle-terminal",label:t("commandCenter.action.terminal"),description:t("commandCenter.action.terminalDescription"),keywords:"shell console command line",icon:Ke,run:g},{id:"open-settings",label:t("commandCenter.action.settings"),description:t("commandCenter.action.settingsDescription"),keywords:"preferences general",icon:Oe,run:()=>b("general")},{id:"open-models",label:t("commandCenter.action.models"),description:t("commandCenter.action.modelsDescription"),keywords:"provider llm api configuration",icon:$e,run:()=>b("models")},{id:"open-shortcuts",label:t("commandCenter.action.shortcuts"),description:t("commandCenter.action.shortcutsDescription"),keywords:"keyboard hotkey key binding",icon:We,shortcut:P("openCommands"),run:()=>b("shortcuts")},{id:"open-skills",label:t("commandCenter.action.skills"),description:t("commandCenter.action.skillsDescription"),keywords:"capabilities workflow",icon:Qe,run:()=>b("skills")},{id:"open-mcp",label:t("commandCenter.action.mcp"),description:t("commandCenter.action.mcpDescription"),keywords:"server tools protocol integration",icon:ze,run:()=>b("mcp")},{id:"toggle-sidebar",label:t("commandCenter.action.sidebar"),description:t("commandCenter.action.sidebarDescription"),keywords:"navigation layout panel projects",icon:He,shortcut:P("toggleSidebar"),run:h}],[M,k,J,u,b,m,X,t,h,g]),y=d.useMemo(()=>at(v,w,A),[A,w,v]),T=d.useMemo(()=>Ze(ne,w),[ne,w]),D=s==="tasks"?y.length:T.length,se=d.useMemo(()=>v.filter(e=>!!e.pendingInteraction).length,[v]),$=s==="tasks"?y[f]??null:null,W=s==="commands"?T[f]??null:null;d.useEffect(()=>{r&&(Y(""),j(0),O(null),I(null))},[s,r]),d.useEffect(()=>{j(0)},[w]),d.useEffect(()=>{var a,l;const e=(a=te.current)==null?void 0:a.querySelector(`[data-task-result-index="${f}"]`);(l=e==null?void 0:e.scrollIntoView)==null||l.call(e,{block:"nearest"})},[f]);const ae=async e=>{const a=L(e),l=G(a),x=E(e,A);O(l),he.some(S=>S.path===x)&&ke(x);try{await xe(a),i(!1)}catch(S){I(S instanceof Error?S.message:t("taskSwitcher.action.failed"))}finally{O(null)}},re=async(e,a)=>{I(null);try{const l=L(a);e==="cancel"?await fe(l):(await ge(l),i(!1))}catch(l){I(l instanceof Error?l.message:t("taskSwitcher.action.failed"))}},ie=e=>{i(!1),requestAnimationFrame(e.run)},ye=e=>{e.key==="ArrowDown"?(e.preventDefault(),j(a=>D===0?0:(a+1)%D)):e.key==="ArrowUp"?(e.preventDefault(),j(a=>D===0?0:(a-1+D)%D)):e.key==="Enter"&&$?(e.preventDefault(),ae($)):e.key==="Enter"&&W?(e.preventDefault(),ie(W)):e.key==="Escape"&&(e.preventDefault(),i(!1))};return n.jsx(Fe,{open:r,onOpenChange:i,children:n.jsxs(Pe,{hideCloseButton:!0,onCloseAutoFocus:Re,className:"top-3 w-[min(680px,calc(100vw-32px))] max-w-none translate-y-0 gap-0 overflow-hidden rounded-xl border-[hsl(var(--deck-border-strong))] bg-[hsl(var(--deck-canvas))] p-0 shadow-2xl sm:top-[18%]",children:[n.jsx(Le,{className:"sr-only",children:t("commandCenter.title")}),n.jsx(Ee,{className:"sr-only",children:t("commandCenter.description")}),n.jsxs("div",{className:"flex h-14 items-center gap-3 border-b border-[hsl(var(--deck-hairline))] px-4",children:[n.jsx(U,{className:"h-4 w-4 shrink-0 text-[hsl(var(--deck-accent))]"}),n.jsx("input",{ref:ee,autoFocus:!0,role:"combobox","aria-expanded":"true","aria-controls":"task-switcher-results","aria-activedescendant":$?`task-switcher-result-${f}`:W?`command-center-result-${f}`:void 0,"aria-label":t(s==="tasks"?"taskSwitcher.searchAria":"commandCenter.searchAria"),placeholder:t(s==="tasks"?"taskSwitcher.placeholder":"commandCenter.placeholder"),value:w,onChange:e=>Y(e.target.value),onKeyDown:ye,className:"h-full min-w-0 flex-1 bg-transparent font-mono text-[14px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]"}),n.jsx("span",{className:"rounded border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-1.5 py-0.5 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]",children:"ESC"})]}),n.jsxs("div",{className:"flex items-center justify-between gap-3 px-4 pb-2 pt-3",children:[n.jsx("div",{role:"tablist","aria-label":t("commandCenter.modeAria"),className:"flex items-center gap-0.5 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] p-0.5",children:["tasks","commands"].map(e=>n.jsx("button",{type:"button",role:"tab","aria-selected":s===e,onClick:()=>{c(e),requestAnimationFrame(()=>{var a;return(a=ee.current)==null?void 0:a.focus()})},className:N("rounded-[5px] px-2.5 py-1 font-mono text-[9.5px] uppercase tracking-[0.1em] transition-colors",s===e?"bg-[hsl(var(--deck-canvas))] text-[hsl(var(--deck-ink))] shadow-sm":"text-[hsl(var(--deck-ink-faint))] hover:text-[hsl(var(--deck-ink-muted))]"),children:t(e==="tasks"?"commandCenter.mode.tasks":"commandCenter.mode.commands")},e))}),n.jsx("span",{children:n.jsx("span",{className:"font-mono text-[9.5px] uppercase tracking-[0.14em] text-[hsl(var(--deck-ink-faint))]",children:s==="commands"?t("commandCenter.actions",{count:T.length}):w?t("taskSwitcher.results",{count:y.length}):B?v.length===0?t("taskSwitcher.indexing"):t("taskSwitcher.indexingLoaded",{count:v.length}):C==="error"?t("sidebar.catalog.incomplete"):se>0?t("taskSwitcher.needsAction",{count:se}):K.length>0?t("taskSwitcher.unread",{count:K.length}):t("taskSwitcher.scope",{count:v.length})})})]}),Z&&n.jsx("div",{role:"alert",className:"mx-4 mb-2 rounded-md border border-red-300/70 bg-red-50 px-3 py-2 font-mono text-[10.5px] text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300",children:Z}),n.jsxs("div",{id:"task-switcher-results",ref:te,role:"listbox","aria-label":t(s==="tasks"?"taskSwitcher.resultsAria":"commandCenter.resultsAria"),className:"max-h-[min(460px,60vh)] overflow-y-auto px-2 pb-2",children:[s==="commands"&&n.jsx(et,{actions:T,selectedIndex:f,onSelect:j,onRun:ie}),s==="tasks"&&y.map((e,a)=>{const l=L(e),x=G(l),S=E(e,A),je=_(S),ce=qe(l,M),Q=a===f,Se=we===x,Ne=K.includes(x),F=V(e),oe=e.taskStatus==="running"||e.taskStatus==="queued",le=!!e.taskRetryAvailable&&(e.taskStatus==="failed"||e.taskStatus==="interrupted"||e.taskStatus==="cancelled"),z=be.includes(x),H=ve.includes(x);return n.jsxs("div",{id:`task-switcher-result-${a}`,"data-task-result-index":a,"data-session-ref":x,role:"option","aria-selected":Q,onMouseEnter:()=>j(a),className:N("group flex min-h-[68px] w-full items-center rounded-lg border border-transparent text-left transition-colors",Q?"border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]":"hover:bg-[hsl(var(--deck-surface))]/60"),children:[n.jsxs("button",{type:"button",onClick:()=>void ae(e),"aria-label":t("session.action.select",{title:F}),className:"flex min-h-[68px] min-w-0 flex-1 items-center gap-3 px-3 py-2 text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))]",children:[n.jsx("span",{className:N("flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-[hsl(var(--deck-canvas))]",ce?"border-[hsl(var(--deck-accent)/0.5)] text-[hsl(var(--deck-accent))]":"border-[hsl(var(--deck-border))] text-[hsl(var(--deck-ink-faint))]"),children:e.pendingInteraction?n.jsx(de,{className:"h-3.5 w-3.5 animate-pulse text-amber-600 dark:text-amber-400"}):e.taskStatus==="running"?n.jsx(Ue,{className:"h-3.5 w-3.5 animate-pulse"}):n.jsx(Ge,{className:"h-3.5 w-3.5"})}),n.jsxs("span",{className:"min-w-0 flex-1",children:[n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"truncate font-mono text-[12.5px] font-medium text-[hsl(var(--deck-ink))]",children:F}),ce&&n.jsx("span",{className:"shrink-0 rounded bg-[hsl(var(--deck-accent-soft))] px-1.5 py-0.5 font-mono text-[8.5px] uppercase tracking-[0.1em] text-[hsl(var(--deck-accent))]",children:t("taskSwitcher.current")}),Ne&&n.jsx("span",{className:"shrink-0 rounded bg-[hsl(var(--deck-accent-soft))] px-1.5 py-0.5 font-mono text-[8.5px] uppercase tracking-[0.1em] text-[hsl(var(--deck-accent))]",children:t("taskSwitcher.new")}),e.pendingInteraction&&n.jsx("span",{className:"shrink-0 rounded bg-amber-100 px-1.5 py-0.5 font-mono text-[8.5px] uppercase tracking-[0.08em] text-amber-800 dark:bg-amber-950/60 dark:text-amber-300",children:t(e.pendingInteraction.type==="question"?"interaction.badge.question":e.pendingInteraction.type==="elicitation"?"interaction.badge.elicitation":"interaction.badge.permission")}),e.taskRetriedFrom&&n.jsx("span",{title:`${t("session.retriedFrom")} ${e.taskRetriedFrom.sessionId.slice(0,6)}`,className:"shrink-0 rounded bg-[hsl(var(--deck-accent-soft))] px-1.5 py-0.5 font-mono text-[8.5px] text-[hsl(var(--deck-accent))]",children:t("session.retryShort")})]}),n.jsxs("span",{className:"mt-1 flex min-w-0 items-center gap-2 font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]",children:[n.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1",children:[n.jsx(_e,{className:"h-2.5 w-2.5 shrink-0"}),n.jsx("span",{className:"truncate",children:je})]}),(e.taskWorktreeBranch||e.gitBranch)&&n.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1",children:[n.jsx(Ve,{className:"h-2.5 w-2.5 shrink-0"}),n.jsx("span",{className:"truncate",children:e.taskWorktreeBranch||e.gitBranch})]}),n.jsx("span",{className:"shrink-0",children:e.taskStatus==="queued"&&e.taskQueuePosition!==void 0&&e.taskQueueDepth!==void 0?t("session.queued",{position:e.taskQueuePosition,depth:e.taskQueueDepth}):e.pendingInteraction?t(e.pendingInteraction.type==="question"?"interaction.badge.question":e.pendingInteraction.type==="elicitation"?"interaction.badge.elicitation":"interaction.badge.permission"):t(rt[e.taskStatus])}),n.jsxs("span",{className:"ml-auto inline-flex shrink-0 items-center gap-1",children:[n.jsx(Je,{className:"h-2.5 w-2.5"}),nt(e)]})]})]}),Se?n.jsx(R,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-[hsl(var(--deck-accent))]"}):n.jsx(ue,{className:N("h-3.5 w-3.5 shrink-0 transition-all",Q?"translate-x-0 text-[hsl(var(--deck-accent))] opacity-100":"-translate-x-1 text-[hsl(var(--deck-ink-faint))] opacity-0")})]}),(oe||le)&&n.jsxs("div",{className:"flex shrink-0 items-center pr-2",children:[oe&&n.jsx("button",{type:"button","aria-label":t(z?"session.action.stopping":"session.action.stop",{title:F}),disabled:z,onClick:()=>void re("cancel",e),className:"flex h-8 w-8 items-center justify-center rounded-md text-red-500 transition-colors hover:bg-red-500/10 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-red-500 disabled:cursor-wait disabled:opacity-60",children:z?n.jsx(R,{className:"h-3.5 w-3.5 animate-spin"}):n.jsx(Xe,{className:"h-3.5 w-3.5"})}),le&&n.jsx("button",{type:"button","aria-label":t(H?"session.action.retrying":"session.action.retry",{title:F}),disabled:H,onClick:()=>void re("retry",e),className:"flex h-8 w-8 items-center justify-center rounded-md text-[hsl(var(--deck-accent))] transition-colors hover:bg-[hsl(var(--deck-accent-soft))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))] disabled:cursor-wait disabled:opacity-60",children:H?n.jsx(R,{className:"h-3.5 w-3.5 animate-spin"}):n.jsx(Ye,{className:"h-3.5 w-3.5"})})]})]},x)}),s==="tasks"&&y.length===0&&B&&n.jsxs("div",{className:"flex min-h-36 items-center justify-center gap-2 font-mono text-[11px] text-[hsl(var(--deck-ink-faint))]",children:[n.jsx(R,{className:"h-3.5 w-3.5 animate-spin text-[hsl(var(--deck-accent))]"}),t("taskSwitcher.indexing")]}),s==="tasks"&&y.length===0&&!B&&C!=="error"&&!pe&&n.jsxs("div",{className:"flex min-h-36 flex-col items-center justify-center px-6 text-center",children:[n.jsx(U,{className:"mb-3 h-5 w-5 text-[hsl(var(--deck-ink-faint))]"}),n.jsx("p",{className:"font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:t("taskSwitcher.empty")}),n.jsx("p",{className:"mt-1 text-[10.5px] text-[hsl(var(--deck-ink-faint))]",children:t("taskSwitcher.emptyHint")})]}),s==="tasks"&&y.length===0&&C==="error"&&n.jsxs("div",{role:"alert",className:"flex min-h-36 flex-col items-center justify-center px-6 text-center",children:[n.jsx(de,{className:"mb-3 h-5 w-5 text-amber-500"}),n.jsx("p",{className:"font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:t("sidebar.catalog.incomplete")})]}),s==="commands"&&T.length===0&&n.jsxs("div",{className:"flex min-h-36 flex-col items-center justify-center px-6 text-center",children:[n.jsx(U,{className:"mb-3 h-5 w-5 text-[hsl(var(--deck-ink-faint))]"}),n.jsx("p",{className:"font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:t("commandCenter.empty")}),n.jsx("p",{className:"mt-1 text-[10.5px] text-[hsl(var(--deck-ink-faint))]",children:t("commandCenter.emptyHint")})]})]}),n.jsxs("div",{className:"flex items-center gap-4 border-t border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-canvas-veil))] px-4 py-2 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]",children:[n.jsxs("span",{children:["↑↓ ",t("taskSwitcher.hint.navigate")]}),n.jsxs("span",{children:["↵ ",t("taskSwitcher.hint.open")]}),n.jsxs("span",{className:"ml-auto",children:[P(s==="tasks"?"openCommands":"searchTasks")," ",t(s==="tasks"?"commandCenter.mode.commands":"commandCenter.mode.tasks")]})]})]})})}export{mt as TaskSwitcher};
|
|
1
|
+
import{j as n,r as d}from"./vendor-react-DG5dkZ_t.js";import{j as N,y as Ce,d as G,c as L,z as Te,A as E,E as _,F as De,u as Ae,b as p,a as o,G as P,n as Ie,D as Fe,e as Pe,H as Re,g as Le,h as Ee,s as qe}from"./index-DGZjm9wT.js";import{ae as ue,i as Be,F as Me,j as Ke,h as Oe,af as $e,ag as We,o as Qe,ah as ze,ai as He,k as U,f as de,aj as Ue,U as Ge,ak as _e,G as Ve,al as Je,L as R,S as Xe,R as Ye}from"./vendor-icons-ICv1v-tf.js";import"./vendor-radix-DXRuAJHH.js";import"./session-events-Dk20sSDo.js";function Ze(t,r){const s=r.trim().toLocaleLowerCase();return s?t.filter(i=>`${i.label} ${i.description} ${i.keywords}`.toLocaleLowerCase().includes(s)):t}function et({actions:t,selectedIndex:r,onSelect:s,onRun:i}){return t.map((c,h)=>{const k=h===r,m=c.icon;return n.jsx("div",{id:`command-center-result-${h}`,"data-task-result-index":h,role:"option","aria-selected":k,onMouseEnter:()=>s(h),className:N("group flex min-h-[58px] w-full items-center rounded-lg border border-transparent text-left transition-colors",k?"border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]":"hover:bg-[hsl(var(--deck-surface))]/60"),children:n.jsxs("button",{type:"button",onClick:()=>i(c),className:"flex min-h-[58px] min-w-0 flex-1 items-center gap-3 px-3 py-2 text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))]",children:[n.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] text-[hsl(var(--deck-accent))]",children:n.jsx(m,{className:"h-3.5 w-3.5"})}),n.jsxs("span",{className:"min-w-0 flex-1",children:[n.jsx("span",{className:"block truncate font-mono text-[12.5px] font-medium text-[hsl(var(--deck-ink))]",children:c.label}),n.jsx("span",{className:"mt-0.5 block truncate text-[10.5px] text-[hsl(var(--deck-ink-faint))]",children:c.description})]}),c.shortcut&&n.jsx("span",{className:"shrink-0 rounded border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] px-1.5 py-0.5 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]",children:c.shortcut}),n.jsx(ue,{className:N("h-3.5 w-3.5 shrink-0 transition-all",k?"translate-x-0 text-[hsl(var(--deck-accent))] opacity-100":"-translate-x-1 text-[hsl(var(--deck-ink-faint))] opacity-0")})]})},c.id)})}const tt={running:"running active 进行中 运行中",queued:"queued waiting 排队中 等待中",interrupted:"interrupted paused 已暂停 已中断",failed:"failed error 已失败 错误",cancelled:"cancelled canceled 已取消",completed:"completed done finished 已完成 完成"};function V(t){return Te(t,De)}function nt(t){const r=t.lastMessageTime||t.firstMessageTime;if(!r)return"";const s=new Date(r);return Number.isNaN(s.getTime())?"":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(s)}function q(t){return t.normalize("NFKC").toLocaleLowerCase().trim()}function st(t,r){var i,c;const s=E(t,r);return q([V(t),_(s),s,t.projectPath,t.gitBranch,t.taskWorktreeBranch,t.taskStatus,tt[t.taskStatus],((i=t.pendingInteraction)==null?void 0:i.type)==="question"?"needs answer question attention 等待回答 需要回答":((c=t.pendingInteraction)==null?void 0:c.type)==="elicitation"?"mcp input elicitation attention MCP 输入 等待输入":t.pendingInteraction?"needs approval permission attention 等待审批 需要授权":"",t.sessionId].filter(Boolean).join(" "))}function me(t,r,s){if(!r)return 0;const i=q(V(t)),c=q(_(E(t,s)));return i===r?500:i.startsWith(r)?400:i.includes(r)?300:c===r?250:c.startsWith(r)?200:100}function at(t,r,s,i=50){const c=q(r),h=c.split(/\s+/).filter(Boolean),k=new Set;return t.filter(m=>{if(h.length===0)return!0;const u=st(m,s);return h.every(g=>u.includes(g))}).sort((m,u)=>{const g=+!!u.pendingInteraction-+!!m.pendingInteraction;return g!==0?g:me(u,c,s)-me(m,c,s)||Ce(m,u)}).filter(m=>{const u=G(L(m));return k.has(u)?!1:(k.add(u),!0)}).slice(0,i)}const rt={running:"sidebar.group.running",queued:"sidebar.group.queued",interrupted:"sidebar.group.interrupted",failed:"sidebar.group.failed",cancelled:"sidebar.group.cancelled",completed:"sidebar.group.done"};function mt(){const t=Ae(),r=p(e=>e.isTaskSwitcherOpen),s=p(e=>e.taskSwitcherMode),i=p(e=>e.setTaskSwitcherOpen),c=p(e=>e.setTaskSwitcherMode),h=p(e=>e.toggleSidebar),k=p(e=>e.isFilePreviewOpen),m=p(e=>e.setFilePreviewOpen),u=p(e=>e.openFilePreview),g=p(e=>e.toggleTerminal),b=p(e=>e.openSettings),v=o(e=>e.sessions),pe=o(e=>e.isLoading),C=o(e=>e.catalogLoadState),B=C==="loading"||C==="hydrating",M=o(e=>e.currentSessionRef),J=o(e=>e.isTemporarySession),X=o(e=>e.startTemporarySession),K=o(e=>e.unreadTaskKeys),he=o(e=>e.boundProjects),A=o(e=>{var a;return e.selectedProjectPath??((a=e.taskWorkspaceInfo)==null?void 0:a.cwd)??null}),ke=o(e=>e.selectProject),xe=o(e=>e.selectSession),fe=o(e=>e.cancelTask),ge=o(e=>e.retryTask),be=o(e=>e.cancellingTaskKeys),ve=o(e=>e.retryingTaskKeys),[w,Y]=d.useState(""),[f,j]=d.useState(0),[we,O]=d.useState(null),[Z,I]=d.useState(null),ee=d.useRef(null),te=d.useRef(null),ne=d.useMemo(()=>[{id:"new-task",label:t("commandCenter.action.newTask"),description:t("commandCenter.action.newTaskDescription"),keywords:"create compose session",icon:Be,shortcut:P("newTask"),run:()=>{X(),requestAnimationFrame(()=>Ie())}},{id:"toggle-preview",label:t("commandCenter.action.preview"),description:t("commandCenter.action.previewDescription"),keywords:"diff files logs artifact review",icon:Me,run:()=>{k?m(!1):u((!M||J)&&p.getState().previewRequestId===0?{tab:"files"}:void 0)}},{id:"toggle-terminal",label:t("commandCenter.action.terminal"),description:t("commandCenter.action.terminalDescription"),keywords:"shell console command line",icon:Ke,run:g},{id:"open-settings",label:t("commandCenter.action.settings"),description:t("commandCenter.action.settingsDescription"),keywords:"preferences general",icon:Oe,run:()=>b("general")},{id:"open-models",label:t("commandCenter.action.models"),description:t("commandCenter.action.modelsDescription"),keywords:"provider llm api configuration",icon:$e,run:()=>b("models")},{id:"open-shortcuts",label:t("commandCenter.action.shortcuts"),description:t("commandCenter.action.shortcutsDescription"),keywords:"keyboard hotkey key binding",icon:We,shortcut:P("openCommands"),run:()=>b("shortcuts")},{id:"open-skills",label:t("commandCenter.action.skills"),description:t("commandCenter.action.skillsDescription"),keywords:"capabilities workflow",icon:Qe,run:()=>b("skills")},{id:"open-mcp",label:t("commandCenter.action.mcp"),description:t("commandCenter.action.mcpDescription"),keywords:"server tools protocol integration",icon:ze,run:()=>b("mcp")},{id:"toggle-sidebar",label:t("commandCenter.action.sidebar"),description:t("commandCenter.action.sidebarDescription"),keywords:"navigation layout panel projects",icon:He,shortcut:P("toggleSidebar"),run:h}],[M,k,J,u,b,m,X,t,h,g]),y=d.useMemo(()=>at(v,w,A),[A,w,v]),T=d.useMemo(()=>Ze(ne,w),[ne,w]),D=s==="tasks"?y.length:T.length,se=d.useMemo(()=>v.filter(e=>!!e.pendingInteraction).length,[v]),$=s==="tasks"?y[f]??null:null,W=s==="commands"?T[f]??null:null;d.useEffect(()=>{r&&(Y(""),j(0),O(null),I(null))},[s,r]),d.useEffect(()=>{j(0)},[w]),d.useEffect(()=>{var a,l;const e=(a=te.current)==null?void 0:a.querySelector(`[data-task-result-index="${f}"]`);(l=e==null?void 0:e.scrollIntoView)==null||l.call(e,{block:"nearest"})},[f]);const ae=async e=>{const a=L(e),l=G(a),x=E(e,A);O(l),he.some(S=>S.path===x)&&ke(x);try{await xe(a),i(!1)}catch(S){I(S instanceof Error?S.message:t("taskSwitcher.action.failed"))}finally{O(null)}},re=async(e,a)=>{I(null);try{const l=L(a);e==="cancel"?await fe(l):(await ge(l),i(!1))}catch(l){I(l instanceof Error?l.message:t("taskSwitcher.action.failed"))}},ie=e=>{i(!1),requestAnimationFrame(e.run)},ye=e=>{e.key==="ArrowDown"?(e.preventDefault(),j(a=>D===0?0:(a+1)%D)):e.key==="ArrowUp"?(e.preventDefault(),j(a=>D===0?0:(a-1+D)%D)):e.key==="Enter"&&$?(e.preventDefault(),ae($)):e.key==="Enter"&&W?(e.preventDefault(),ie(W)):e.key==="Escape"&&(e.preventDefault(),i(!1))};return n.jsx(Fe,{open:r,onOpenChange:i,children:n.jsxs(Pe,{hideCloseButton:!0,onCloseAutoFocus:Re,className:"top-3 w-[min(680px,calc(100vw-32px))] max-w-none translate-y-0 gap-0 overflow-hidden rounded-xl border-[hsl(var(--deck-border-strong))] bg-[hsl(var(--deck-canvas))] p-0 shadow-2xl sm:top-[18%]",children:[n.jsx(Le,{className:"sr-only",children:t("commandCenter.title")}),n.jsx(Ee,{className:"sr-only",children:t("commandCenter.description")}),n.jsxs("div",{className:"flex h-14 items-center gap-3 border-b border-[hsl(var(--deck-hairline))] px-4",children:[n.jsx(U,{className:"h-4 w-4 shrink-0 text-[hsl(var(--deck-accent))]"}),n.jsx("input",{ref:ee,autoFocus:!0,role:"combobox","aria-expanded":"true","aria-controls":"task-switcher-results","aria-activedescendant":$?`task-switcher-result-${f}`:W?`command-center-result-${f}`:void 0,"aria-label":t(s==="tasks"?"taskSwitcher.searchAria":"commandCenter.searchAria"),placeholder:t(s==="tasks"?"taskSwitcher.placeholder":"commandCenter.placeholder"),value:w,onChange:e=>Y(e.target.value),onKeyDown:ye,className:"h-full min-w-0 flex-1 bg-transparent font-mono text-[14px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]"}),n.jsx("span",{className:"rounded border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-1.5 py-0.5 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]",children:"ESC"})]}),n.jsxs("div",{className:"flex items-center justify-between gap-3 px-4 pb-2 pt-3",children:[n.jsx("div",{role:"tablist","aria-label":t("commandCenter.modeAria"),className:"flex items-center gap-0.5 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] p-0.5",children:["tasks","commands"].map(e=>n.jsx("button",{type:"button",role:"tab","aria-selected":s===e,onClick:()=>{c(e),requestAnimationFrame(()=>{var a;return(a=ee.current)==null?void 0:a.focus()})},className:N("rounded-[5px] px-2.5 py-1 font-mono text-[9.5px] uppercase tracking-[0.1em] transition-colors",s===e?"bg-[hsl(var(--deck-canvas))] text-[hsl(var(--deck-ink))] shadow-sm":"text-[hsl(var(--deck-ink-faint))] hover:text-[hsl(var(--deck-ink-muted))]"),children:t(e==="tasks"?"commandCenter.mode.tasks":"commandCenter.mode.commands")},e))}),n.jsx("span",{children:n.jsx("span",{className:"font-mono text-[9.5px] uppercase tracking-[0.14em] text-[hsl(var(--deck-ink-faint))]",children:s==="commands"?t("commandCenter.actions",{count:T.length}):w?t("taskSwitcher.results",{count:y.length}):B?v.length===0?t("taskSwitcher.indexing"):t("taskSwitcher.indexingLoaded",{count:v.length}):C==="error"?t("sidebar.catalog.incomplete"):se>0?t("taskSwitcher.needsAction",{count:se}):K.length>0?t("taskSwitcher.unread",{count:K.length}):t("taskSwitcher.scope",{count:v.length})})})]}),Z&&n.jsx("div",{role:"alert",className:"mx-4 mb-2 rounded-md border border-red-300/70 bg-red-50 px-3 py-2 font-mono text-[10.5px] text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300",children:Z}),n.jsxs("div",{id:"task-switcher-results",ref:te,role:"listbox","aria-label":t(s==="tasks"?"taskSwitcher.resultsAria":"commandCenter.resultsAria"),className:"max-h-[min(460px,60vh)] overflow-y-auto px-2 pb-2",children:[s==="commands"&&n.jsx(et,{actions:T,selectedIndex:f,onSelect:j,onRun:ie}),s==="tasks"&&y.map((e,a)=>{const l=L(e),x=G(l),S=E(e,A),je=_(S),ce=qe(l,M),Q=a===f,Se=we===x,Ne=K.includes(x),F=V(e),oe=e.taskStatus==="running"||e.taskStatus==="queued",le=!!e.taskRetryAvailable&&(e.taskStatus==="failed"||e.taskStatus==="interrupted"||e.taskStatus==="cancelled"),z=be.includes(x),H=ve.includes(x);return n.jsxs("div",{id:`task-switcher-result-${a}`,"data-task-result-index":a,"data-session-ref":x,role:"option","aria-selected":Q,onMouseEnter:()=>j(a),className:N("group flex min-h-[68px] w-full items-center rounded-lg border border-transparent text-left transition-colors",Q?"border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]":"hover:bg-[hsl(var(--deck-surface))]/60"),children:[n.jsxs("button",{type:"button",onClick:()=>void ae(e),"aria-label":t("session.action.select",{title:F}),className:"flex min-h-[68px] min-w-0 flex-1 items-center gap-3 px-3 py-2 text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))]",children:[n.jsx("span",{className:N("flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-[hsl(var(--deck-canvas))]",ce?"border-[hsl(var(--deck-accent)/0.5)] text-[hsl(var(--deck-accent))]":"border-[hsl(var(--deck-border))] text-[hsl(var(--deck-ink-faint))]"),children:e.pendingInteraction?n.jsx(de,{className:"h-3.5 w-3.5 animate-pulse text-amber-600 dark:text-amber-400"}):e.taskStatus==="running"?n.jsx(Ue,{className:"h-3.5 w-3.5 animate-pulse"}):n.jsx(Ge,{className:"h-3.5 w-3.5"})}),n.jsxs("span",{className:"min-w-0 flex-1",children:[n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"truncate font-mono text-[12.5px] font-medium text-[hsl(var(--deck-ink))]",children:F}),ce&&n.jsx("span",{className:"shrink-0 rounded bg-[hsl(var(--deck-accent-soft))] px-1.5 py-0.5 font-mono text-[8.5px] uppercase tracking-[0.1em] text-[hsl(var(--deck-accent))]",children:t("taskSwitcher.current")}),Ne&&n.jsx("span",{className:"shrink-0 rounded bg-[hsl(var(--deck-accent-soft))] px-1.5 py-0.5 font-mono text-[8.5px] uppercase tracking-[0.1em] text-[hsl(var(--deck-accent))]",children:t("taskSwitcher.new")}),e.pendingInteraction&&n.jsx("span",{className:"shrink-0 rounded bg-amber-100 px-1.5 py-0.5 font-mono text-[8.5px] uppercase tracking-[0.08em] text-amber-800 dark:bg-amber-950/60 dark:text-amber-300",children:t(e.pendingInteraction.type==="question"?"interaction.badge.question":e.pendingInteraction.type==="elicitation"?"interaction.badge.elicitation":"interaction.badge.permission")}),e.taskRetriedFrom&&n.jsx("span",{title:`${t("session.retriedFrom")} ${e.taskRetriedFrom.sessionId.slice(0,6)}`,className:"shrink-0 rounded bg-[hsl(var(--deck-accent-soft))] px-1.5 py-0.5 font-mono text-[8.5px] text-[hsl(var(--deck-accent))]",children:t("session.retryShort")})]}),n.jsxs("span",{className:"mt-1 flex min-w-0 items-center gap-2 font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]",children:[n.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1",children:[n.jsx(_e,{className:"h-2.5 w-2.5 shrink-0"}),n.jsx("span",{className:"truncate",children:je})]}),(e.taskWorktreeBranch||e.gitBranch)&&n.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1",children:[n.jsx(Ve,{className:"h-2.5 w-2.5 shrink-0"}),n.jsx("span",{className:"truncate",children:e.taskWorktreeBranch||e.gitBranch})]}),n.jsx("span",{className:"shrink-0",children:e.taskStatus==="queued"&&e.taskQueuePosition!==void 0&&e.taskQueueDepth!==void 0?t("session.queued",{position:e.taskQueuePosition,depth:e.taskQueueDepth}):e.pendingInteraction?t(e.pendingInteraction.type==="question"?"interaction.badge.question":e.pendingInteraction.type==="elicitation"?"interaction.badge.elicitation":"interaction.badge.permission"):t(rt[e.taskStatus])}),n.jsxs("span",{className:"ml-auto inline-flex shrink-0 items-center gap-1",children:[n.jsx(Je,{className:"h-2.5 w-2.5"}),nt(e)]})]})]}),Se?n.jsx(R,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-[hsl(var(--deck-accent))]"}):n.jsx(ue,{className:N("h-3.5 w-3.5 shrink-0 transition-all",Q?"translate-x-0 text-[hsl(var(--deck-accent))] opacity-100":"-translate-x-1 text-[hsl(var(--deck-ink-faint))] opacity-0")})]}),(oe||le)&&n.jsxs("div",{className:"flex shrink-0 items-center pr-2",children:[oe&&n.jsx("button",{type:"button","aria-label":t(z?"session.action.stopping":"session.action.stop",{title:F}),disabled:z,onClick:()=>void re("cancel",e),className:"flex h-8 w-8 items-center justify-center rounded-md text-red-500 transition-colors hover:bg-red-500/10 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-red-500 disabled:cursor-wait disabled:opacity-60",children:z?n.jsx(R,{className:"h-3.5 w-3.5 animate-spin"}):n.jsx(Xe,{className:"h-3.5 w-3.5"})}),le&&n.jsx("button",{type:"button","aria-label":t(H?"session.action.retrying":"session.action.retry",{title:F}),disabled:H,onClick:()=>void re("retry",e),className:"flex h-8 w-8 items-center justify-center rounded-md text-[hsl(var(--deck-accent))] transition-colors hover:bg-[hsl(var(--deck-accent-soft))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))] disabled:cursor-wait disabled:opacity-60",children:H?n.jsx(R,{className:"h-3.5 w-3.5 animate-spin"}):n.jsx(Ye,{className:"h-3.5 w-3.5"})})]})]},x)}),s==="tasks"&&y.length===0&&B&&n.jsxs("div",{className:"flex min-h-36 items-center justify-center gap-2 font-mono text-[11px] text-[hsl(var(--deck-ink-faint))]",children:[n.jsx(R,{className:"h-3.5 w-3.5 animate-spin text-[hsl(var(--deck-accent))]"}),t("taskSwitcher.indexing")]}),s==="tasks"&&y.length===0&&!B&&C!=="error"&&!pe&&n.jsxs("div",{className:"flex min-h-36 flex-col items-center justify-center px-6 text-center",children:[n.jsx(U,{className:"mb-3 h-5 w-5 text-[hsl(var(--deck-ink-faint))]"}),n.jsx("p",{className:"font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:t("taskSwitcher.empty")}),n.jsx("p",{className:"mt-1 text-[10.5px] text-[hsl(var(--deck-ink-faint))]",children:t("taskSwitcher.emptyHint")})]}),s==="tasks"&&y.length===0&&C==="error"&&n.jsxs("div",{role:"alert",className:"flex min-h-36 flex-col items-center justify-center px-6 text-center",children:[n.jsx(de,{className:"mb-3 h-5 w-5 text-amber-500"}),n.jsx("p",{className:"font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:t("sidebar.catalog.incomplete")})]}),s==="commands"&&T.length===0&&n.jsxs("div",{className:"flex min-h-36 flex-col items-center justify-center px-6 text-center",children:[n.jsx(U,{className:"mb-3 h-5 w-5 text-[hsl(var(--deck-ink-faint))]"}),n.jsx("p",{className:"font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]",children:t("commandCenter.empty")}),n.jsx("p",{className:"mt-1 text-[10.5px] text-[hsl(var(--deck-ink-faint))]",children:t("commandCenter.emptyHint")})]})]}),n.jsxs("div",{className:"flex items-center gap-4 border-t border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-canvas-veil))] px-4 py-2 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]",children:[n.jsxs("span",{children:["↑↓ ",t("taskSwitcher.hint.navigate")]}),n.jsxs("span",{children:["↵ ",t("taskSwitcher.hint.open")]}),n.jsxs("span",{className:"ml-auto",children:[P(s==="tasks"?"openCommands":"searchTasks")," ",t(s==="tasks"?"commandCenter.mode.commands":"commandCenter.mode.tasks")]})]})]})})}export{mt as TaskSwitcher};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,j as a}from"./vendor-react-DG5dkZ_t.js";import{D as A,o as j,L as R}from"./vendor-xterm-DuYZoU4T.js";import{u as C,b as N,L as F,j as x}from"./index-
|
|
1
|
+
import{r as t,j as a}from"./vendor-react-DG5dkZ_t.js";import{D as A,o as j,L as R}from"./vendor-xterm-DuYZoU4T.js";import{u as C,b as N,L as F,j as x}from"./index-DGZjm9wT.js";import{j as M,an as S,X as T}from"./vendor-icons-ICv1v-tf.js";import"./vendor-radix-DXRuAJHH.js";import"./session-events-Dk20sSDo.js";const $=({workspacePath:b})=>{const c=C(),{isTerminalOpen:l,toggleTerminal:y}=N(),[s,z]=t.useState(!1),[p,u]=t.useState(!1),g=F(),m=t.useRef(null),i=t.useRef(null),h=t.useRef(null),o=t.useRef(null),E=t.useRef(null),B=t.useCallback(()=>{var f;if(((f=o.current)==null?void 0:f.readyState)===WebSocket.OPEN)return;const r=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/terminal/ws`,e=b?`${r}?cwd=${encodeURIComponent(b)}`:r,n=new WebSocket(e);o.current=n,n.onopen=()=>{u(!0)},n.onmessage=w=>{var d;(d=i.current)==null||d.write(w.data)},n.onclose=()=>{u(!1)},n.onerror=()=>{u(!1)}},[b]),k=t.useCallback(()=>{o.current&&(o.current.close(),o.current=null),u(!1)},[]),v=t.useCallback(r=>{var e;((e=o.current)==null?void 0:e.readyState)===WebSocket.OPEN&&o.current.send(r)},[]);return t.useEffect(()=>(E.current=document.activeElement instanceof HTMLElement?document.activeElement:null,()=>{var r;return(r=E.current)==null?void 0:r.focus({preventScroll:!0})}),[]),t.useEffect(()=>{if(!l||!m.current||i.current)return;const r={background:"#ffffff",foreground:"#111827",cursor:"#111827",cursorAccent:"#ffffff",selectionBackground:"#E5E7EB",black:"#111827",red:"#dc2626",green:"#16a34a",yellow:"#ca8a04",blue:"#2563eb",magenta:"#7c3aed",cyan:"#0891b2",white:"#111827",brightBlack:"#6b7280",brightRed:"#ef4444",brightGreen:"#22c55e",brightYellow:"#facc15",brightBlue:"#60a5fa",brightMagenta:"#a855f7",brightCyan:"#22d3ee",brightWhite:"#111827"},e=new A({cursorBlink:!0,cursorStyle:"bar",fontSize:14,fontFamily:"JetBrains Mono, Menlo, Monaco, Consolas, monospace",allowTransparency:!0,scrollback:1e4,theme:g?{background:"#0a0a0a",foreground:"#e4e4e7",cursor:"#e4e4e7",cursorAccent:"#0a0a0a",selectionBackground:"#3f3f46",black:"#18181b",red:"#ef4444",green:"#22c55e",yellow:"#eab308",blue:"#3b82f6",magenta:"#a855f7",cyan:"#06b6d4",white:"#e4e4e7",brightBlack:"#52525b",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#facc15",brightBlue:"#60a5fa",brightMagenta:"#c084fc",brightCyan:"#22d3ee",brightWhite:"#fafafa"}:r}),n=new j,f=new R;e.loadAddon(n),e.loadAddon(f),e.open(m.current),n.fit();const w=requestAnimationFrame(()=>e.focus());return e.onData(d=>{v(d)}),i.current=e,h.current=n,B(),()=>{cancelAnimationFrame(w),k(),e.dispose(),i.current=null,h.current=null}},[l,B,k,v]),t.useEffect(()=>{i.current&&(i.current.options.theme=g?{background:"#0a0a0a",foreground:"#e4e4e7",cursor:"#e4e4e7",cursorAccent:"#0a0a0a",selectionBackground:"#3f3f46",black:"#18181b",red:"#ef4444",green:"#22c55e",yellow:"#eab308",blue:"#3b82f6",magenta:"#a855f7",cyan:"#06b6d4",white:"#e4e4e7",brightBlack:"#52525b",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#facc15",brightBlue:"#60a5fa",brightMagenta:"#c084fc",brightCyan:"#22d3ee",brightWhite:"#fafafa"}:{background:"#ffffff",foreground:"#111827",cursor:"#111827",cursorAccent:"#ffffff",selectionBackground:"#E5E7EB",black:"#111827",red:"#dc2626",green:"#16a34a",yellow:"#ca8a04",blue:"#2563eb",magenta:"#7c3aed",cyan:"#0891b2",white:"#111827",brightBlack:"#6b7280",brightRed:"#ef4444",brightGreen:"#22c55e",brightYellow:"#facc15",brightBlue:"#60a5fa",brightMagenta:"#a855f7",brightCyan:"#22d3ee",brightWhite:"#111827"})},[g]),t.useEffect(()=>{if(!l||s)return;const r=()=>{var n;(n=h.current)==null||n.fit()};window.addEventListener("resize",r);const e=setTimeout(r,100);return()=>{window.removeEventListener("resize",r),clearTimeout(e)}},[l,s]),l?a.jsxs("div",{role:"region","aria-label":c("terminal.title"),className:x("fixed bottom-0 left-0 right-0 z-40 bg-white dark:bg-[#0a0a0a] border-t border-[#E5E7EB] dark:border-zinc-800 transition-all duration-200",s?"h-10":"h-[min(18rem,45dvh)]"),children:[a.jsxs("div",{className:"flex items-center justify-between h-10 px-3 border-b border-[#E5E7EB] dark:border-zinc-800 bg-[#F9FAFB] dark:bg-zinc-900/50",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(M,{className:"h-4 w-4 text-[#9CA3AF] dark:text-zinc-400"}),a.jsx("span",{className:"text-sm text-[#6B7280] dark:text-zinc-400",children:c("terminal.title")}),a.jsx("span",{role:"status","aria-label":c(p?"terminal.status.connected":"terminal.status.disconnected"),className:x("w-2 h-2 rounded-full",p?"bg-green-500":"bg-zinc-600")})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{type:"button",onClick:()=>z(!s),"aria-label":c(s?"terminal.action.restore":"terminal.action.minimize"),className:"p-1.5 rounded hover:bg-[#E5E7EB] text-[#9CA3AF] hover:text-[#111827] dark:hover:bg-zinc-800 dark:text-zinc-400 dark:hover:text-zinc-200 transition-colors",children:a.jsx(S,{className:"h-4 w-4"})}),a.jsx("button",{type:"button",onClick:()=>{k(),y()},"aria-label":c("terminal.action.close"),className:"p-1.5 rounded hover:bg-[#E5E7EB] text-[#9CA3AF] hover:text-[#111827] dark:hover:bg-zinc-800 dark:text-zinc-400 dark:hover:text-zinc-200 transition-colors",children:a.jsx(T,{className:"h-4 w-4"})})]})]}),a.jsx("div",{ref:m,className:x("h-[calc(100%-40px)] p-2",s&&"hidden")})]}):null};export{$ as TerminalPanel};
|