@jean2/client 1.0.11 → 1.0.12
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/assets/SessionContent-Bnf0G_pQ.js +9 -0
- package/dist/assets/{SessionMenuButton-B1Y7WrJ0.js → SessionMenuButton-Crq0R2eU.js} +3 -3
- package/dist/assets/_serverId-lNnlgVt6.js +12 -0
- package/dist/assets/_sessionId-BId4_D9D.js +1 -0
- package/dist/assets/_sessionId-DAhPmPWo.js +1 -0
- package/dist/assets/{alert-DiQZ0wtR.js → alert-CRpZyACJ.js} +1 -1
- package/dist/assets/{badge-R1NzTNS9.js → badge-DUjmBeF1.js} +1 -1
- package/dist/assets/{confirmation-dialog-CWhG9whO.js → confirmation-dialog-DXOydaEx.js} +1 -1
- package/dist/assets/{dialog-CpPDW758.js → dialog-3xRXVk_M.js} +1 -1
- package/dist/assets/{http-namespace-DY6xQXl6.js → http-namespace-DN-W6q4w.js} +1 -1
- package/dist/assets/{index-Ba9RYqkp.js → index-BOYdFQ-B.js} +3 -3
- package/dist/assets/index-ClUsP1aJ.css +2 -0
- package/dist/assets/{overview-CS-dbYj6.js → overview-8ixeu0fY.js} +1 -1
- package/dist/assets/{popover-ClFNuH2c.js → popover-Cd6K8LGP.js} +1 -1
- package/dist/assets/{routes-B1Je9R4P.js → routes-1Kbjh8mG.js} +1 -1
- package/dist/assets/{switch-BcwUG5ak.js → switch-Bbhz2HDl.js} +1 -1
- package/dist/assets/workspace-CnK357h4.js +1 -0
- package/dist/index.html +3 -3
- package/dist/sw.js +1 -1
- package/package.json +1 -1
- package/dist/assets/SessionContent-CdwqbaxA.js +0 -9
- package/dist/assets/_serverId-BigXR4la.js +0 -12
- package/dist/assets/_sessionId-B-yzkOro.js +0 -1
- package/dist/assets/_sessionId-Cw9QdpVW.js +0 -1
- package/dist/assets/index-DSoqo1CY.css +0 -2
- package/dist/assets/workspace-BqmXgUL0.js +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CoWo_Ex4.js";import{t as i}from"./react-dom-lAXwbrYv.js";import{M as a,N as o,t as s}from"./serverDataStore-CvTJtC_B.js";import{n as c}from"./ThemeProvider-rIKaOoRR.js";import{A as l,At as u,B as d,Bt as f,C as p,Ct as m,D as h,Dt as g,E as _,F as v,Ft as y,G as b,Gt as x,H as S,Ht as C,I as w,It as T,J as E,Jt as D,K as O,Kt as k,L as A,M as j,Mt as M,N,Nt as P,O as F,Ot as I,P as L,Pt as R,Q as z,R as B,Rt as V,S as H,St as U,T as W,Tt as ee,U as te,Ut as ne,V as re,Vt as ie,W as ae,Wt as oe,X as se,Xt as G,Y as ce,Yt as le,Z as ue,_ as de,_t as fe,at as pe,b as me,bt as K,c as he,ct as ge,dt as q,et as _e,f as ve,g as ye,gt as be,it as xe,j as Se,jt as Ce,k as we,kt as Te,l as Ee,lt as De,m as Oe,mt as ke,ot as Ae,pt as je,q as Me,qt as Ne,rt as Pe,s as Fe,st as Ie,t as J,tt as Le,u as Re,ut as ze,v as Be,w as Ve,x as He,xt as Ue,y as We,yt as Ge,z as Ke,zt as qe}from"./badge-DUjmBeF1.js";import{i as Je,n as Ye,t as Xe}from"./http-namespace-DN-W6q4w.js";import{a as Ze,c as Qe,i as $e,n as et}from"./ServerContext-BIEwENov.js";import{O as tt,i as nt,n as rt,o as it}from"./Match-BqRw2YHq.js";import{t as at}from"./useRouter-D46Vvtt-.js";import{t as ot}from"./useNavigate-B6IY_tUo.js";import{t as st}from"./createLucideIcon-Cev6Iqjf.js";import{t as ct}from"./arrow-left-CYlgcbbR.js";import{C as lt,S as ut,_ as dt,a as ft,b as pt,c as mt,d as ht,f as gt,g as _t,h as vt,i as yt,l as bt,m as xt,n as St,p as Ct,r as wt,s as Tt,t as Et,u as Dt,v as Ot,w as kt,x as At,y as jt}from"./alert-CRpZyACJ.js";import{A as Mt,C as Nt,D as Pt,M as Ft,N as It,O as Lt,P as Rt,S as zt,_ as Bt,b as Vt,d as Ht,f as Ut,h as Wt,i as Gt,j as Kt,k as qt,m as Jt,n as Y,o as Yt,r as Xt,s as Zt,t as Qt,w as $t,x as en,y as tn}from"./switch-Bbhz2HDl.js";import{a as nn,c as rn,d as an,f as on,i as sn,l as cn,o as ln,p as un,r as dn,s as fn,t as pn,u as mn}from"./popover-Cd6K8LGP.js";import{A as hn,B as gn,C as _n,D as vn,E as yn,F as bn,H as xn,M as Sn,O as Cn,R as wn,S as Tn,T as En,V as Dn,a as On,b as kn,c as X,i as An,j as jn,k as Mn,l as Nn,o as Pn,r as Fn,s as In,t as Ln,u as Rn,w as zn,x as Bn,y as Vn,z as Hn}from"./dialog-3xRXVk_M.js";import{t as Un}from"./refresh-cw-xwfazwVj.js";import{t as Wn}from"./star-BapJtpKo.js";var Z=t(n(),1);function Gn(e){let t=at({warn:e?.router===void 0}),n=e?.router||t,r=(0,Z.useRef)(void 0);return it(n.stores.__store,t=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){let n=tt(r.current,e.select(t));return r.current=n,n}return e.select(t)}return t})}function Kn(e){let t=at(),n=(0,Z.useRef)(void 0);return it(t.stores.location,r=>{let i=e?.select?e.select(r):r;if(e?.structuralSharing??t.options.defaultStructuralSharing){let e=tt(n.current,i);return n.current=e,e}return i})}var qn=class{listeners=new Map;on(e,t){let n=this.listeners.get(e);return n||(n=new Set,this.listeners.set(e,n)),n.add(t),this}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};return this.on(e,n)}off(e,t){let n=this.listeners.get(e);return n&&(n.delete(t),n.size===0&&this.listeners.delete(e)),this}emit(e,...t){let n=this.listeners.get(e);if(!n||n.size===0)return!1;for(let r of n)try{r(...t)}catch(t){console.error(`Error in event handler for "${e}":`,t)}return!0}removeAllListeners(e){return e===void 0?this.listeners.clear():this.listeners.delete(e),this}listenerCount(e){return this.listeners.get(e)?.size??0}eventNames(){return Array.from(this.listeners.keys())}};function Jn(e,t){switch(t.type){case`client.registered`:e.emit(`client.registered`,t.client,t.connectionId,t.serverTime);break;case`client.rejected`:e.emit(`client.rejected`,t.code,t.message);break;case`session.created`:e.emit(`session.created`,t.session);break;case`session.resumed`:e.emit(`session.resumed`,t.session,t.messages,t.usage,t.isRunning,t.control);break;case`session.control.updated`:e.emit(`session.control.updated`,t.control,t.reason);break;case`session.action_rejected`:e.emit(`session.action_rejected`,t.sessionId,t.action,t.code,t.message,t.control);break;case`session.closed`:e.emit(`session.closed`,t.sessionId);break;case`session.reopened`:e.emit(`session.reopened`,t.session);break;case`session.deleted`:e.emit(`session.deleted`,t.sessionId);break;case`session.updated`:e.emit(`session.updated`,t.session);break;case`session.renamed`:e.emit(`session.renamed`,t.session);break;case`session.interrupted`:e.emit(`session.interrupted`,t.sessionId,t.result);break;case`session.reverted`:e.emit(`session.reverted`,t.sessionId,t.revertedTo,t.removed);break;case`session.forked`:e.emit(`session.forked`,t.originalSessionId,t.forkedSession,t.messages);break;case`session.state`:e.emit(`session.state`,t.sessionId,t.messages);break;case`message.created`:e.emit(`message.created`,t.message);break;case`message.updated`:e.emit(`message.updated`,t.message);break;case`part.created`:e.emit(`part.created`,t.sessionId,t.part);break;case`part.updated`:e.emit(`part.updated`,t.sessionId,t.part);break;case`part.append`:e.emit(`part.append`,t.sessionId,t.partId,t.field,t.delta);break;case`chat.usage`:e.emit(`chat.usage`,t.sessionId,t.usage,t.model,t.variant);break;case`compaction.complete`:e.emit(`compaction.complete`,t.sessionId,t.tokensUsed);break;case`permission.list`:e.emit(`permission.list`,t.workspaceId,t.grants);break;case`permission.revoked`:e.emit(`permission.revoked`,t.grantId);break;case`permission.all_revoked`:e.emit(`permission.all_revoked`,t.workspaceId,t.count);break;case`queue.list`:e.emit(`queue.list`,t.sessionId,t.messages);break;case`queue.added`:e.emit(`queue.added`,t.sessionId,t.message);break;case`queue.removed`:e.emit(`queue.removed`,t.sessionId,t.queueId);break;case`queue.sending`:e.emit(`queue.sending`,t.sessionId,t.queueId);break;case`provider.status`:e.emit(`provider.status`,t.provider,t.connected,t.authorizationUrl,t.error);break;case`provider.connected`:e.emit(`provider.connected`,t.provider,t.connected,t.connectedAt,t.accountId);break;case`ask.request`:e.emit(`ask.request`,t.sessionId,t.toolCallId,t.toolName,t.ask,t.requestId,t.authority);break;case`ask.response_rejected`:e.emit(`ask.response_rejected`,t.sessionId,t.toolCallId,t.requestId,t.code,t.message);break;case`ask.timeout`:e.emit(`ask.timeout`,t.sessionId,t.toolCallId,t.requestId);break;case`ask.pending_sync`:e.emit(`ask.pending_sync`,t.sessionId,t.requests);break;case`error`:e.emit(`error`,t.code,t.message);break;case`error.rate_limit`:e.emit(`error.rate_limit`,t.code,t.message,t.retryAfterMs),e.emit(`error`,t.code,t.message);break;case`error.server`:e.emit(`error.server`,t.code,t.message,t.retryAfterMs),e.emit(`error`,t.code,t.message);break;case`error.timeout`:e.emit(`error.timeout`,t.code,t.message,t.retryAfterMs),e.emit(`error`,t.code,t.message);break;case`error.auth`:e.emit(`error.auth`,t.code,t.message),e.emit(`error`,t.code,t.message);break;case`error.invalid_request`:e.emit(`error.invalid_request`,t.code,t.message),e.emit(`error`,t.code,t.message);break;case`error.context_overflow`:e.emit(`error.context_overflow`,t.code,t.message),e.emit(`error`,t.code,t.message);break;case`ping`:return;default:console.warn(`Unknown server message type: ${t.type}`);break}e.emit(`*`,{source:`server`,type:t.type,raw:t})}var Yn=class e{_ws=null;config;_state=`disconnected`;onOpen=null;onMessage=null;onClose=null;onError=null;heartbeatTimer=null;missedHeartbeats=0;static HEARTBEAT_TIMEOUT_MS=12e4;constructor(e){this.config=e}async connect(){return new Promise((e,t)=>{let n=this.config.wsConstructor??globalThis.WebSocket,r=this.buildWsUrl();this._state=`connecting`,this._ws=new n(r);let i=this.config.connectionTimeout??1e4,a=setTimeout(()=>{this._ws?.close(1e3,`Connection timeout`),t(new Ze(`Connection timeout (${i}ms)`))},i);this._ws.onopen=()=>{clearTimeout(a),this._state=`connected`,this.startHeartbeatMonitor(),this.onOpen?.(),e()},this._ws.onmessage=e=>{try{let t=JSON.parse(String(e.data));if(t.type===`ping`){this.resetHeartbeat(),this.send({type:`pong`});return}this.resetHeartbeat(),this.onMessage?.(t)}catch(e){let t=e instanceof Error?e.message:String(e);this.onError?.(Error(`Failed to parse WebSocket message: ${t}`))}},this._ws.onclose=e=>{clearTimeout(a),this.stopHeartbeatMonitor(),this._state=`disconnected`,this._ws!==null&&t(new Ze(`Connection closed before open: code=${e.code}, reason=${e.reason}`)),this._ws=null,this.onClose?.(e.code,e.reason,e.wasClean)},this._ws.onerror=()=>{clearTimeout(a),this.onError?.(Error(`WebSocket error`)),t(new Ze(`WebSocket error`))}})}send(e){if(!this._ws||this._ws.readyState!==WebSocket.OPEN)throw new Ze(`WebSocket is not connected`);this._ws.send(JSON.stringify(e))}async disconnect(){if(!this._ws)return;let e=this._ws;if(e.readyState===WebSocket.CLOSING||e.readyState===WebSocket.CLOSED){this._state=`disconnected`,this._ws=null;return}return new Promise(t=>{this._state=`disconnecting`;let n=()=>{e.removeEventListener(`close`,n),t()};e.addEventListener(`close`,n),e.close(1e3,`Client disconnect`)})}dispose(){this.stopHeartbeatMonitor(),this.onOpen=null,this.onMessage=null,this.onClose=null,this.onError=null,this._ws&&=(this._ws.onopen=null,this._ws.onmessage=null,this._ws.onclose=null,this._ws.onerror=null,this._ws.close(),null),this._state=`disconnected`}get connected(){return this._state===`connected`}get readyState(){return this._ws?.readyState??WebSocket.CLOSED}get ws(){return this._ws}resetHeartbeat(){this.missedHeartbeats=0}startHeartbeatMonitor(){this.stopHeartbeatMonitor(),this.missedHeartbeats=0,this.heartbeatTimer=setInterval(()=>{this.missedHeartbeats++,this.missedHeartbeats>=4&&(this.stopHeartbeatMonitor(),this._ws&&this._ws.close(1e3,`Heartbeat timeout`))},e.HEARTBEAT_TIMEOUT_MS)}stopHeartbeatMonitor(){this.heartbeatTimer!==null&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}buildWsUrl(){let e=this.config.url.startsWith(`https`)?`wss`:`ws`,t=this.config.url.replace(/^https?:\/\//,``);return this.config.token?`${e}://${t}/ws?token=${encodeURIComponent(this.config.token)}`:`${e}://${t}/ws`}},Xn=class{constructor(e){this.send=e}create(e){this.send({type:`session.create`,...e})}resume(e){this.send({type:`session.resume`,sessionId:e})}close(e){this.send({type:`session.close`,sessionId:e})}update(e,t){this.send({type:`session.update`,sessionId:e,...t})}updateModel(e,t){this.send({type:`session.update_model`,sessionId:e,...t})}reopen(e){this.send({type:`session.reopen`,sessionId:e})}delete(e){this.send({type:`session.delete`,sessionId:e})}rename(e,t){this.send({type:`session.rename`,sessionId:e,title:t})}compact(e){this.send({type:`session.compact`,sessionId:e})}generateTitle(e){this.send({type:`session.generate_title`,sessionId:e})}revert(e,t){this.send({type:`session.revert`,sessionId:e,messageId:t})}fork(e,t,n){this.send({type:`session.fork`,sessionId:e,messageId:t,title:n})}interrupt(e,t){this.send({type:`session.interrupt`,sessionId:e,reason:t})}},Zn=class{constructor(e){this._send=e}send(e,t,n){let r={type:`chat.message`,sessionId:e,content:t};n?.attachments&&n.attachments.length>0&&(r.attachments=n.attachments),n?.responseFormatId&&(r.responseFormatId=n.responseFormatId),this._send(r)}},Qn=class{constructor(e){this.send=e}list(e,t){this.send({type:`permission.list`,workspaceId:e,includeRevoked:t})}revoke(e){this.send({type:`permission.revoke`,grantId:e})}revokeAll(e){this.send({type:`permission.revoke_all`,workspaceId:e})}},$n=class{constructor(e){this.send=e}add(e,t,n){this.send({type:`queue.add`,sessionId:e,content:t,...n?.attachments&&n.attachments.length>0?{attachments:n.attachments}:{},...n?.responseFormatId?{responseFormatId:n.responseFormatId}:{}})}remove(e){this.send({type:`queue.remove`,queueId:e})}},er=class{constructor(e){this.send=e}connect(e,t){this.send({type:`provider.connect`,provider:e,redirectStrategy:t})}disconnect(e){this.send({type:`provider.disconnect`,provider:e})}},tr=class{send;constructor(e){this.send=e}claim(e){this.send({type:`session.control.claim`,sessionId:e})}release(e){this.send({type:`session.control.release`,sessionId:e})}requestTakeover(e){this.send({type:`session.control.request_takeover`,sessionId:e})}respondTakeover(e,t,n){this.send({type:`session.control.respond_takeover`,sessionId:e,requesterClientId:t,decision:n})}},nr={INPUT:1,RESIZE:2,CLOSE:3,OUTPUT:4,EXIT:5,ERROR:6,INIT_ACK:7,TITLE:8};function rr(e,t){let n=new Uint8Array(1+t.length);return n[0]=e,n.set(t,1),n}var ir=class extends qn{ws;_session;_closed=!1;_disposed=!1;_preInitOutput=[];constructor(e,t,n){super(),this.ws=e,this._session=t,n&&(this._preInitOutput=n),this.ws.binaryType=`arraybuffer`,this.ws.onmessage=this.handleMessage.bind(this),this.ws.onclose=this.handleClose.bind(this),this.ws.onerror=this.handleError.bind(this)}on(e,t){let n=super.on(e,t);return e===`output`&&this.flushPreInitOutput(),n}flushPreInitOutput(){if(this._preInitOutput.length===0)return;let e=this._preInitOutput;this._preInitOutput=[];for(let t of e){if(this._closed)break;this.emit(`output`,t)}}handleMessage(e){if(this._closed)return;let t=new Uint8Array(e.data);if(t.length<1)return;let n=t[0],r=t.slice(1);switch(n){case nr.OUTPUT:this.emit(`output`,r);break;case nr.EXIT:{let e=0;if(r.length>0)try{let t=JSON.parse(new TextDecoder().decode(r));e=typeof t.exitCode==`number`?t.exitCode:0}catch{e=0}this._session={...this._session,status:`exited`,exitCode:e},this.emit(`exit`,e);break}case nr.TITLE:{let e=`Terminal`;if(r.length>0)try{let t=JSON.parse(new TextDecoder().decode(r));e=typeof t.title==`string`?t.title:`Terminal`}catch{e=`Terminal`}this._session={...this._session,title:e},this.emit(`title`,e);break}case nr.ERROR:{let e=new TextDecoder().decode(r),t=Error(e||`Terminal error`);this.emit(`error`,t);break}case nr.CLOSE:this.doClose();break;default:break}}handleClose(e){this._closed||(this._closed=!0,this.emit(`close`))}handleError(){if(!this._closed){let e=Error(`WebSocket error`);this.emit(`error`,e)}}doClose(){if(!this._closed){this._closed=!0;try{this.ws.close(1e3,`Client close`)}catch{}this.emit(`close`),this.cleanupHandlers()}}cleanupHandlers(){this._disposed||(this._disposed=!0,this.ws.onmessage=null,this.ws.onclose=null,this.ws.onerror=null)}dispatchFrame(e){this.handleMessage({data:e.buffer})}write(e){if(this._closed||this.ws.readyState!==WebSocket.OPEN)return;let t;t=typeof e==`string`?new TextEncoder().encode(e):e,this.ws.send(rr(nr.INPUT,t))}resize(e,t){if(this._closed||this.ws.readyState!==WebSocket.OPEN)return;let n=JSON.stringify({cols:e,rows:t}),r=new TextEncoder().encode(n);this.ws.send(rr(nr.RESIZE,r))}close(){this._closed||(this.ws.readyState===WebSocket.OPEN&&this.ws.send(rr(nr.CLOSE,new Uint8Array)),this.doClose())}dispose(){if(this.cleanupHandlers(),!this._closed){this._closed=!0;try{this.ws.close(1e3,`Disposed`)}catch{}}this.removeAllListeners()}get session(){return this._session}get sessionId(){return this._session.sessionId}get pid(){return this._session.pid}get cwd(){return this._session.cwd}get shell(){return this._session.shell}get cols(){return this._session.cols}get rows(){return this._session.rows}get title(){return this._session.title}get status(){return this._session.status}get exitCode(){return this._session.exitCode}get isReconnect(){return this._session.isReconnect}get closed(){return this._closed}},ar=class extends qn{ws;_closed=!1;_disposed=!1;constructor(e){super(),this.ws=e,this.ws.onmessage=this.handleMessage.bind(this),this.ws.onclose=this.handleClose.bind(this),this.ws.onerror=this.handleError.bind(this)}handleMessage(e){if(this._closed)return;let t=e.data;if(typeof t!=`string`)return;let n;try{n=JSON.parse(t)}catch{return}switch(n.type){case`snapshot`:this.emit(`snapshot`,n.sessions);break;case`created`:this.emit(`created`,n.session);break;case`destroyed`:this.emit(`destroyed`,n.sessionId);break;case`exited`:this.emit(`exited`,n.sessionId,n.exitCode);break;case`title_changed`:this.emit(`title_changed`,n.sessionId,n.title);break;case`status_changed`:this.emit(`status_changed`,n.sessionId,n.status);break}}handleClose(e){this._closed||(this._closed=!0,this.emit(`close`))}handleError(){if(!this._closed){let e=Error(`WebSocket error`);this.emit(`error`,e)}}close(){if(!this._closed){this._closed=!0;try{this.ws.close(1e3,`Client close`)}catch{}this.cleanupHandlers()}}dispose(){if(this.cleanupHandlers(),this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING)try{this.ws.close(1e3,`Disposed`)}catch{}this._closed||(this._closed=!0,this.emit(`close`)),this.removeAllListeners()}cleanupHandlers(){this._disposed||(this._disposed=!0,this.ws.onmessage=null,this.ws.onclose=null,this.ws.onerror=null)}get closed(){return this._closed}},or=class{config;constructor(e){this.config={connectTimeout:1e4,...e}}async connect(e){let t=this.config.wsConstructor??globalThis.WebSocket,n=this.config.url.startsWith(`https`)?`wss`:`ws`,r=this.config.url.replace(/^https?:\/\//,``),i=new URLSearchParams({cwd:e.cwd,workspaceId:e.workspaceId});this.config.token&&i.set(`token`,this.config.token),e.shell&&i.set(`shell`,e.shell),e.sessionId&&i.set(`sessionId`,e.sessionId);let a=`${n}://${r}/ws/terminal?${i.toString()}`;return new Promise((e,n)=>{let r=new t(a);r.binaryType=`arraybuffer`;let i=this.config.connectTimeout??1e4,o=!1,s=t=>{o||(o=!0,clearTimeout(l),e(t))},c=e=>{o||(o=!0,clearTimeout(l),n(e))},l=setTimeout(()=>{r.close(),c(new Ze(`Terminal connection timeout (${i}ms)`))},i);r.onopen=()=>{};let u=[];r.onmessage=e=>{let t=new Uint8Array(e.data);if(t.length<1)return;let n=t[0],i=t.slice(1);if(n===nr.INIT_ACK)try{let e=new ir(r,JSON.parse(new TextDecoder().decode(i)),u.filter(e=>e.opcode===nr.OUTPUT).map(e=>e.data));for(let t of u)t.opcode!==nr.OUTPUT&&e.dispatchFrame(t.data);s(e)}catch(e){r.close(),c(new Ze(`Failed to parse terminal init: ${e instanceof Error?e.message:String(e)}`))}else if(n===nr.ERROR){r.close();let e=`Terminal connection failed`;try{e=JSON.parse(new TextDecoder().decode(i)).message||e}catch{}c(new Ze(e))}else u.push({opcode:n,data:t})},r.onerror=()=>{r.close(),c(new Ze(`Terminal WebSocket error`))},r.onclose=()=>{c(new Ze(`Terminal connection closed before init`))}})}async subscribeEvents(e){let t=this.config.wsConstructor??globalThis.WebSocket,n=this.config.url.startsWith(`https`)?`wss`:`ws`,r=this.config.url.replace(/^https?:\/\//,``),i=new URLSearchParams({workspaceId:e});this.config.token&&i.set(`token`,this.config.token);let a=`${n}://${r}/ws/terminal/events?${i.toString()}`;return new Promise((e,n)=>{let r=new t(a),i=this.config.connectTimeout??1e4,o=!1,s=t=>{o||(o=!0,clearTimeout(l),e(t))},c=e=>{o||(o=!0,clearTimeout(l),n(e))},l=setTimeout(()=>{r.close(),c(new Ze(`Terminal events subscription timeout (${i}ms)`))},i);r.onopen=()=>{};let u=null;r.onmessage=e=>{if(o)return;let t=e.data;if(typeof t!=`string`)return;let n;try{n=JSON.parse(t)}catch{return}n.type===`snapshot`&&(u||=new ar(r),s({conn:u,initialSessions:n.sessions}))},r.onerror=()=>{r.close(),c(new Ze(`Terminal events WebSocket error`))},r.onclose=()=>{o||c(new Ze(`Terminal events connection closed before snapshot`))}})}},sr=class extends qn{config;transport;_httpClient;_state=`disconnected`;_connectionId=null;_registeredClient=null;sessions;chat;permissions;queue;providers;control;http;terminal;constructor(e){super(),this.config=e,this.transport=new Yn({url:e.url,token:e.token,wsConstructor:e.wsConstructor,connectionTimeout:e.connectionTimeout}),this._httpClient=new $e({url:e.url,token:e.token,apiBase:e.apiBase});let t=this.transport.send.bind(this.transport);this.sessions=new Xn(t),this.chat=new Zn(t),this.permissions=new Qn(t),this.queue=new $n(t),this.providers=new er(t),this.control=new tr(t),this.http=new Xe(this._httpClient),this.terminal=new or({url:e.url,token:e.token,wsConstructor:e.wsConstructor}),this.transport.onOpen=()=>{this._state=`connected`,this._connectionId=null,this._registeredClient=null,this.config.clientDescriptor&&this.send({type:`client.register`,client:this.config.clientDescriptor}),this.emit(`connected`),this.emit(`*`,{source:`lifecycle`,type:`connected`,payload:void 0})},this.transport.onMessage=e=>{e.type===`client.registered`&&(this._connectionId=e.connectionId,this._registeredClient=e.client),Jn(this,e)},this.transport.onClose=(e,t,n)=>{let r=this._state;this._state=`disconnected`,r!==`disconnected`&&(this.emit(`disconnected`,{code:e,reason:t,wasClean:n}),this.emit(`*`,{source:`lifecycle`,type:`disconnected`,payload:{code:e,reason:t,wasClean:n}}))},this.transport.onError=e=>{this.emit(`error.connection`,e),this.emit(`*`,{source:`lifecycle`,type:`error.connection`,payload:e})}}async connect(){this._state=`connecting`,await this.transport.connect()}async disconnect(){this._state=`disconnecting`,await this.transport.disconnect()}async dispose(){await this.disconnect(),this.transport.dispose(),this.removeAllListeners()}get state(){return this._state}get connected(){return this._state===`connected`}get ws(){return this.transport.ws}get httpClient(){return this._httpClient}get connectionId(){return this._connectionId}get registeredClient(){return this._registeredClient}get clientId(){return this._registeredClient?.clientId??null}send(e){this.transport.send(e)}},cr=st(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),lr=st(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),ur=st(`clipboard-paste`,[[`path`,{d:`M11 14h10`,key:`1w8e9d`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v1.344`,key:`1e62lh`}],[`path`,{d:`m17 18 4-4-4-4`,key:`z2g111`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113`,key:`bjbb7m`}],[`rect`,{x:`8`,y:`2`,width:`8`,height:`4`,rx:`1`,key:`ublpy`}]]),dr=st(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),fr=st(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),pr=st(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),mr=st(`file-question-mark`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}],[`path`,{d:`M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3`,key:`mhlwft`}]]),hr=st(`file-x-corner`,[[`path`,{d:`M11 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5`,key:`1jo35a`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m15 17 5 5`,key:`36xl1x`}],[`path`,{d:`m20 17-5 5`,key:`vdz27y`}]]),gr=st(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),_r=st(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),vr=st(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),yr=st(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),br=st(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),xr=st(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),Sr=st(`layout-list`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}],[`path`,{d:`M14 4h7`,key:`3xa0d5`}],[`path`,{d:`M14 9h7`,key:`1icrd9`}],[`path`,{d:`M14 15h7`,key:`1mj8o2`}],[`path`,{d:`M14 20h7`,key:`11slyb`}]]),Cr=st(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),wr=st(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Tr=st(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),Er=st(`plug-zap`,[[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m18 3-4 4h6l-4 4`,key:`16psg9`}]]),Dr=st(`plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`,key:`1xoxul`}],[`path`,{d:`M9 8V2`,key:`14iosj`}]]),Or=st(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),kr=st(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Ar=st(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),jr=st(`trash`,[[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Mr=st(`unplug`,[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]),Nr=st(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),Pr=st(`volume-x`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),Q=r(),Fr=`Progress`,Ir=100,[Lr,Rr]=jn(Fr),[zr,Br]=Lr(Fr),Vr=Z.forwardRef((e,t)=>{let{__scopeProgress:n,value:r=null,max:i,getValueLabel:a=Wr,...o}=e;(i||i===0)&&!qr(i)&&console.error(Yr(`${i}`,`Progress`));let s=qr(i)?i:Ir;r!==null&&!Jr(r,s)&&console.error(Xr(`${r}`,`Progress`));let c=Jr(r,s)?r:null,l=Kr(c)?a(c,s):void 0;return(0,Q.jsx)(zr,{scope:n,value:c,max:s,children:(0,Q.jsx)(Sn.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":Kr(c)?c:void 0,"aria-valuetext":l,role:`progressbar`,"data-state":Gr(c,s),"data-value":c??void 0,"data-max":s,...o,ref:t})})});Vr.displayName=Fr;var Hr=`ProgressIndicator`,Ur=Z.forwardRef((e,t)=>{let{__scopeProgress:n,...r}=e,i=Br(Hr,n);return(0,Q.jsx)(Sn.div,{"data-state":Gr(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});Ur.displayName=Hr;function Wr(e,t){return`${Math.round(e/t*100)}%`}function Gr(e,t){return e==null?`indeterminate`:e===t?`complete`:`loading`}function Kr(e){return typeof e==`number`}function qr(e){return Kr(e)&&!isNaN(e)&&e>0}function Jr(e,t){return Kr(e)&&!isNaN(e)&&e<=t&&e>=0}function Yr(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Ir}\`.`}function Xr(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be:
|
|
2
|
+
- a positive number
|
|
3
|
+
- less than the value passed to \`max\` (or ${Ir} if no \`max\` prop is set)
|
|
4
|
+
- \`null\` or \`undefined\` if the progress is indeterminate.
|
|
5
|
+
|
|
6
|
+
Defaulting to \`null\`.`}var Zr=Vr,Qr=Ur,$r=t(i(),1),ei=[` `,`Enter`,`ArrowUp`,`ArrowDown`],ti=[` `,`Enter`],ni=`Select`,[ri,ii,ai]=f(ni),[oi,si]=jn(ni,[ai,T]),ci=T(),[li,ui]=oi(ni),[di,fi]=oi(ni),pi=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,h=ci(t),[g,_]=Z.useState(null),[v,b]=Z.useState(null),[x,S]=Z.useState(!1),C=qe(l),[w,T]=Cn({prop:r,defaultProp:i??!1,onChange:a,caller:ni}),[E,D]=Cn({prop:o,defaultProp:s,onChange:c,caller:ni}),O=Z.useRef(null),k=g?m||!!g.closest(`form`):!0,[A,j]=Z.useState(new Set),M=Array.from(A).map(e=>e.props.value).join(`;`);return(0,Q.jsx)(y,{...h,children:(0,Q.jsxs)(li,{required:p,scope:t,trigger:g,onTriggerChange:_,valueNode:v,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:S,contentId:yn(),value:E,onValueChange:D,open:w,onOpenChange:T,dir:C,triggerPointerDownPosRef:O,disabled:f,children:[(0,Q.jsx)(ri.Provider,{scope:t,children:(0,Q.jsx)(di,{scope:e.__scopeSelect,onNativeOptionAdd:Z.useCallback(e=>{j(t=>new Set(t).add(e))},[]),onNativeOptionRemove:Z.useCallback(e=>{j(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),k?(0,Q.jsxs)(ca,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:E,onChange:e=>D(e.target.value),disabled:f,form:m,children:[E===void 0?(0,Q.jsx)(`option`,{value:``}):null,Array.from(A)]},M):null]})})};pi.displayName=ni;var mi=`SelectTrigger`,hi=Z.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=ci(n),o=ui(mi,n),s=o.disabled||r,c=wn(t,o.onTriggerChange),l=ii(n),u=Z.useRef(`touch`),[d,f,p]=ua(e=>{let t=l().filter(e=>!e.disabled),n=da(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,Q.jsx)(M,{asChild:!0,...a,children:(0,Q.jsx)(Sn.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":la(o.value)?``:void 0,...i,ref:c,onClick:hn(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:hn(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:hn(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&ei.includes(e.key)&&(m(),e.preventDefault())})})})});hi.displayName=mi;var gi=`SelectValue`,_i=Z.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=ui(gi,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=wn(t,c.onValueNodeChange);return Mn(()=>{l(u)},[l,u]),(0,Q.jsx)(Sn.span,{...s,ref:d,style:{pointerEvents:`none`},children:la(c.value)?(0,Q.jsx)(Q.Fragment,{children:o}):a})});_i.displayName=gi;var vi=`SelectIcon`,yi=Z.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,Q.jsx)(Sn.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});yi.displayName=vi;var bi=`SelectPortal`,xi=e=>(0,Q.jsx)(Tn,{asChild:!0,...e});xi.displayName=bi;var Si=`SelectContent`,Ci=Z.forwardRef((e,t)=>{let n=ui(Si,e.__scopeSelect),[r,i]=Z.useState();if(Mn(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?$r.createPortal((0,Q.jsx)(Ti,{scope:e.__scopeSelect,children:(0,Q.jsx)(ri.Slot,{scope:e.__scopeSelect,children:(0,Q.jsx)(`div`,{children:e.children})})}),t):null}return(0,Q.jsx)(ki,{...e,ref:t})});Ci.displayName=Si;var wi=10,[Ti,Ei]=oi(Si),Di=`SelectContentImpl`,Oi=bn(`SelectContent.RemoveScroll`),ki=Z.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=ui(Si,n),[y,b]=Z.useState(null),[x,S]=Z.useState(null),C=wn(t,e=>b(e)),[w,T]=Z.useState(null),[E,D]=Z.useState(null),O=ii(n),[k,A]=Z.useState(!1),j=Z.useRef(!1);Z.useEffect(()=>{if(y)return Vn(y)},[y]),Bn();let M=Z.useCallback(e=>{let[t,...n]=O().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&x&&(x.scrollTop=0),n===r&&x&&(x.scrollTop=x.scrollHeight),n?.focus(),document.activeElement!==i))return},[O,x]),N=Z.useCallback(()=>M([w,y]),[M,w,y]);Z.useEffect(()=>{k&&N()},[k,N]);let{onOpenChange:P,triggerPointerDownPosRef:F}=v;Z.useEffect(()=>{if(y){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(F.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(F.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():y.contains(n.target)||P(!1),document.removeEventListener(`pointermove`,t),F.current=null};return F.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[y,P,F]),Z.useEffect(()=>{let e=()=>P(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[P]);let[I,L]=ua(e=>{let t=O().filter(e=>!e.disabled),n=da(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),R=Z.useCallback((e,t,n)=>{let r=!j.current&&!n;(v.value!==void 0&&v.value===t||r)&&(T(e),r&&(j.current=!0))},[v.value]),z=Z.useCallback(()=>y?.focus(),[y]),B=Z.useCallback((e,t,n)=>{let r=!j.current&&!n;(v.value!==void 0&&v.value===t||r)&&D(e)},[v.value]),V=r===`popper`?Ni:ji,H=V===Ni?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,Q.jsx)(Ti,{scope:n,content:y,viewport:x,onViewportChange:S,itemRefCallback:R,selectedItem:w,onItemLeave:z,itemTextRefCallback:B,focusSelectedItem:N,selectedItemText:E,position:r,isPositioned:k,searchRef:I,children:(0,Q.jsx)(kn,{as:Oi,allowPinchZoom:!0,children:(0,Q.jsx)(_n,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:hn(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,Q.jsx)(zn,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,Q.jsx)(V,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...H,onPlaced:()=>A(!0),ref:C,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:hn(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&L(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=O().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>M(t)),e.preventDefault()}})})})})})})});ki.displayName=Di;var Ai=`SelectItemAlignedPosition`,ji=Z.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=ui(Si,n),o=Ei(Si,n),[s,c]=Z.useState(null),[l,u]=Z.useState(null),d=wn(t,e=>u(e)),f=ii(n),p=Z.useRef(!1),m=Z.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,y=Z.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-wi,d=Lt(a,[wi,Math.max(wi,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-wi,d=Lt(a,[wi,Math.max(wi,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-wi*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-wi,D=c-E,O=g.offsetHeight/2,k=g.offsetTop+O,A=m+v+k,j=x-A;if(A<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,h.scrollTop=A-E+h.offsetTop}s.style.margin=`${wi}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);Mn(()=>y(),[y]);let[b,x]=Z.useState();return Mn(()=>{l&&x(window.getComputedStyle(l).zIndex)},[l]),(0,Q.jsx)(Pi,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:Z.useCallback(e=>{e&&m.current===!0&&(y(),v?.(),m.current=!1)},[y,v]),children:(0,Q.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:b},children:(0,Q.jsx)(Sn.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});ji.displayName=Ai;var Mi=`SelectPopperPosition`,Ni=Z.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=wi,...a}=e,o=ci(n);return(0,Q.jsx)(R,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Ni.displayName=Mi;var[Pi,Fi]=oi(Si,{}),Ii=`SelectViewport`,Li=Z.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=Ei(Ii,n),o=Fi(Ii,n),s=wn(t,a.onViewportChange),c=Z.useRef(0);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,Q.jsx)(ri.Slot,{scope:n,children:(0,Q.jsx)(Sn.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:hn(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-wi*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})});Li.displayName=Ii;var Ri=`SelectGroup`,[zi,Bi]=oi(Ri),Vi=Z.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=yn();return(0,Q.jsx)(zi,{scope:n,id:i,children:(0,Q.jsx)(Sn.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Vi.displayName=Ri;var Hi=`SelectLabel`,Ui=Z.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Bi(Hi,n);return(0,Q.jsx)(Sn.div,{id:i.id,...r,ref:t})});Ui.displayName=Hi;var Wi=`SelectItem`,[Gi,Ki]=oi(Wi),qi=Z.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=ui(Wi,n),c=Ei(Wi,n),l=s.value===r,[u,d]=Z.useState(a??``),[f,p]=Z.useState(!1),m=wn(t,e=>c.itemRefCallback?.(e,r,i)),h=yn(),g=Z.useRef(`touch`),_=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,Q.jsx)(Gi,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:Z.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,Q.jsx)(ri.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,Q.jsx)(Sn.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:hn(o.onFocus,()=>p(!0)),onBlur:hn(o.onBlur,()=>p(!1)),onClick:hn(o.onClick,()=>{g.current!==`mouse`&&_()}),onPointerUp:hn(o.onPointerUp,()=>{g.current===`mouse`&&_()}),onPointerDown:hn(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:hn(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:hn(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:hn(o.onKeyDown,e=>{c.searchRef?.current!==``&&e.key===` `||(ti.includes(e.key)&&_(),e.key===` `&&e.preventDefault())})})})})});qi.displayName=Wi;var Ji=`SelectItemText`,Yi=Z.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=ui(Ji,n),s=Ei(Ji,n),c=Ki(Ji,n),l=fi(Ji,n),[u,d]=Z.useState(null),f=wn(t,e=>d(e),c.onItemTextChange,e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=u?.textContent,m=Z.useMemo(()=>(0,Q.jsx)(`option`,{value:c.value,disabled:c.disabled,children:p},c.value),[c.disabled,c.value,p]),{onNativeOptionAdd:h,onNativeOptionRemove:g}=l;return Mn(()=>(h(m),()=>g(m)),[h,g,m]),(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Sn.span,{id:c.textId,...a,ref:f}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren?$r.createPortal(a.children,o.valueNode):null]})});Yi.displayName=Ji;var Xi=`SelectItemIndicator`,Zi=Z.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Ki(Xi,n).isSelected?(0,Q.jsx)(Sn.span,{"aria-hidden":!0,...r,ref:t}):null});Zi.displayName=Xi;var Qi=`SelectScrollUpButton`,$i=Z.forwardRef((e,t)=>{let n=Ei(Qi,e.__scopeSelect),r=Fi(Qi,e.__scopeSelect),[i,a]=Z.useState(!1),o=wn(t,r.onScrollButtonChange);return Mn(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,Q.jsx)(na,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});$i.displayName=Qi;var ea=`SelectScrollDownButton`,ta=Z.forwardRef((e,t)=>{let n=Ei(ea,e.__scopeSelect),r=Fi(ea,e.__scopeSelect),[i,a]=Z.useState(!1),o=wn(t,r.onScrollButtonChange);return Mn(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,Q.jsx)(na,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});ta.displayName=ea;var na=Z.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Ei(`SelectScrollButton`,n),o=Z.useRef(null),s=ii(n),c=Z.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return Z.useEffect(()=>()=>c(),[c]),Mn(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,Q.jsx)(Sn.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:hn(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:hn(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:hn(i.onPointerLeave,()=>{c()})})}),ra=`SelectSeparator`,ia=Z.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,Q.jsx)(Sn.div,{"aria-hidden":!0,...r,ref:t})});ia.displayName=ra;var aa=`SelectArrow`,oa=Z.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=ci(n),a=ui(aa,n),o=Ei(aa,n);return a.open&&o.position===`popper`?(0,Q.jsx)(P,{...i,...r,ref:t}):null});oa.displayName=aa;var sa=`SelectBubbleInput`,ca=Z.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=Z.useRef(null),a=wn(r,i),o=V(t);return Z.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,Q.jsx)(Sn.select,{...n,style:{...ie,...n.style},ref:a,defaultValue:t})});ca.displayName=sa;function la(e){return e===``||e===void 0}function ua(e){let t=En(e),n=Z.useRef(``),r=Z.useRef(0),i=Z.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=Z.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return Z.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function da(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=fa(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function fa(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var pa=pi,ma=hi,ha=_i,ga=yi,_a=xi,va=Ci,ya=Li,ba=qi,xa=Yi,Sa=Zi,Ca=$i,wa=ta,Ta=`Tabs`,[Ea,Da]=jn(Ta,[Ce]),Oa=Ce(),[ka,Aa]=Ea(Ta),ja=Z.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=qe(s),[d,f]=Cn({prop:r,onChange:i,defaultProp:a??``,caller:Ta});return(0,Q.jsx)(ka,{scope:n,baseId:yn(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,Q.jsx)(Sn.div,{dir:u,"data-orientation":o,...l,ref:t})})});ja.displayName=Ta;var Ma=`TabsList`,Na=Z.forwardRef((e,t)=>{let{__scopeTabs:n,loop:r=!0,...i}=e,a=Aa(Ma,n),o=Oa(n);return(0,Q.jsx)(u,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,Q.jsx)(Sn.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})});Na.displayName=Ma;var Pa=`TabsTrigger`,Fa=Z.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=Aa(Pa,n),s=Oa(n),c=Ra(o.baseId,r),l=za(o.baseId,r),u=r===o.value;return(0,Q.jsx)(Te,{asChild:!0,...s,focusable:!i,active:u,children:(0,Q.jsx)(Sn.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:hn(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:hn(e.onKeyDown,e=>{[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:hn(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})});Fa.displayName=Pa;var Ia=`TabsContent`,La=Z.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=Aa(Ia,n),c=Ra(s.baseId,r),l=za(s.baseId,r),u=r===s.value,d=Z.useRef(u);return Z.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,Q.jsx)(vn,{present:i||u,children:({present:n})=>(0,Q.jsx)(Sn.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})});La.displayName=Ia;function Ra(e,t){return`${e}-trigger-${t}`}function za(e,t){return`${e}-content-${t}`}var Ba=ja,Va=Na,Ha=Fa,Ua=La,$=e();function Wa(e){let t=(0,$.c)(10),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={from:`/server/$serverId`,strict:!1,structuralSharing:!0},t[0]=r):r=t[0];let i=Ye(r),a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a={from:`/server/$serverId`,strict:!1},t[1]=a):a=t[1];let o=nt(a).serverId,c,l;t[2]!==i||t[3]!==o?(c=()=>{if(!i)return;let e=(i.models||[]).filter(qa);s.getState().hydrate(o??``,{workspaces:i.workspaces,preconfigs:i.preconfigs,prompts:i.prompts,models:e,defaultModel:i.defaultModel||`gpt-4o`,defaultProvider:i.defaultProvider||`openai`,providers:i.providers});let t=localStorage.getItem(`activeWorkspaceId`),n=i.workspaces;if(t){let e=n.find(e=>e.id===t);e?s.getState().setActiveWorkspace(e):n.length>0&&s.getState().setActiveWorkspace(n[0])}else n.length>0&&s.getState().setActiveWorkspace(n[0])},l=[i,o],t[2]=i,t[3]=o,t[4]=c,t[5]=l):(c=t[4],l=t[5]),(0,Z.useLayoutEffect)(c,l);let u;if(t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],t[6]=u):u=t[6],(0,Z.useEffect)(Ga,u),!i){let e;return t[7]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{className:`flex items-center justify-center min-h-screen bg-background text-foreground`,children:(0,Q.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,Q.jsx)(`div`,{className:`h-8 w-8 border-2 border-muted-foreground/30 border-t-muted-foreground rounded-full animate-spin mx-auto`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading server data...`})]})}),t[7]=e):e=t[7],e}let d;return t[8]===n?d=t[9]:(d=(0,Q.jsx)(Q.Fragment,{children:n}),t[8]=n,t[9]=d),d}function Ga(){return Ka}function Ka(){g(),s.getState().clearAll()}function qa(e){return e.runtimeStatus?.usable}var Ja=e=>Symbol.iterator in e,Ya=e=>`entries`in e,Xa=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},Za=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function Qa(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:Ja(e)&&Ja(t)?Ya(e)&&Ya(t)?Xa(e,t):Za(e,t):Xa({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function $a(e){let t=Z.useRef(void 0);return n=>{let r=e(n);return Qa(t.current,r)?t.current:t.current=r}}function eo(){Je.invalidateQueries({queryKey:Ge.sessions.all})}function to(e,t){let{session:n}=e,{setSessions:r,setCurrentSession:i,setMessagesBySession:a,setPartsBySession:o,setSessionUsage:s,setCurrentModel:c,setSelectedVariant:l,pendingSessionCreateRef:u,sessionAccessTimesRef:d,partIdIndexRef:f,defaultModel:p}=t;r(e=>[n,...e]),u.current&&(i(n),a(e=>({...e,[n.id]:[]})),o(e=>({...e,[n.id]:{}})),f.current.clear(),s({promptTokens:0,completionTokens:0,totalTokens:0}),c(n.selectedModel||p),l(n.selectedVariant??null),u.current=!1,t.navigateToSession(n.id),t.resumeSessionAfterCreate(n.id)),d.current.set(n.id,Date.now()),eo()}function no(e,t){let{session:n,messages:r,usage:i,isRunning:a,control:o}=e,{setCurrentSession:s,removeInterruptedSession:c,addStreamingSession:l,removeStreamingSession:u,skipFinishSoundSessionIdsRef:d,setMessagesBySession:f,setPartsBySession:p,setSessionUsage:m,setCurrentModel:h,setSelectedVariant:g,sessionAccessTimesRef:_,partIdIndexRef:v,models:y,defaultModel:b,clearCompletion:x}=t;if(s(n),c(n.id),x(n.id),a?l(n.id):(u(n.id),d.current.add(n.id)),r){f(e=>({...e,[n.id]:r.map(e=>e.message)})),p(e=>{let t={...e};t[n.id]={};for(let e of r)t[n.id][e.message.id]=e.parts;return t}),v.current.clear();for(let e of r)for(let t=0;t<e.parts.length;t++)v.current.set(e.parts[t].id,{sessionId:n.id,messageId:e.message.id,index:t})}m(i??{promptTokens:0,completionTokens:0,totalTokens:0}),h(n.selectedModel||b),g(n.selectedVariant||null);let S=n.selectedModel||b,C=y.find(e=>e.id===S)?.variants;n.selectedVariant&&C&&!C[n.selectedVariant]&&g(null),_.current.set(n.id,Date.now()),o&&Tt.getState().setControlState(n.id,o)}function ro(e,t){let{sessionId:n}=e,{setSessions:r,setMessagesBySession:i,setPartsBySession:a,setCurrentSession:o,partIdIndexRef:s,partAppendRafRef:c,pendingPartAppendsRef:l,sessionAccessTimesRef:u,currentSessionIdRef:d,clearCompletion:f}=t;r(e=>e.map(e=>e.id===n?{...e,status:`closed`}:e)),f(n),d.current===n&&(c.current!==null&&(cancelAnimationFrame(c.current),c.current=null),l.current.clear()),i(e=>{let t={...e};return delete t[n],t}),a(e=>{let t={...e};return delete t[n],t});for(let[e,t]of s.current)t.sessionId===n&&s.current.delete(e);u.current.delete(n),d.current===n&&(o(null),t.navigateToParent()),eo()}function io(e,t){let{session:n}=e,{setSessions:r,setCurrentSession:i,currentSessionIdRef:a}=t;r(e=>e.map(e=>e.id===n.id?n:e)),a.current===n.id&&i(n),eo()}function ao(e,t){let{sessionId:n}=e,{setSessions:r,setMessagesBySession:i,setPartsBySession:a,removeInterruptedSession:o,partIdIndexRef:s,sessionAccessTimesRef:c,setCurrentSession:l,currentSessionIdRef:u,clearCompletion:d}=t;r(e=>e.filter(e=>e.id!==n)),d(n),i(e=>{let t={...e};return delete t[n],t}),a(e=>{let t={...e};return delete t[n],t}),o(n);for(let[e,t]of s.current)t.sessionId===n&&s.current.delete(e);c.current.delete(n),u.current===n&&(l(null),t.navigateToParent()),eo()}function oo(e,t){let{session:n}=e,{setSessions:r,setCurrentSession:i,setSelectedVariant:a,setCurrentModel:o,currentSessionIdRef:s}=t;r(e=>e.map(e=>e.id===n.id?n:e)),s.current===n.id&&(i(n),n.selectedVariant!==void 0&&a(n.selectedVariant),n.selectedModel&&o(n.selectedModel)),eo()}function so(e,t){let{session:n}=e,{setSessions:r,setCurrentSession:i,currentSessionIdRef:a}=t;r(e=>e.map(e=>e.id===n.id?n:e)),a.current===n.id&&i(n),eo()}function co(e,t){let{sessionId:n,result:r}=e,{addInterruptedSession:i,skipFinishSoundSessionIdsRef:a,removeStreamingSession:o,clearPendingAskRequestsBySessionId:s}=t;i(n),a.current.add(n),o(n),s(n),r.cascadedTo.length>0&&console.log(`Session ${n} interrupted. Cascaded to:`,r.cascadedTo)}function lo(e,t){let{sessionId:n,revertedTo:r,removed:i}=e;r.messageId===null?console.log(`Session ${n} cleared (all ${i.messageIds.length} messages removed)`):console.log(`Session ${n} reverted to message ${r.messageId}, removed ${i.messageIds.length} messages`)}function uo(e,t){let{forkedSession:n,messages:r}=e,{setSessions:i,setCurrentSession:a,setMessagesBySession:o,setPartsBySession:s,setSessionUsage:c,sessionAccessTimesRef:l,partIdIndexRef:u,clearCompletion:d}=t;i(e=>[n,...e]),o(e=>({...e,[n.id]:r.map(e=>e.message)})),s(e=>{let t={...e};t[n.id]={};for(let e of r)t[n.id][e.message.id]=e.parts;return t}),u.current.clear();for(let e of r)for(let t=0;t<e.parts.length;t++)u.current.set(e.parts[t].id,{sessionId:n.id,messageId:e.message.id,index:t});a(n),t.navigateToSession(n.id),t.resumeSessionAfterCreate(n.id),c({promptTokens:0,completionTokens:0,totalTokens:0}),l.current.set(n.id,Date.now()),d(n.id),eo()}function fo(e,t){let{sessionId:n,messages:r}=e,{setMessagesBySession:i,setPartsBySession:a,partIdIndexRef:o,partAppendRafRef:s,skipFinishSoundSessionIdsRef:c,removeStreamingSession:l,sessionAccessTimesRef:u,flushPendingPartAppends:d,currentSessionIdRef:f,clearCompletion:p}=t;if(f.current===n&&(s.current!==null&&(cancelAnimationFrame(s.current),s.current=null),d()),f.current===n){i(e=>({...e,[n]:r.map(e=>e.message)})),a(e=>{let t={...e};t[n]={};for(let e of r)t[n][e.message.id]=e.parts;return t}),o.current.clear();for(let e of r)for(let t=0;t<e.parts.length;t++)o.current.set(e.parts[t].id,{sessionId:n,messageId:e.message.id,index:t})}c.current.add(n),l(n),u.current.set(n,Date.now()),p(n)}var po={"session.created":to,"session.resumed":no,"session.closed":ro,"session.reopened":io,"session.deleted":ao,"session.updated":oo,"session.renamed":so,"session.interrupted":co,"session.reverted":lo,"session.forked":uo,"session.state":fo},mo=new Set([`edit`,`multiedit`,`write-file`,`apply-patch`,`shell`]);function ho(){Je.invalidateQueries({queryKey:[`files`]})}function go(e,t){let{message:n}=e,{setMessagesBySession:r,setPartsBySession:i,addStreamingSession:a,removeInterruptedSession:o,currentSessionIdRef:s,clearCompletion:c}=t;c(n.sessionId),n.sessionId===s.current&&(r(e=>({...e,[n.sessionId]:[...e[n.sessionId]||[],n]})),i(e=>({...e,[n.sessionId]:{...e[n.sessionId],[n.id]:[]}}))),n.sessionId===s.current&&`status`in n&&n.status===`streaming`&&(a(n.sessionId),o(n.sessionId))}function _o(e,t){let{message:n}=e,{setMessagesBySession:r,removeStreamingSession:i,partAppendRafRef:a,partAppendTimeoutRef:o,flushPendingPartAppends:s,currentSessionIdRef:c,sessionsRef:l,setCompletion:u,chatFinishSoundEnabledRef:d,playChatFinishSound:f}=t;if(n.sessionId===c.current&&(`status`in n&&n.status!==`streaming`&&(a.current!==null&&(cancelAnimationFrame(a.current),a.current=null),o.current!==null&&(clearTimeout(o.current),o.current=null),s()),r(e=>({...e,[n.sessionId]:(e[n.sessionId]||[]).map(e=>e.id===n.id?n:e)}))),`status`in n&&n.status!==`streaming`){i(n.sessionId);let e=l.current.find(e=>e.id===n.sessionId);if(e&&e.parentId===null){let e=`error`in n&&n.status===`error`,t=Date.now();u(n.sessionId,{type:`flash-only`,flashStartedAt:t}),!e&&d.current&&f()}}}function vo(e,t){let{sessionId:n,part:r}=e,{setPartsBySession:i,partIdIndexRef:a,currentSessionIdRef:o,clearCompletion:s}=t;if(s(n),n===o.current){i(e=>{let t=e[n]||{},i=t[r.messageId]||[];return{...e,[n]:{...t,[r.messageId]:[...i,r]}}});let e=0;for(let t of a.current.values())t.sessionId===n&&t.messageId===r.messageId&&(e=Math.max(e,t.index+1));a.current.set(r.id,{sessionId:n,messageId:r.messageId,index:e})}}function yo(e,t){let{sessionId:n,part:r}=e,{setPartsBySession:i,partIdIndexRef:a,currentSessionIdRef:o,clearCompletion:s}=t;if(s(n),n===o.current){let e=a.current.get(r.id);i(e?t=>{let n=t[e.sessionId];if(!n)return t;let i=n[e.messageId];if(!i)return t;let a=[...i];return a[e.index]=r,{...t,[e.sessionId]:{...n,[e.messageId]:a}}}:e=>{let t=e[n]||{},i=t[r.messageId]||[];return{...e,[n]:{...t,[r.messageId]:i.map(e=>e.id===r.id?r:e)}}})}if(r.type===`tool`){let e=r;mo.has(e.name)&&(e.state.status===`completed`||e.state.status===`error`||e.state.status===`interrupted`)&&ho()}}function bo(e,t){let{sessionId:n,partId:r,delta:i}=e,{addStreamingSession:a,pendingPartAppendsRef:o,partAppendRafRef:s,interruptedSessions:c,currentSessionIdRef:l,flushPendingPartAppends:u,clearCompletion:d}=t;if(d(n),n===l.current&&!c.has(n)&&a(n),n===l.current){let e=o.current.get(r);o.current.set(r,(e||``)+i),s.current===null&&(s.current=requestAnimationFrame(()=>{u()}))}}function xo(e,t){let{sessionId:n,usage:r,model:i}=e,{setSessionUsage:a,setCurrentModel:o,currentSessionIdRef:s}=t;n===s.current&&(a({promptTokens:r.promptTokens,completionTokens:r.completionTokens,totalTokens:r.totalTokens}),o(i))}function So(e,t){let{sessionId:n}=e,{setCompactionSuccess:r,currentSessionIdRef:i}=t;n===i.current&&r(!0)}function Co(e,t){console.error(`Server error:`,e.code,e.message)}var wo={"message.created":go,"message.updated":_o,"part.created":vo,"part.updated":yo,"part.append":bo,"chat.usage":xo,"compaction.complete":So,error:Co};function To(e,t){let{grants:n}=e,{setPermissions:r}=t;r(n)}function Eo(e,t){let{grantId:n}=e,{setPermissions:r}=t;r(e=>e.map(e=>e.id===n?{...e,revokedAt:new Date().toISOString()}:e))}function Do(e,t){let{setPermissions:n}=t;n(e=>{let t=new Date().toISOString();return e.map(e=>({...e,revokedAt:t}))})}function Oo(e,t){let{sessionId:n,messages:r}=e,{setQueuedMessagesForSession:i}=t;i(n,r)}function ko(e,t){let{sessionId:n,message:r}=e,{addQueuedMessage:i}=t;i(n,r)}function Ao(e,t){let{sessionId:n,queueId:r}=e,{removeQueuedMessageById:i}=t;i(n,r)}function jo(e,t){let{sessionId:n,queueId:r}=e,{removeQueuedMessageById:i}=t;i(n,r)}var Mo={"permission.list":To,"permission.revoked":Eo,"permission.all_revoked":Do,"queue.list":Oo,"queue.added":ko,"queue.removed":Ao,"queue.sending":jo};function No(e,t){let{provider:n,connected:r,authorizationUrl:i,error:a}=e,{setProviderStatuses:o}=t;o(e=>e.find(e=>e.provider===n)?e.map(e=>e.provider===n?{...e,connected:r,authorizationUrl:i,error:a}:e):[...e,{provider:n,connected:r,authorizationUrl:i,error:a}]),Je.invalidateQueries({queryKey:Ge.config.providers.all}),Je.invalidateQueries({queryKey:Ge.config.providers.credentials})}function Po(e,t){let{provider:n,connected:r,connectedAt:i,accountId:a}=e,{setProviderStatuses:o}=t;o(e=>e.map(e=>e.provider===n?{...e,connected:r,connectedAt:i,accountId:a}:e)),Je.invalidateQueries({queryKey:Ge.config.providers.all}),Je.invalidateQueries({queryKey:Ge.config.providers.credentials})}var Fo={"provider.status":No,"provider.connected":Po};function Io(e,t){let{sessionId:n,toolCallId:r,toolName:i,ask:a,requestId:o}=e,{addPendingAskRequest:s,runAskHandlers:c,sendAskResponse:l}=t,u={toolCallId:r,sessionId:n,toolName:i,ask:a,originSessionId:a._originSessionId,requestId:o},d=a.type===`permission`?`permission`:a.type===`client_capability`?`client`:`human`,f=()=>{if(a.type!==`permission`)return;let{sessionsRef:e,notifiedToolCallIdsRef:i,permissionSoundEnabledRef:s,playPermissionSound:c}=t,l=o??r;e.current.find(e=>e.id===n)?.parentId===null&&s.current&&!i.current.has(l)&&(c(),i.current.add(l))},p=c(d,u);p?p.then(e=>{e===void 0?(s(u),f()):l(r,e,o)}).catch(()=>{s(u),f()}):(s(u),f())}function Lo(e,t){let{requestId:n,toolCallId:r}=e,{removePendingAskRequest:i,removePendingPermissionRequest:a}=t;n?a(n,r):i(r)}function Ro(e,t){let{replacePendingPermissionRequests:n}=t;n(e.requests.map(e=>({toolCallId:e.toolCallId,sessionId:e.sessionId,toolName:e.toolName,ask:e.ask,originSessionId:e._originSessionId,requestId:e.requestId})))}function zo(e,t){console.warn(`Ask response rejected: [${e.code}] ${e.message} (sessionId=${e.sessionId}, toolCallId=${e.toolCallId})`)}var Bo={"ask.request":Io,"ask.timeout":Lo,"ask.pending_sync":Ro,"ask.response_rejected":zo};function Vo(e,t){let{control:n,reason:r}=e;Tt.getState().setControlState(n.sessionId,n),console.log(`[control] State updated: sessionId=${n.sessionId} status=${n.status} reason=${r}`)}function Ho(e,t){let n=Tt.getState();n.setControlState(e.sessionId,e.control),n.setActionRejection({sessionId:e.sessionId,action:e.action,code:e.code,message:e.message}),console.warn(`[control] Action rejected: sessionId=${e.sessionId} action=${e.action} code=${e.code} message=${e.message}`)}var Uo={"session.control.updated":Vo,"session.action_rejected":Ho};function Wo(e,t){let n=()=>t.current,r=[];function i(t,n){e.on(t,n),r.push({event:t,handler:n})}return i(`session.created`,e=>{po[`session.created`]({type:`session.created`,session:e},n())}),i(`session.resumed`,(e,t,r,i,a)=>{po[`session.resumed`]({type:`session.resumed`,session:e,messages:t,usage:r,isRunning:i,control:a},n())}),i(`session.closed`,e=>{po[`session.closed`]({type:`session.closed`,sessionId:e},n())}),i(`session.reopened`,e=>{po[`session.reopened`]({type:`session.reopened`,session:e},n())}),i(`session.deleted`,e=>{po[`session.deleted`]({type:`session.deleted`,sessionId:e},n())}),i(`session.updated`,e=>{po[`session.updated`]({type:`session.updated`,session:e},n())}),i(`session.renamed`,e=>{po[`session.renamed`]({type:`session.renamed`,session:e},n())}),i(`session.interrupted`,(e,t)=>{po[`session.interrupted`]({type:`session.interrupted`,sessionId:e,result:t},n())}),i(`session.reverted`,(e,t,r)=>{po[`session.reverted`]({type:`session.reverted`,sessionId:e,revertedTo:t,removed:r},n())}),i(`session.forked`,(e,t,r)=>{po[`session.forked`]({type:`session.forked`,originalSessionId:e,forkedSession:t,messages:r},n())}),i(`session.state`,(e,t)=>{po[`session.state`]({type:`session.state`,sessionId:e,messages:t},n())}),i(`session.control.updated`,(e,t)=>{Uo[`session.control.updated`]({type:`session.control.updated`,control:e,reason:t},n())}),i(`session.action_rejected`,(e,t,r,i,a)=>{Uo[`session.action_rejected`]({type:`session.action_rejected`,sessionId:e,action:t,code:r,message:i,control:a},n())}),i(`message.created`,e=>{wo[`message.created`]({type:`message.created`,message:e},n())}),i(`message.updated`,e=>{wo[`message.updated`]({type:`message.updated`,message:e},n())}),i(`part.created`,(e,t)=>{wo[`part.created`]({type:`part.created`,sessionId:e,part:t},n())}),i(`part.updated`,(e,t)=>{wo[`part.updated`]({type:`part.updated`,sessionId:e,part:t},n())}),i(`part.append`,(e,t,r,i)=>{wo[`part.append`]({type:`part.append`,sessionId:e,partId:t,field:r,delta:i},n())}),i(`chat.usage`,(e,t,r)=>{wo[`chat.usage`]({type:`chat.usage`,sessionId:e,usage:t,model:r},n())}),i(`compaction.complete`,(e,t)=>{wo[`compaction.complete`]({type:`compaction.complete`,sessionId:e,tokensUsed:t},n())}),i(`permission.list`,(e,t)=>{Mo[`permission.list`]({type:`permission.list`,workspaceId:e,grants:t},n())}),i(`permission.revoked`,e=>{Mo[`permission.revoked`]({type:`permission.revoked`,grantId:e},n())}),i(`permission.all_revoked`,(e,t)=>{Mo[`permission.all_revoked`]({type:`permission.all_revoked`,workspaceId:e,count:t},n())}),i(`queue.list`,(e,t)=>{Mo[`queue.list`]({type:`queue.list`,sessionId:e,messages:t},n())}),i(`queue.added`,(e,t)=>{Mo[`queue.added`]({type:`queue.added`,sessionId:e,message:t},n())}),i(`queue.removed`,(e,t)=>{Mo[`queue.removed`]({type:`queue.removed`,sessionId:e,queueId:t},n())}),i(`queue.sending`,(e,t)=>{Mo[`queue.sending`]({type:`queue.sending`,sessionId:e,queueId:t},n())}),i(`provider.status`,(e,t,r,i)=>{Fo[`provider.status`]({type:`provider.status`,provider:e,connected:t,authorizationUrl:r,error:i},n())}),i(`provider.connected`,(e,t,r,i)=>{Fo[`provider.connected`]({type:`provider.connected`,provider:e,connected:t,connectedAt:r,accountId:i},n())}),i(`ask.request`,(e,t,r,i,a,o)=>{Bo[`ask.request`]({type:`ask.request`,sessionId:e,toolCallId:t,toolName:r,ask:i,requestId:a,authority:o},n())}),i(`ask.response_rejected`,(e,t,r,i,a)=>{Bo[`ask.response_rejected`]({type:`ask.response_rejected`,sessionId:e,toolCallId:t,requestId:r,code:i,message:a},n())}),i(`ask.timeout`,(e,t,r)=>{Bo[`ask.timeout`]({type:`ask.timeout`,sessionId:e,toolCallId:t,requestId:r},n())}),i(`ask.pending_sync`,(e,t)=>{Bo[`ask.pending_sync`]({type:`ask.pending_sync`,sessionId:e,requests:t},n())}),i(`error`,(e,t)=>{wo.error({type:`error`,code:e,message:t},n())}),()=>{for(let{event:t,handler:n}of r)e.off(t,n)}}function Go(e){try{let t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}var Ko={async get(e){return o.storage?o.storage.get(e):Go(e)},async set(e,t){if(o.storage)return o.storage.set(e,t);localStorage.setItem(e,JSON.stringify(t))},async remove(e){if(o.storage)return o.storage.remove(e);localStorage.removeItem(e)},async clear(){if(o.storage)return o.storage.clear();localStorage.clear()},isNative(){return o.capabilities.storage}},qo={API_TOKEN:`jean2_api_token`,TOKEN_EXPIRY:`jean2_token_expiry`,SERVER_URL:`jean2_server_url`,THEME:`jean2-theme`,ACTIVE_WORKSPACE_ID:`activeWorkspaceId`,CLIENT_ID:`jean2_client_id`};function Jo(){return crypto.randomUUID()}async function Yo(){let e=await Ko.get(qo.CLIENT_ID);if(e)return e;let t=Jo();return await Ko.set(qo.CLIENT_ID,t),t}function Xo(){switch(ke()){case`electron`:return`desktop`;default:return`web`}}function Zo(){switch(ke()){case`electron`:return`Jean2 Desktop`;default:return`Jean2 Web`}}async function Qo(){return{clientId:await Yo(),clientType:Xo(),displayName:Zo(),interactionMode:`human`,capabilities:[]}}var $o=1e4,es=3e4,ts=1e3;function ns(e){let t=(0,$.c)(51),{apiToken:n,serverUrl:r,currentSessionIdRef:i,handlerContextRef:a,handleLogout:o,clientRef:s}=e,c=(0,Z.useRef)(null),l=s??c,[u,d]=(0,Z.useState)(0),[f,p]=(0,Z.useState)(null),m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>{K.getState().setRetryCount(0),K.getState().setConnectionTimedOut(!1),K.getState().setNextRetryIn(0),K.getState().setAuthError(null),d(fs)},t[0]=m):m=t[0];let h=m,g=K(ds),_=K(us),v,y;t[1]===r?(v=t[2],y=t[3]):(v=()=>{if(!r)return;let e=!1;return Qo().then(t=>{e||(p(t),mt.getState().setClientId(t.clientId))}),()=>{e=!0}},y=[r],t[1]=r,t[2]=v,t[3]=y),(0,Z.useEffect)(v,y);let b;t[4]!==n||t[5]!==f||t[6]!==l||t[7]!==i||t[8]!==o||t[9]!==a||t[10]!==r?(b=()=>{if(!r||!f)return;let e=!1,t=()=>{let e=new sr({url:r,...n?{token:n}:{},autoSyncPermissions:!1,clientDescriptor:f});l.current=e,e.on(`connected`,()=>{K.getState().setConnected(!0),K.getState().setAuthError(null),K.getState().setRetryCount(0),K.getState().setConnectionTimedOut(!1),U.getState().clearPendingRequests();let t=i.current??I.getState().currentSession?.id;if(t){let n=i.current===null;i.current=t,console.log(`[reconnect] Resuming session:`,t,n?`(restored from store)`:`(from ref)`),e.sessions.resume(t)}else console.log(`[reconnect] No session to resume (ref:`,i.current,`, store:`,I.getState().currentSession?.id,`)`)}),e.on(`disconnected`,e=>{K.getState().setConnected(!1),e.code===1008||e.code===401?o():K.getState().setConnectionTimedOut(!0)}),e.on(`error.connection`,ls),Wo(e,a),e.connect().catch(cs)};return $e.verifyToken(r,n??void 0).then(n=>{if(!e){if(!n){K.getState().setAuthError(`Authentication failed. Your token may be invalid or expired.`);return}t()}}).catch(()=>{e||t()}),()=>{e=!0;let t=l.current;t&&(t.dispose(),l.current===t&&(l.current=null))}},t[4]=n,t[5]=f,t[6]=l,t[7]=i,t[8]=o,t[9]=a,t[10]=r,t[11]=b):b=t[11];let x;t[12]!==n||t[13]!==f||t[14]!==u||t[15]!==r?(x=[r,n,f,u],t[12]=n,t[13]=f,t[14]=u,t[15]=r,t[16]=x):x=t[16],(0,Z.useEffect)(b,x);let S;t[17]!==f||t[18]!==g||t[19]!==_||t[20]!==r?(S=()=>{if(r&&f&&!g&&!_){let e=setTimeout(ss,$o);return()=>clearTimeout(e)}},t[17]=f,t[18]=g,t[19]=_,t[20]=r,t[21]=S):S=t[21];let C;t[22]!==n||t[23]!==f||t[24]!==g||t[25]!==_||t[26]!==u||t[27]!==r?(C=[r,n,f,u,g,_],t[22]=n,t[23]=f,t[24]=g,t[25]=_,t[26]=u,t[27]=r,t[28]=C):C=t[28],(0,Z.useEffect)(S,C);let w;t[29]!==g||t[30]!==_||t[31]!==r?(w=()=>{if(!_||g||!r)return;let e=K.getState().retryCount,t=Math.min(ts*2**e,es),n=Math.floor(t/1e3);K.getState().setNextRetryIn(n);let i=setInterval(()=>{--n,K.getState().setNextRetryIn(Math.max(0,n))},1e3),a=setTimeout(()=>{K.getState().setRetryCount(os),d(as)},t);return()=>{clearInterval(i),clearTimeout(a)}},t[29]=g,t[30]=_,t[31]=r,t[32]=w):w=t[32];let T;t[33]!==n||t[34]!==g||t[35]!==_||t[36]!==u||t[37]!==r?(T=[r,n,u,g,_],t[33]=n,t[34]=g,t[35]=_,t[36]=u,t[37]=r,t[38]=T):T=t[38],(0,Z.useEffect)(w,T);let E;t[39]!==l||t[40]!==r?(E=()=>{let e=()=>{if(!r)return;let e=l.current;e&&e.connected||(K.getState().setConnected(!1),K.getState().setRetryCount(0),K.getState().setConnectionTimedOut(!1),d(is))};return window.addEventListener(`online`,e),()=>window.removeEventListener(`online`,e)},t[39]=l,t[40]=r,t[41]=E):E=t[41];let D;t[42]===r?D=t[43]:(D=[r],t[42]=r,t[43]=D),(0,Z.useEffect)(E,D);let O;t[44]!==l||t[45]!==r?(O=()=>{let e=()=>{if(document.visibilityState!==`visible`)return;let e=l.current;e&&e.ws?.readyState===WebSocket.OPEN||r&&(K.getState().setRetryCount(0),K.getState().setConnectionTimedOut(!1),d(rs))};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},t[44]=l,t[45]=r,t[46]=O):O=t[46];let k;t[47]===r?k=t[48]:(k=[r],t[47]=r,t[48]=k),(0,Z.useEffect)(O,k);let A;return t[49]===l?A=t[50]:(A={clientRef:l,retry:h},t[49]=l,t[50]=A),A}function rs(e){return e+1}function is(e){return e+1}function as(e){return e+1}function os(e){return e+1}function ss(){K.getState().connected||K.getState().setConnectionTimedOut(!0)}function cs(e){console.error(`Connection failed:`,e)}function ls(e){console.error(`WebSocket error:`,e)}function us(e){return e.connectionTimedOut}function ds(e){return e.connected}function fs(e){return e+1}function ps(e){let t=(0,$.c)(122),{clientRef:n,currentSession:r,sessions:i,workspaces:a,activeWorkspace:o,currentModel:s,streamingSessionIds:c,isCompacting:l,primaryPreconfigs:u,setActiveWorkspace:d,setCompactionSuccess:f,setCurrentModel:p,setSelectedVariant:m,removePendingAskRequest:h,removePendingPermissionRequest:g,clearStreamingSessions:_,pendingSessionCreateRef:v,partAppendRafRef:y,pendingPartAppendsRef:b,skipFinishSoundSessionIdsRef:x,navigate:S,serverId:C,viewPath:w}=e,T;t[0]!==o?.id||t[1]!==n||t[2]!==y||t[3]!==b||t[4]!==v||t[5]!==f?(T=(e,t)=>{let r=n.current;v.current=!0,y.current!==null&&(cancelAnimationFrame(y.current),y.current=null),b.current.clear(),r&&r.connected&&r.sessions.create({preconfigId:e,title:t,workspaceId:o?.id}),f(!1)},t[0]=o?.id,t[1]=n,t[2]=y,t[3]=b,t[4]=v,t[5]=f,t[6]=T):T=t[6];let E=T,D;t[7]!==o?.id||t[8]!==_||t[9]!==n||t[10]!==S||t[11]!==y||t[12]!==b||t[13]!==C||t[14]!==i||t[15]!==d||t[16]!==f||t[17]!==x||t[18]!==w||t[19]!==a?(D=(e,t)=>{let r=n.current;I.getState().setNavigationIntent(t?.targetMessageId?{mode:`target-message`,messageId:t.targetMessageId}:{mode:`follow`}),x.current=new Set(K.getState().streamingSessionIds),_(),f(!1);let s=i.find(t=>t.id===e);if(s?.workspaceId&&s.workspaceId!==o?.id){let e=a.find(e=>e.id===s.workspaceId);e&&d(e)}y.current!==null&&(cancelAnimationFrame(y.current),y.current=null),b.current.clear(),r&&r.connected&&r.sessions.resume(e),S({to:`/server/$serverId${w}/session/$sessionId`,params:{serverId:C,sessionId:e}})},t[7]=o?.id,t[8]=_,t[9]=n,t[10]=S,t[11]=y,t[12]=b,t[13]=C,t[14]=i,t[15]=d,t[16]=f,t[17]=x,t[18]=w,t[19]=a,t[20]=D):D=t[20];let O=D,k;t[21]===n?k=t[22]:(k=e=>{let t=n.current;t&&t.connected&&t.sessions.close(e)},t[21]=n,t[22]=k);let A=k,j;t[23]===n?j=t[24]:(j=(e,t)=>{let r=n.current;r&&r.connected&&r.sessions.revert(e,t)},t[23]=n,t[24]=j);let M=j,N;t[25]===n?N=t[26]:(N=(e,t)=>{let r=n.current;r&&r.connected&&r.sessions.fork(e,t)},t[25]=n,t[26]=N);let P=N,F;t[27]===n?F=t[28]:(F=e=>{let t=n.current;t&&t.connected&&t.sessions.compact(e)},t[27]=n,t[28]=F);let L=F,R;t[29]===n?R=t[30]:(R=e=>{let t=n.current;t&&t.connected&&t.sessions.reopen(e)},t[29]=n,t[30]=R);let z=R,B;t[31]===n?B=t[32]:(B=e=>{let t=n.current;t&&t.connected&&t.sessions.delete(e)},t[31]=n,t[32]=B);let V=B,H;t[33]!==n||t[34]!==r?(H=e=>{let t=n.current;t&&t.connected&&r&&t.sessions.update(r.id,{preconfigId:e})},t[33]=n,t[34]=r,t[35]=H):H=t[35];let U=H,W;t[36]!==n||t[37]!==r||t[38]!==p||t[39]!==m?(W=(e,t)=>{let i=n.current;p(e),m(null),i&&i.connected&&r&&i.sessions.updateModel(r.id,{modelId:e,providerId:t})},t[36]=n,t[37]=r,t[38]=p,t[39]=m,t[40]=W):W=t[40];let ee=W,te;t[41]!==n||t[42]!==s||t[43]!==r||t[44]!==m?(te=e=>{let t=n.current;t&&t.connected&&r&&(t.sessions.updateModel(r.id,{modelId:r.selectedModel||s,providerId:r.selectedProvider||`openai`,variant:e??void 0}),m(e))},t[41]=n,t[42]=s,t[43]=r,t[44]=m,t[45]=te):te=t[45];let ne=te,re;t[46]===n?re=t[47]:(re=(e,t)=>{let r=n.current;r&&r.connected&&r.sessions.rename(e,t)},t[46]=n,t[47]=re);let ie=re,ae;t[48]===n?ae=t[49]:(ae=e=>{let t=n.current;t&&t.connected&&t.sessions.generateTitle(e)},t[48]=n,t[49]=ae);let oe=ae,se;t[50]!==r||t[51]!==O?(se=()=>{r?.parentId&&O(r.parentId)},t[50]=r,t[51]=O,t[52]=se):se=t[52];let G=se,ce;t[53]===n?ce=t[54]:(ce=(e,t,r,i)=>{let a=n.current;a&&a.connected&&a.queue.add(e,t,{attachments:r,responseFormatId:i})},t[53]=n,t[54]=ce);let le=ce,ue;t[55]===n?ue=t[56]:(ue=e=>{let t=n.current;t&&t.connected&&t.queue.remove(e)},t[55]=n,t[56]=ue);let de=ue,fe;t[57]!==le||t[58]!==n||t[59]!==r||t[60]!==l||t[61]!==c?(fe=(e,t,i)=>{let a=n.current;!r||l||(r.runningAt||c.has(r.id)?le(r.id,e,t,i):a&&a.connected&&a.chat.send(r.id,e,{attachments:t,responseFormatId:i}))},t[57]=le,t[58]=n,t[59]=r,t[60]=l,t[61]=c,t[62]=fe):fe=t[62];let pe=fe,me;t[63]!==n||t[64]!==h||t[65]!==g?(me=(e,t,r)=>{let i=n.current;r?g(r,e):h(e),i&&i.connected&&i.send({type:`ask.response`,toolCallId:e,response:t,requestId:r})},t[63]=n,t[64]=h,t[65]=g,t[66]=me):me=t[66];let he=me,ge;t[67]!==n||t[68]!==r?(ge=()=>{let e=n.current;e&&e.connected&&r&&e.sessions.interrupt(r.id)},t[67]=n,t[68]=r,t[69]=ge):ge=t[69];let q=ge,_e;t[70]!==o||t[71]!==n?(_e=()=>{let e=n.current;e&&e.connected&&o&&e.permissions.list(o.id)},t[70]=o,t[71]=n,t[72]=_e):_e=t[72];let ve=_e,ye;t[73]!==n||t[74]!==y||t[75]!==b||t[76]!==v||t[77]!==u||t[78]!==d||t[79]!==f||t[80]!==a?(ye=e=>{let t=n.current;d(a.find(t=>t.id===e)||null),v.current=!0,y.current!==null&&(cancelAnimationFrame(y.current),y.current=null),b.current.clear();let r=u[0]?.id;t&&t.connected&&t.sessions.create({preconfigId:r,workspaceId:e}),f(!1)},t[73]=n,t[74]=y,t[75]=b,t[76]=v,t[77]=u,t[78]=d,t[79]=f,t[80]=a,t[81]=ye):ye=t[81];let be=ye,xe;t[82]===n?xe=t[83]:(xe=e=>{let t=n.current;t&&t.connected&&t.permissions.revoke(e)},t[82]=n,t[83]=xe);let Se=xe,Ce;t[84]===n?Ce=t[85]:(Ce=e=>{let t=n.current;t&&t.connected&&t.permissions.revokeAll(e)},t[84]=n,t[85]=Ce);let we=Ce,Te;t[86]===n?Te=t[87]:(Te=e=>{let t=n.current;t&&t.connected&&t.control.claim(e)},t[86]=n,t[87]=Te);let Ee=Te,De;t[88]===n?De=t[89]:(De=e=>{let t=n.current;t&&t.connected&&t.control.release(e)},t[88]=n,t[89]=De);let Oe=De,ke;t[90]===n?ke=t[91]:(ke=e=>{let t=n.current;t&&t.connected&&t.control.requestTakeover(e)},t[90]=n,t[91]=ke);let Ae=ke,je;t[92]===n?je=t[93]:(je=(e,t,r)=>{let i=n.current;i&&i.connected&&i.control.respondTakeover(e,t,r)},t[92]=n,t[93]=je);let Me=je,Ne;return t[94]!==le||t[95]!==Ee||t[96]!==A||t[97]!==L||t[98]!==E||t[99]!==be||t[100]!==P||t[101]!==he||t[102]!==q||t[103]!==G||t[104]!==ie||t[105]!==V||t[106]!==ve||t[107]!==oe||t[108]!==Oe||t[109]!==de||t[110]!==z||t[111]!==Ae||t[112]!==Me||t[113]!==O||t[114]!==M||t[115]!==we||t[116]!==Se||t[117]!==pe||t[118]!==ee||t[119]!==U||t[120]!==ne?(Ne={createSession:E,resumeSession:O,closeSession:A,reopenSession:z,permanentlyDeleteSession:V,handleRenameSession:ie,regenerateSessionTitle:oe,revertSession:M,forkSession:P,compactSession:L,addToQueue:le,removeFromQueue:de,sendChatMessage:pe,handleAskResponse:he,handleInterruptSession:q,updateSessionPreconfig:U,updateSessionModel:ee,updateSessionVariant:ne,handleNavigateBack:G,refreshPermissions:ve,createSessionInWorkspace:be,revokePermission:Se,revokeAllPermissions:we,claimControl:Ee,releaseControl:Oe,requestTakeover:Ae,respondTakeover:Me},t[94]=le,t[95]=Ee,t[96]=A,t[97]=L,t[98]=E,t[99]=be,t[100]=P,t[101]=he,t[102]=q,t[103]=G,t[104]=ie,t[105]=V,t[106]=ve,t[107]=oe,t[108]=Oe,t[109]=de,t[110]=z,t[111]=Ae,t[112]=Me,t[113]=O,t[114]=M,t[115]=we,t[116]=Se,t[117]=pe,t[118]=ee,t[119]=U,t[120]=ne,t[121]=Ne):Ne=t[121],Ne}var ms={chatFinish:`/assets/chat-finish-Kb8mnIhV.mp3`,chatPermission:`/assets/chat-permission-BltPnMpz.mp3`};function hs(){let e=(0,Z.useRef)(null),t=(0,Z.useRef)({}),n=(0,Z.useRef)(!1),r=(0,Z.useRef)(null),i=(0,Z.useRef)(0),a=(0,Z.useCallback)(async()=>{let n=e.current;return(!n||n.state===`closed`)&&(n=new AudioContext,e.current=n,t.current={}),n.state===`suspended`&&await n.resume(),n},[]),s=(0,Z.useCallback)(async(e,n)=>{if(t.current[e])return t.current[e]??null;try{let r=await fetch(ms[e]);if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.arrayBuffer(),a=await n.decodeAudioData(i);return t.current[e]=a,a}catch(t){return console.warn(`[useNotificationSound] Failed to load`,e,t),null}},[]),c=(0,Z.useCallback)((e,t)=>{try{let n=t.createBufferSource();n.buffer=e,n.connect(t.destination),n.start(0)}catch(e){console.warn(`[useNotificationSound] Playback error`,e)}},[]),l=(0,Z.useCallback)(async()=>{if(n.current)return;let e=await a();if(e.state!==`running`)return;let t=r.current;if(r.current=null,t){let n=await s(t,e);n&&c(n,e)}n.current=!0},[a,s,c]),u=(0,Z.useCallback)(()=>{let e=()=>{document.removeEventListener(`click`,e),document.removeEventListener(`keydown`,e),document.removeEventListener(`touchstart`,e),l()};document.addEventListener(`click`,e),document.addEventListener(`keydown`,e),document.addEventListener(`touchstart`,e)},[l]),d=(0,Z.useCallback)(async e=>{if(n.current){let t=await a();if(t.state!==`running`)return;let n=await s(e,t);n&&c(n,t);return}r.current=e,u()},[a,s,c,u]),f=(0,Z.useCallback)(async e=>{if(o.capabilities.sound){let t=Date.now();if(t>i.current)try{await o.playSound?.(e),i.current=t+1e3;return}catch(e){console.warn(`[useNotificationSound] Native playback failed, falling back to Web Audio`,e)}await d(e);return}await d(e)},[d]),p=(0,Z.useCallback)(()=>{f(`chatFinish`)},[f]),m=(0,Z.useCallback)(()=>{f(`chatPermission`)},[f]);return(0,Z.useEffect)(()=>()=>{let t=e.current;t&&t.state!==`closed`&&t.close(),e.current=null},[]),{playChatFinishSound:p,playPermissionSound:m,playSound:f}}var gs=[`none`,`low`,`medium`,`high`,`critical`];function _s(e,t){return gs.indexOf(e)<=gs.indexOf(t)}function vs(e){return I.getState().sessions.find(t=>t.id===e)?.autoApproveSeverity??null}function ys(){return e=>{let t=e.ask;if(!(`target`in t&&t.target===`permission`||t.type===`permission`))return;let n=vs(e.sessionId);if(n===`off`)return;let r=n??`low`,i=`risk`in t?t.risk:void 0;if(!(!i||!_s(i,r)))return{type:`permission`,grant:`once`}}}function bs(){let e=(0,$.c)(1),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,Z.useEffect)(xs,t)}function xs(){let e=ys();return U.getState().registerHandler(`permission`,e),()=>{U.getState().unregisterHandler(`permission`,e)}}function Ss({serverId:e,activeServer:t,navigate:n,removeFromQuickConnectionsByWorkspace:r,quickConnections:i}){let a=(0,Z.useRef)(null),o=(0,Z.useRef)(null),c=(0,Z.useRef)([]),l=(0,Z.useRef)({}),u=(0,Z.useRef)(new Map),d=(0,Z.useRef)(0),f=(0,Z.useRef)(new Set),p=(0,Z.useRef)(new Map),m=(0,Z.useRef)(new Map),h=(0,Z.useRef)(null),g=(0,Z.useRef)(0),_=(0,Z.useRef)(null),v=(0,Z.useRef)(new Set),y=(0,Z.useRef)(!1),b=(0,Z.useRef)(null),{sessions:x,setSessions:S}=I($a(e=>({sessions:e.sessions,setSessions:e.setSessions}))),{setCurrentSession:C}=I($a(e=>({setCurrentSession:e.setCurrentSession}))),{setMessagesBySession:w,setPartsBySession:T}=I($a(e=>({setMessagesBySession:e.setMessagesBySession,setPartsBySession:e.setPartsBySession}))),E=nt({from:`/server/$serverId`,strict:!1})?.sessionId,D=Gn({select:e=>e.location.pathname}).includes(`/overview`)?`/overview`:`/workspace`,O=(0,Z.useMemo)(()=>E?x.find(e=>e.id===E)??null:null,[E,x]),k=E!=null&&O==null;(0,Z.useEffect)(()=>{let e=I.getState().currentSession;O?.id!==e?.id&&C(O)},[O,C]);let A=O?.id,j=I($a(e=>A&&e.messagesBySession[A]||[])),M=I($a(e=>A&&e.partsBySession[A]||{}));(0,Z.useLayoutEffect)(()=>{l.current=I.getState().messagesBySession});let{streamingSessionIds:N,interruptedSessions:P,addStreamingSession:F,removeStreamingSession:L,addInterruptedSession:R,removeInterruptedSession:z}=K($a(e=>({streamingSessionIds:e.streamingSessionIds,interruptedSessions:e.interruptedSessions,addStreamingSession:e.addStreamingSession,removeStreamingSession:e.removeStreamingSession,addInterruptedSession:e.addInterruptedSession,removeInterruptedSession:e.removeInterruptedSession}))),{sessionUsage:B,currentModel:V,selectedVariant:H,setSessionUsage:W,setCurrentModel:ee,setSelectedVariant:te}=I($a(e=>({sessionUsage:e.sessionUsage,currentModel:e.currentModel,selectedVariant:e.selectedVariant,setSessionUsage:e.setSessionUsage,setCurrentModel:e.setCurrentModel,setSelectedVariant:e.setSelectedVariant}))),{workspaces:ne,preconfigs:re,prompts:ie,models:ae,defaultModel:oe}=s($a(e=>({workspaces:e.workspaces,preconfigs:e.preconfigs,prompts:e.prompts,models:e.models,defaultModel:e.defaultModel}))),se=s(e=>e.activeWorkspace),G=ae,ce=oe;(0,Z.useEffect)(()=>{let e=G.find(e=>e.id===V)?.variants;H&&e&&!e[H]&&te(null)},[V,H,G,te]);let{setCompletion:le,clearCompletion:ue,clearAllCompletions:de}=Pt($a(e=>({setCompletion:e.setCompletion,clearCompletion:e.clearCompletion,clearAllCompletions:e.clearAllCompletions}))),{chatFinishSoundEnabled:fe,permissionSoundEnabled:pe}=Ue($a(e=>({chatFinishSoundEnabled:e.chatFinishSoundEnabled,permissionSoundEnabled:e.permissionSoundEnabled}))),me=(0,Z.useRef)(pe);(0,Z.useLayoutEffect)(()=>{me.current=pe},[pe]);let he=(0,Z.useRef)(fe);(0,Z.useLayoutEffect)(()=>{he.current=fe},[fe]);let[ge,q]=(0,Z.useState)([]),[_e,ve]=(0,Z.useState)([]),{pendingRequests:ye,addPendingRequest:be,removePendingRequest:xe,removePendingPermissionRequest:Se,replacePendingPermissionRequests:Ce,clearPendingRequests:we,clearPendingRequestsBySessionId:Te}=U($a(e=>({pendingRequests:e.pendingRequests,addPendingRequest:e.addPendingRequest,removePendingRequest:e.removePendingRequest,removePendingPermissionRequest:e.removePendingPermissionRequest,replacePendingPermissionRequests:e.replacePendingPermissionRequests,clearPendingRequests:e.clearPendingRequests,clearPendingRequestsBySessionId:e.clearPendingRequestsBySessionId}))),{queuedMessages:Ee,clearQueuedMessages:De,setQueuedMessagesForSession:Oe,addQueuedMessage:ke,removeQueuedMessageById:Ae}=I($a(e=>({queuedMessages:e.queuedMessages,clearQueuedMessages:e.clearQueuedMessages,setQueuedMessagesForSession:e.setQueuedMessagesForSession,addQueuedMessage:e.addQueuedMessage,removeQueuedMessageById:e.removeQueuedMessageById}))),je=K(e=>e.authError),Me=K(e=>e.connectionTimedOut),Ne=K(e=>e.retryCount),Pe=K(e=>e.nextRetryIn),Fe=K(e=>e.connected),Ie=O?.compacting??!1,{compactionSuccess:J,setCompactionSuccess:Le}=I($a(e=>({compactionSuccess:e.compactionSuccess,setCompactionSuccess:e.setCompactionSuccess}))),{playChatFinishSound:Re,playPermissionSound:ze}=hs();bs();let Be=(0,Z.useCallback)(()=>{if(h.current!==null&&(cancelAnimationFrame(h.current),h.current=null),_.current!==null&&(clearTimeout(_.current),_.current=null),m.current.size===0)return;let e=new Map(m.current);m.current.clear(),g.current=Date.now(),T(t=>{let n={...t},r=!1;for(let[t,i]of e){let e=p.current.get(t);if(!e)continue;let a=n[e.sessionId];if(!a)continue;let o=a[e.messageId];if(!o)continue;let s=o[e.index];if(!s||s.type!==`text`&&s.type!==`reasoning`)continue;r=!0;let c=[...o];c[e.index]={...s,text:s.text+i},n[e.sessionId]={...a,[e.messageId]:c}}return r?n:t})},[T]);(0,Z.useLayoutEffect)(()=>{let e=I.getState().getMessagesBySessionKeysCount();if(e<=d.current){d.current=e;return}if(d.current=e,e<=1)return;let t=l.current,n=Object.keys(t);for(;n.length>1;){let e=null,t=1/0;for(let r of n){if(r===O?.id)continue;let n=u.current.get(r);n!==void 0&&n<t&&(t=n,e=r)}if(!e)break;u.current.delete(e);for(let[t,n]of p.current)n.sessionId===e&&p.current.delete(t);n.splice(n.indexOf(e),1),w(t=>{if(!(e in t))return t;let n={...t};return delete n[e],n}),T(t=>{if(!(e in t))return t;let n={...t};return delete n[e],n})}},[O,w,T]);let Ve=t?.token??null,He=t?.url??null,We=a.current;(0,Z.useLayoutEffect)(()=>{o.current=O?.id??null},[O]);let Ke=(0,Z.useRef)(new Set);(0,Z.useEffect)(()=>{E&&O&&Fe&&a.current&&!Ke.current.has(E)&&(A&&I.getState().messagesBySession[A]?.length||(Ke.current.add(E),a.current.sessions.resume(E)))},[E,O,Fe,A]),(0,Z.useEffect)(()=>{f.current.clear()},[O?.id]),(0,Z.useLayoutEffect)(()=>{c.current=x},[x]);let qe=(0,Z.useCallback)(e=>e===A?j.map(e=>({message:e,parts:(M[e.id]||[]).sort((e,t)=>e.createdAt-t.createdAt)})):[],[A,j,M]),{removeServer:Ye}=et(),Xe=(0,Z.useCallback)(()=>{t&&(Ye(t.id),n({to:`/`})),a.current?.dispose(),K.getState().resetConnection()},[t,Ye,n,a]),{retry:Ze}=ns({apiToken:Ve,serverUrl:He,currentSessionIdRef:o,handlerContextRef:b,handleLogout:Xe,clientRef:a}),Qe=(0,Z.useCallback)(()=>{Ze()},[Ze]),$e=async(t,r,i)=>{let o=a.current?.httpClient;if(!o)return;let c=(await o.post(`/workspaces`,{name:t,path:r,isVirtual:i})).workspace;return s.getState().setWorkspaces([...s.getState().workspaces,c]),s.getState().setActiveWorkspace(c),localStorage.setItem(`activeWorkspaceId`,c.id),C(null),Je.invalidateQueries({queryKey:Ge.sessions.all}),n({to:`/server/$serverId/workspace`,params:{serverId:e}}),c},tt=(0,Z.useCallback)(t=>{s.getState().setActiveWorkspace(t),localStorage.setItem(`activeWorkspaceId`,t.id),C(null),n({to:`/server/$serverId/workspace`,params:{serverId:e}})},[C,n,e]),rt=async t=>{let i=a.current?.httpClient;if(!i)return;let o=[];try{o=(await i.delete(`/workspaces/${t}`)).deletedSessions}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`Failed to delete workspace:`,t);return}r(t),O&&(O.workspaceId===t||o.includes(O.id))&&(C(null),n({to:`/server/$serverId/workspace`,params:{serverId:e}})),S(e=>e.filter(e=>!o.includes(e.id))),w(e=>{let t={...e};return o.forEach(e=>delete t[e]),t}),T(e=>{let t={...e};return o.forEach(e=>delete t[e]),t}),o.forEach(e=>u.current.delete(e));for(let[e,t]of p.current)o.includes(t.sessionId)&&p.current.delete(e);let c=s.getState().workspaces;if(s.getState().setWorkspaces(c.filter(e=>e.id!==t)),s.getState().activeWorkspace?.id===t){let e=c.filter(e=>e.id!==t)[0]||null;s.getState().setActiveWorkspace(e),e?localStorage.setItem(`activeWorkspaceId`,e.id):localStorage.removeItem(`activeWorkspaceId`)}Je.invalidateQueries({queryKey:Ge.sessions.all})},it=async(e,t)=>{let n=a.current?.httpClient;if(n)try{let r=(await n.patch(`/workspaces/${e}`,{name:t})).workspace,i=s.getState().workspaces;s.getState().setWorkspaces(i.map(t=>t.id===e?r:t)),s.getState().activeWorkspace?.id===e&&s.getState().setActiveWorkspace(r),Je.invalidateQueries({queryKey:Ge.sessions.all})}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`Failed to rename workspace:`,t)}},at=async(e,t)=>{let n=a.current?.httpClient;if(n)try{let r=(await n.patch(`/workspaces/${e}`,{additionalPaths:t})).workspace,i=s.getState().workspaces;s.getState().setWorkspaces(i.map(t=>t.id===e?r:t)),s.getState().activeWorkspace?.id===e&&s.getState().setActiveWorkspace(r)}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`Failed to update workspace paths:`,t)}},ot=async(e,t)=>{let n=a.current?.httpClient;if(n)try{let r=(await n.patch(`/workspaces/${e}`,{settings:t})).workspace,i=s.getState().workspaces;s.getState().setWorkspaces(i.map(t=>t.id===e?r:t)),s.getState().activeWorkspace?.id===e&&s.getState().setActiveWorkspace(r)}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`Failed to update workspace settings:`,t)}},st=async()=>{await $e(`Workspace ${ne.length+1}`,`~/.jean2/workspaces/${crypto.randomUUID()}`,!0)},ct=async e=>{await $e(e.split(`/`).pop()||e.split(`\\`).pop()||`Workspace`,e,!1)};(0,Z.useLayoutEffect)(()=>{b.current={setSessions:S,setCurrentSession:C,setMessagesBySession:w,setPartsBySession:T,setSessionUsage:W,setCurrentModel:ee,setSelectedVariant:te,addStreamingSession:F,removeStreamingSession:L,addInterruptedSession:R,removeInterruptedSession:z,setQueuedMessagesForSession:Oe,addQueuedMessage:ke,removeQueuedMessageById:Ae,clearQueuedMessages:De,setCompactionSuccess:Le,setCompletion:le,clearCompletion:ue,clearAllCompletions:de,pendingSessionCreateRef:y,sessionAccessTimesRef:u,partIdIndexRef:p,partAppendRafRef:h,pendingPartAppendsRef:m,lastPartAppendFlushAtRef:g,partAppendTimeoutRef:_,skipFinishSoundSessionIdsRef:v,currentSessionIdRef:o,models:s.getState().models,defaultModel:s.getState().defaultModel,interruptedSessions:P,sessionsRef:c,flushPendingPartAppends:Be,setProviderStatuses:ve,setPermissions:q,notifiedToolCallIdsRef:f,permissionSoundEnabledRef:me,playPermissionSound:ze,chatFinishSoundEnabledRef:he,playChatFinishSound:Re,navigateToSession:t=>{n({to:`/server/$serverId${D}/session/$sessionId`,params:{serverId:e,sessionId:t}})},navigateToParent:()=>{n({to:`/server/$serverId${D}`,params:{serverId:e}})},serverId:e,addPendingAskRequest:be,removePendingAskRequest:xe,removePendingPermissionRequest:Se,replacePendingPermissionRequests:Ce,clearPendingAskRequests:we,clearPendingAskRequestsBySessionId:Te,runAskHandlers:(e,t)=>{let n=U.getState().getHandlers(e);if(n.length!==0)return(async()=>{for(let e of n)try{let n=await e(t);if(n!==void 0)return n}catch{continue}})()},sendAskResponse:(e,t,n)=>{let r=a.current;n?Se(n,e):xe(e),r&&r.connected&&r.send({type:`ask.response`,toolCallId:e,response:t,requestId:n})},resumeSessionAfterCreate:e=>{let t=a.current;I.getState().setNavigationIntent({mode:`follow`}),t&&t.connected&&t.sessions.resume(e)}}});let lt=re.filter(e=>e.mode!==`subagent`),{createSession:ut,resumeSession:dt,closeSession:ft,reopenSession:pt,permanentlyDeleteSession:mt,handleRenameSession:ht,regenerateSessionTitle:gt,revertSession:_t,forkSession:vt,compactSession:yt,removeFromQueue:bt,sendChatMessage:xt,handleAskResponse:St,handleInterruptSession:Ct,updateSessionPreconfig:wt,updateSessionModel:Tt,updateSessionVariant:Et,handleNavigateBack:Dt,refreshPermissions:Ot,createSessionInWorkspace:kt,revokePermission:At,revokeAllPermissions:jt,claimControl:Mt,releaseControl:Nt,requestTakeover:Ft,respondTakeover:It}=ps({clientRef:a,currentSession:O,sessions:x,workspaces:ne,activeWorkspace:se,currentModel:V,streamingSessionIds:N,isCompacting:Ie,primaryPreconfigs:lt,setActiveWorkspace:e=>s.getState().setActiveWorkspace(e),setCompactionSuccess:Le,setCurrentModel:ee,setSelectedVariant:te,removePendingAskRequest:xe,removePendingPermissionRequest:Se,clearPendingAskRequestsBySessionId:Te,clearStreamingSessions:K.getState().clearStreamingSessions,pendingSessionCreateRef:y,partAppendRafRef:h,pendingPartAppendsRef:m,skipFinishSoundSessionIdsRef:v,navigate:n,serverId:e,viewPath:D}),Lt=x.filter(e=>e.workspaceId===se?.id),Rt=i.filter(e=>e.serverId===t?.id&&e.workspaceId).map(e=>e.workspaceId);return{connected:Fe,authError:je,connectionTimedOut:Me,retryCount:Ne,nextRetryIn:Pe,serverUrl:He,apiToken:Ve,sdkClient:We,currentSession:O,sessions:x,workspaceSessions:Lt,messagesWithParts:O?qe(O.id):[],pendingAskRequests:ye,queuedMessages:Ee,sessionUsage:B,currentModel:V,selectedVariant:H,isCompacting:Ie,compactionSuccess:J,isPrimarySession:!O?.parentId,isSessionLoading:k,workspaces:ne,activeWorkspace:se,preconfigs:re,primaryPreconfigs:lt,prompts:ie,models:G,defaultModel:ce,streamingSessionIds:N,createSession:ut,resumeSession:dt,closeSession:ft,reopenSession:pt,permanentlyDeleteSession:mt,handleRenameSession:ht,regenerateSessionTitle:gt,revertSession:_t,forkSession:vt,compactSession:yt,removeFromQueue:bt,sendChatMessage:xt,handleAskResponse:St,handleInterruptSession:Ct,updateSessionPreconfig:wt,updateSessionModel:Tt,updateSessionVariant:Et,handleNavigateBack:Dt,refreshPermissions:Ot,createSessionInWorkspace:kt,revokePermission:At,revokeAllPermissions:jt,claimControl:Mt,releaseControl:Nt,requestTakeover:Ft,respondTakeover:It,selectWorkspace:tt,renameWorkspace:it,updateWorkspacePaths:at,updateWorkspaceSettings:ot,handleCreateVirtualWorkspace:st,handleCreatePhysicalWorkspace:ct,deleteWorkspace:rt,handleLogout:Xe,handleRetry:Qe,favoritedWorkspaceIds:Rt,setCompactionSuccess:Le,permissions:ge}}function Cs(e){let t=(0,$.c)(65),{compact:n}=e,[r,i]=(0,Z.useState)(!1),a=ot(),{servers:o}=et(),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={from:`/server/$serverId`},t[0]=s):s=t[0];let c=nt(s).serverId??null,l;t[1]===a?l=t[2]:(l=e=>{a({to:`/server/$serverId`,params:{serverId:e}}),i(!1)},t[1]=a,t[2]=l);let u=l,d;t[3]===a?d=t[4]:(d=()=>{a({to:`/add-server`}),i(!1)},t[3]=a,t[4]=d);let f=d,p;t[5]===a?p=t[6]:(p=()=>{a({to:`/`}),i(!1)},t[5]=a,t[6]=p);let m=p,h;if(t[7]!==c||t[8]!==u||t[9]!==o){let e;t[11]!==c||t[12]!==u?(e=e=>(0,Q.jsxs)(cn,{onSelect:()=>u(e.id),className:`justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(Dn,{className:`size-4 text-muted-foreground`}),(0,Q.jsx)(`span`,{children:e.name})]}),(0,Q.jsx)(G,{className:Rn(`size-4`,c===e.id?`opacity-100`:`opacity-0`)})]},e.id),t[11]=c,t[12]=u,t[13]=e):e=t[13],h=o.map(e),t[7]=c,t[8]=u,t[9]=o,t[10]=h}else h=t[10];let g;t[14]===h?g=t[15]:(g=(0,Q.jsx)(fn,{heading:`Servers`,children:h}),t[14]=h,t[15]=g);let _;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Q.jsx)(an,{}),t[16]=_):_=t[16];let v;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Q.jsx)(vr,{className:`size-4`,"data-icon":`inline-start`}),t[17]=v):v=t[17];let y;t[18]===m?y=t[19]:(y=(0,Q.jsxs)(cn,{onSelect:m,children:[v,`Server Selection`]}),t[18]=m,t[19]=y);let b;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsx)(xn,{className:`size-4`,"data-icon":`inline-start`}),t[20]=b):b=t[20];let x;t[21]===f?x=t[22]:(x=(0,Q.jsxs)(cn,{onSelect:f,children:[b,`Add Server...`]}),t[21]=f,t[22]=x);let S;t[23]!==x||t[24]!==y?(S=(0,Q.jsxs)(fn,{children:[y,x]}),t[23]=x,t[24]=y,t[25]=S):S=t[25];let C;t[26]!==S||t[27]!==g?(C=(0,Q.jsxs)(Q.Fragment,{children:[g,_,S]}),t[26]=S,t[27]=g,t[28]=C):C=t[28];let w=C;if(n){let e;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Dn,{className:`size-4 flex-shrink-0 text-muted-foreground`}),t[29]=e):e=t[29];let n;t[30]!==c||t[31]!==o?(n=o.find(e=>e.id===c)?.name||`Select server`,t[30]=c,t[31]=o,t[32]=n):n=t[32];let a;t[33]===n?a=t[34]:(a=(0,Q.jsx)(`span`,{className:`truncate`,children:n}),t[33]=n,t[34]=a);let s;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(un,{className:`size-3 shrink-0 opacity-50`}),t[35]=s):s=t[35];let l;t[36]!==r||t[37]!==a?(l=(0,Q.jsx)(sn,{asChild:!0,children:(0,Q.jsxs)(X,{variant:`ghost`,size:`sm`,role:`combobox`,"aria-expanded":r,"aria-label":`Select server`,className:`gap-1.5 px-2 h-8 font-semibold hover:bg-accent`,children:[e,a,s]})}),t[36]=r,t[37]=a,t[38]=l):l=t[38];let u;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(rn,{placeholder:`Search server...`}),t[39]=u):u=t[39];let d;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(ln,{children:`No server found.`}),t[40]=d):d=t[40];let f;t[41]===w?f=t[42]:(f=(0,Q.jsx)(dn,{className:`w-[240px] p-0 max-h-[80vh]`,children:(0,Q.jsxs)(nn,{children:[u,(0,Q.jsxs)(mn,{className:`max-h-[50vh] overflow-y-auto`,children:[d,w]})]})}),t[41]=w,t[42]=f);let p;return t[43]!==r||t[44]!==l||t[45]!==f?(p=(0,Q.jsxs)(pn,{open:r,onOpenChange:i,children:[l,f]}),t[43]=r,t[44]=l,t[45]=f,t[46]=p):p=t[46],p}let T;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,Q.jsx)(Dn,{className:`size-4 flex-shrink-0 text-muted-foreground`}),t[47]=T):T=t[47];let E;t[48]!==c||t[49]!==o?(E=o.find(e=>e.id===c)?.name||`Select server`,t[48]=c,t[49]=o,t[50]=E):E=t[50];let D;t[51]===E?D=t[52]:(D=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 overflow-hidden`,children:[T,(0,Q.jsx)(`span`,{className:`truncate`,children:E})]}),t[51]=E,t[52]=D);let O;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,Q.jsx)(un,{className:`ml-auto size-4 shrink-0 opacity-50`}),t[53]=O):O=t[53];let k;t[54]!==r||t[55]!==D?(k=(0,Q.jsx)(sn,{asChild:!0,children:(0,Q.jsxs)(X,{variant:`outline`,role:`combobox`,"aria-expanded":r,"aria-label":`Select server`,className:`w-full justify-between h-9`,children:[D,O]})}),t[54]=r,t[55]=D,t[56]=k):k=t[56];let A;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Q.jsx)(rn,{placeholder:`Search server...`}),t[57]=A):A=t[57];let j;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,Q.jsx)(ln,{children:`No server found.`}),t[58]=j):j=t[58];let M;t[59]===w?M=t[60]:(M=(0,Q.jsx)(dn,{className:`w-[240px] p-0 max-h-[80vh]`,children:(0,Q.jsxs)(nn,{children:[A,(0,Q.jsxs)(mn,{className:`max-h-[50vh] overflow-y-auto`,children:[j,w]})]})}),t[59]=w,t[60]=M);let N;return t[61]!==r||t[62]!==k||t[63]!==M?(N=(0,Q.jsxs)(pn,{open:r,onOpenChange:i,children:[k,M]}),t[61]=r,t[62]=k,t[63]=M,t[64]=N):N=t[64],N}function ws(){let e=(0,$.c)(88),t=at(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={from:`/server/$serverId`,strict:!1},e[0]=n):n=e[0];let r=nt(n),i=K(As),s=Ue(ks),c=Ue(Os),l=Ue(Ds),u=Ue(Es),d=Ue(Ts),f=Kn(),p;e[1]===f.pathname?p=e[2]:(p=f.pathname.includes(`/overview`),e[1]=f.pathname,e[2]=p);let m=p,h;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=o.id===`electron`&&(0,Q.jsx)(`div`,{className:`block md:hidden h-[30px] shrink-0 z-40`,style:{WebkitAppRegion:`drag`}}),e[3]=h):h=e[3];let g;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(g={paddingTop:`calc(0.75rem + env(safe-area-inset-top, 0px))`},e[4]=g):g=e[4];let _;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(_=a(`serverSwitching`)&&(0,Q.jsx)(Cs,{compact:!0}),e[5]=_):_=e[5];let v=i?`Connected`:`Disconnected`,y=`size-2 rounded-full ${i?`bg-success`:`bg-destructive`}`,b;e[6]===y?b=e[7]:(b=(0,Q.jsx)(`span`,{className:y}),e[6]=y,e[7]=b);let x;e[8]!==v||e[9]!==b?(x=(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[_,(0,Q.jsx)(`button`,{className:`flex items-center justify-center size-5 rounded-md hover:bg-accent transition-colors`,title:v,children:b})]})}),e[8]=v,e[9]=b,e[10]=x):x=e[10];let S;e[11]!==m||e[12]!==r||e[13]!==t?(S=a(`multiView`)&&(0,Q.jsxs)(z,{children:[(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(xe,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,children:m?(0,Q.jsx)(xr,{className:`w-4 h-4`}):(0,Q.jsx)(Sr,{className:`w-4 h-4`})})})}),(0,Q.jsx)(Ae,{children:`View`})]}),(0,Q.jsxs)(_e,{align:`end`,className:`w-48 min-w-48`,children:[(0,Q.jsxs)(Le,{onClick:()=>t.navigate({to:`/server/$serverId/workspace`,params:{serverId:r.serverId}}),children:[(0,Q.jsx)(`span`,{className:`flex-1`,children:`Single workspace`}),!m&&(0,Q.jsx)(G,{className:`size-4`})]}),(0,Q.jsxs)(Le,{onClick:()=>t.navigate({to:`/server/$serverId/overview`,params:{serverId:r.serverId}}),children:[(0,Q.jsx)(`span`,{className:`flex-1`,children:`Overview`}),m&&(0,Q.jsx)(G,{className:`size-4`})]})]})]}),e[11]=m,e[12]=r,e[13]=t,e[14]=S):S=e[14];let w;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(xe,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,children:(0,Q.jsx)(Ft,{className:`w-4 h-4`})})})}),(0,Q.jsx)(Ae,{children:`More`})]}),e[15]=w):w=e[15];let T;e[16]===c?T=e[17]:(T=()=>c(!0),e[16]=c,e[17]=T);let E;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Q.jsx)(kr,{className:`mr-2 h-4 w-4`}),e[18]=E):E=e[18];let D;e[19]===T?D=e[20]:(D=(0,Q.jsxs)(Le,{onClick:T,children:[E,`Configuration`]}),e[19]=T,e[20]=D);let O;e[21]===l?O=e[22]:(O=()=>l(!0),e[21]=l,e[22]=O);let k;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Q.jsx)(C,{className:`mr-2 h-4 w-4`}),e[23]=k):k=e[23];let A;e[24]===O?A=e[25]:(A=(0,Q.jsxs)(Le,{onClick:O,children:[k,`Tools`]}),e[24]=O,e[25]=A);let j;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,Q.jsx)(Pe,{}),e[26]=j):j=e[26];let M;e[27]===s?M=e[28]:(M=()=>s(!0),e[27]=s,e[28]=M);let N;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Q.jsx)(gt,{className:`mr-2 h-4 w-4`}),e[29]=N):N=e[29];let P;e[30]===M?P=e[31]:(P=(0,Q.jsxs)(Le,{onClick:M,children:[N,`Settings`]}),e[30]=M,e[31]=P);let F;e[32]!==D||e[33]!==A||e[34]!==P?(F=(0,Q.jsxs)(z,{children:[w,(0,Q.jsxs)(_e,{align:`end`,className:`w-48 min-w-48`,children:[D,A,j,P]})]}),e[32]=D,e[33]=A,e[34]=P,e[35]=F):F=e[35];let I;e[36]!==F||e[37]!==S?(I=(0,Q.jsx)(Ie,{children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[S,F]})}),e[36]=F,e[37]=S,e[38]=I):I=e[38];let L;e[39]!==I||e[40]!==x?(L=(0,Q.jsxs)(`header`,{className:`md:hidden flex items-center justify-between pl-3 ${a(`multiView`)?`pr-5`:`pr-3`} pt-2 sticky top-0 z-40 shrink-0`,style:g,children:[x,I]}),e[39]=I,e[40]=x,e[41]=L):L=e[41];let R;e[42]===Symbol.for(`react.memo_cache_sentinel`)?(R=o.id===`electron`&&(0,Q.jsx)(`div`,{className:`hidden md:block h-[30px] shrink-0`,style:{WebkitAppRegion:`drag`}}),e[42]=R):R=e[42];let B;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(B=a(`serverSwitching`)&&(0,Q.jsx)(Cs,{compact:!0}),e[43]=B):B=e[43];let V=i?`Connected`:`Disconnected`,H=`size-2 rounded-full ${i?`bg-success`:`bg-destructive`}`,U;e[44]===H?U=e[45]:(U=(0,Q.jsx)(`span`,{className:H}),e[44]=H,e[45]=U);let W;e[46]!==V||e[47]!==U?(W=(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[B,(0,Q.jsx)(`button`,{className:`flex items-center justify-center size-5 rounded-md hover:bg-accent transition-colors`,title:V,children:U})]})}),e[46]=V,e[47]=U,e[48]=W):W=e[48];let ee;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(ee=o.id===`electron`?{WebkitAppRegion:`no-drag`}:void 0,e[49]=ee):ee=e[49];let te;e[50]!==m||e[51]!==r||e[52]!==t?(te=a(`multiView`)&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:()=>t.navigate({to:`/server/$serverId/workspace`,params:{serverId:r.serverId}}),className:m?``:`bg-sidebar-accent text-sidebar-accent-foreground`,children:(0,Q.jsx)(Sr,{className:`h-4 w-4`})})}),(0,Q.jsx)(Ae,{side:fe()?`bottom`:void 0,children:`Single workspace`})]}),(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:()=>t.navigate({to:`/server/$serverId/overview`,params:{serverId:r.serverId}}),className:m?`bg-sidebar-accent text-sidebar-accent-foreground`:``,children:(0,Q.jsx)(xr,{className:`h-4 w-4`})})}),(0,Q.jsx)(Ae,{side:fe()?`bottom`:void 0,children:`Overview`})]})]}),e[50]=m,e[51]=r,e[52]=t,e[53]=te):te=e[53];let ne;e[54]!==u||e[55]!==c||e[56]!==s||e[57]!==l?(ne=u&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:()=>c(!0),children:(0,Q.jsx)(kr,{className:`w-4 h-4`})})}),(0,Q.jsx)(Ae,{side:fe()?`bottom`:void 0,children:`Configuration`})]}),(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:()=>l(!0),children:(0,Q.jsx)(C,{className:`w-4 h-4`})})}),(0,Q.jsx)(Ae,{side:fe()?`bottom`:void 0,children:`Tools`})]}),(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:()=>s(!0),children:(0,Q.jsx)(gt,{className:`w-4 h-4`})})}),(0,Q.jsx)(Ae,{side:fe()?`bottom`:void 0,children:`Settings`})]})]}),e[54]=u,e[55]=c,e[56]=s,e[57]=l,e[58]=ne):ne=e[58];let re;e[59]!==u||e[60]!==c||e[61]!==s||e[62]!==l?(re=!u&&(0,Q.jsxs)(z,{children:[(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(xe,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,children:(0,Q.jsx)(Ft,{className:`w-4 h-4`})})})}),(0,Q.jsx)(Ae,{side:fe()?`bottom`:void 0,children:`More`})]}),(0,Q.jsxs)(_e,{align:`end`,className:`w-48 min-w-48`,children:[(0,Q.jsxs)(Le,{onClick:()=>c(!0),children:[(0,Q.jsx)(kr,{className:`mr-2 h-4 w-4`}),`Configuration`]}),(0,Q.jsxs)(Le,{onClick:()=>l(!0),children:[(0,Q.jsx)(C,{className:`mr-2 h-4 w-4`}),`Tools`]}),(0,Q.jsx)(Pe,{}),(0,Q.jsxs)(Le,{onClick:()=>s(!0),children:[(0,Q.jsx)(gt,{className:`mr-2 h-4 w-4`}),`Settings`]})]})]}),e[59]=u,e[60]=c,e[61]=s,e[62]=l,e[63]=re):re=e[63];let ie;e[64]!==u||e[65]!==d?(ie=()=>d(!u),e[64]=u,e[65]=d,e[66]=ie):ie=e[66];let ae;e[67]===u?ae=e[68]:(ae=u?(0,Q.jsx)(It,{className:`w-4 h-4`}):(0,Q.jsx)(Rt,{className:`w-4 h-4`}),e[67]=u,e[68]=ae);let oe;e[69]!==ie||e[70]!==ae?(oe=(0,Q.jsx)(ge,{asChild:!0,children:(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:ie,children:ae})}),e[69]=ie,e[70]=ae,e[71]=oe):oe=e[71];let se=u?`Collapse Toolbar`:`Expand Toolbar`,ce;e[72]===se?ce=e[73]:(ce=(0,Q.jsx)(Ae,{side:fe()?`bottom`:void 0,children:se}),e[72]=se,e[73]=ce);let le;e[74]!==oe||e[75]!==ce?(le=(0,Q.jsxs)(pe,{children:[oe,ce]}),e[74]=oe,e[75]=ce,e[76]=le):le=e[76];let ue;e[77]!==te||e[78]!==ne||e[79]!==re||e[80]!==le?(ue=(0,Q.jsx)(Ie,{children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,style:ee,children:[te,ne,re,le]})}),e[77]=te,e[78]=ne,e[79]=re,e[80]=le,e[81]=ue):ue=e[81];let de;e[82]!==W||e[83]!==ue?(de=(0,Q.jsxs)(`header`,{className:`hidden md:flex items-center justify-between pl-3 ${a(`multiView`)?`pr-5`:`pr-3`} pt-2 h-11 shrink-0`,children:[W,ue]}),e[82]=W,e[83]=ue,e[84]=de):de=e[84];let me;return e[85]!==L||e[86]!==de?(me=(0,Q.jsxs)(Q.Fragment,{children:[h,L,R,de]}),e[85]=L,e[86]=de,e[87]=me):me=e[87],me}function Ts(e){return e.setExpandedToolbar}function Es(e){return e.expandedToolbar}function Ds(e){return e.setShowTools}function Os(e){return e.setShowConfiguration}function ks(e){return e.setShowSettings}function As(e){return e.connected}var js=400,Ms=typeof navigator<`u`&&navigator.platform?.toUpperCase().includes(`MAC`)===!0;function Ns(){for(let e of[`[data-slot="dialog-overlay"][data-state="open"]`,`[data-slot="dialog-content"][data-state="open"]`,`[role="dialog"][data-state="open"]`])if(document.querySelector(e))return!0;let e=document.querySelectorAll(`[role="dialog"]`);for(let t of e)if(t instanceof HTMLElement&&Ps(t))return!0;return!1}function Ps(e){if(!e.isConnected)return!1;let t=window.getComputedStyle(e);return t.display!==`none`&&t.visibility!==`hidden`&&parseFloat(t.opacity)>0&&e.getBoundingClientRect().width>0&&e.getBoundingClientRect().height>0}function Fs(){let e=document.activeElement;return e?!!(e.hasAttribute?.(`data-chat-input`)||e.closest?.(`[data-chat-input="true"]`)):!1}function Is(e){let t=(0,$.c)(5),n=(0,Z.useRef)(e),r;t[0]===e?r=t[1]:(r=()=>{n.current=e},t[0]=e,t[1]=r),(0,Z.useLayoutEffect)(r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i={lastEscTime:0,armed:!1},t[2]=i):i=t[2];let a=(0,Z.useRef)(i),o,s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=e=>{if(e.isComposing||e.repeat||e.key===`Escape`&&Ns())return;let{onCloseFocusedPanel:t,onFocusChatInput:r,onStopStreaming:i,onOpenSidebar:o,onOpenTerminal:s,onOpenFilesPanel:c,onNewWindow:l,onNewSession:u,onToggleViewMode:d,onToggleAutoFollow:f}=n.current;if(e.shiftKey&&e.key===`Escape`){e.preventDefault(),t();return}if(e.key===`Escape`&&!e.metaKey&&!e.ctrlKey){let t=Fs(),n=Date.now(),{lastEscTime:o,armed:s}=a.current,c=n-o;if(t&&s&&c<js){e.preventDefault(),a.current={lastEscTime:0,armed:!1},i();return}if(t){a.current={lastEscTime:n,armed:!0};return}e.preventDefault(),r();return}let p=e.target,m=p.tagName===`INPUT`||p.tagName===`TEXTAREA`||p.isContentEditable,h=e.metaKey||e.ctrlKey;if(!(m&&!h)){if(!be()||!Ms){if(h&&e.code===`Digit1`){e.preventDefault(),o();return}if(h&&e.code===`KeyT`){e.preventDefault(),s();return}}if(h&&e.code===`Digit2`){e.preventDefault(),c();return}if(h&&e.shiftKey&&e.code===`KeyN`){e.preventDefault(),l();return}if(h&&e.code===`KeyN`){e.preventDefault(),u();return}if(h&&e.code===`KeyO`){e.preventDefault(),d();return}if(h&&e.shiftKey&&e.code===`KeyF`){e.preventDefault(),f();return}}};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},s=[],t[3]=o,t[4]=s):(o=t[3],s=t[4]),(0,Z.useEffect)(o,s)}function Ls(e){let t=(0,$.c)(40),{sidebarRef:n,terminalPanelRef:r,filesPanelRef:i,chatInputRef:c,activeWorkspace:l,primaryPreconfigs:u,handleInterruptSession:d,serverId:f,createSession:p,setSidebarOpen:m,onToggleAutoFollow:h}=e,g;t[0]!==m||t[1]!==n?(g=()=>{m(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{n.current?.focusSessionPanel()})})},t[0]=m,t[1]=n,t[2]=g):g=t[2];let _=g,v;t[3]===r?v=t[4]:(v=()=>{if(o.capabilities.terminal&&o.openTerminal){let e=s.getState().activeWorkspace;o.openTerminal(e?.path);return}$t.getState().setShowTerminalPanel(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{r.current?.focus()})})},t[3]=r,t[4]=v);let y=v,b=(0,Z.useRef)(_),x;t[5]===_?x=t[6]:(x=()=>{b.current=_},t[5]=_,t[6]=x),(0,Z.useLayoutEffect)(x);let S=(0,Z.useRef)(y),C;t[7]===y?C=t[8]:(C=()=>{S.current=y},t[7]=y,t[8]=C),(0,Z.useLayoutEffect)(C);let w=zs,T;t[9]===i?T=t[10]:(T=()=>{if(o.capabilities.explorer&&o.showExplorer){o.showExplorer();return}requestAnimationFrame(()=>{i.current?.focus()})},t[9]=i,t[10]=T);let E=T,D=(0,Z.useRef)(E),O;t[11]===E?O=t[12]:(O=()=>{D.current=E},t[11]=E,t[12]=O),(0,Z.useLayoutEffect)(O);let k;t[13]===c?k=t[14]:(k=()=>{c.current?.focus()},t[13]=c,t[14]=k);let A=k,j;t[15]!==l||t[16]!==p||t[17]!==u?(j=()=>{l&&u[0]&&p(u[0].id)},t[15]=l,t[16]=p,t[17]=u,t[18]=j):j=t[18];let M=j,N=Rs,P=at(),F;t[19]!==P||t[20]!==f?(F=()=>{a(`multiView`)&&(P.state.location.pathname.includes(`/overview`)?P.navigate({to:`/server/$serverId/workspace`,params:{serverId:f}}):P.navigate({to:`/server/$serverId/overview`,params:{serverId:f}}))},t[19]=P,t[20]=f,t[21]=F):F=t[21];let I=F,L;t[22]===m?L=t[23]:(L=()=>{let e=document.activeElement;e?.closest(`[data-terminal-panel]`)?w():e?.closest(`[data-panel-id="files"]`)?$t.getState().setShowFilesPanel(!1):e?.closest(`[data-sidebar="sidebar"]`)&&m(!1)},t[22]=m,t[23]=L);let R=L,z;t[24]===d?z=t[25]:(z=()=>{d()},t[24]=d,t[25]=z);let B=z,V,H,U;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(V=()=>b.current(),H=()=>S.current(),U=()=>D.current(),t[26]=V,t[27]=H,t[28]=U):(V=t[26],H=t[27],U=t[28]);let W;t[29]===h?W=t[30]:(W=()=>h?.(),t[29]=h,t[30]=W);let ee;t[31]!==A||t[32]!==R||t[33]!==M||t[34]!==B||t[35]!==I||t[36]!==W?(ee={onOpenSidebar:V,onOpenTerminal:H,onOpenFilesPanel:U,onNewSession:M,onNewWindow:N,onToggleViewMode:I,onCloseFocusedPanel:R,onFocusChatInput:A,onStopStreaming:B,onToggleAutoFollow:W},t[31]=A,t[32]=R,t[33]=M,t[34]=B,t[35]=I,t[36]=W,t[37]=ee):ee=t[37],Is(ee);let te,ne;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(te=()=>{if(o.capabilities.accelerators)return o.onAccelerator?.(e=>{e===`open-sidebar`?b.current():e===`open-terminal`&&S.current()})},ne=[],t[38]=te,t[39]=ne):(te=t[38],ne=t[39]),(0,Z.useLayoutEffect)(te,ne)}function Rs(){o.capabilities.windowManagement&&o.createWindow?.()}function zs(){o.capabilities.terminal||$t.getState().setShowTerminalPanel(!1)}function Bs(e){let t=(0,$.c)(7),{setOpen:n}=tn(),r=s(Us),i=s(Hs),a;t[0]===i?a=t[1]:(a=i.filter(Vs),t[0]=i,t[1]=a);let o=a,c;return t[2]!==r||t[3]!==o||t[4]!==e||t[5]!==n?(c={...e,activeWorkspace:r,primaryPreconfigs:o,setSidebarOpen:n},t[2]=r,t[3]=o,t[4]=e,t[5]=n,t[6]=c):c=t[6],Ls(c),null}function Vs(e){return e.mode!==`subagent`}function Hs(e){return e.preconfigs}function Us(e){return e.activeWorkspace}var Ws={modified:`M`,added:`A`,untracked:`U`,deleted:`D`,renamed:`R`,copied:`C`,conflicted:`!`,ignored:`I`},Gs={modified:`text-yellow-500`,added:`text-green-500`,untracked:`text-green-500/70`,deleted:`text-red-500`,renamed:`text-blue-500`,copied:`text-blue-500`,conflicted:`text-red-600 font-semibold`,ignored:`text-muted-foreground/50`};function Ks(e){let t=(0,$.c)(9),{git:n}=e,r=Ws[n.status],i=Gs[n.status],a;t[0]===i?a=t[1]:(a=Rn(`ml-auto shrink-0 text-[10px] leading-none tabular-nums`,i),t[0]=i,t[1]=a);let o;t[2]!==n.additions||t[3]!==n.deletions?(o=n.additions!==void 0&&n.deletions!==void 0&&(0,Q.jsxs)(`span`,{className:`ml-1 opacity-70`,children:[`+`,n.additions,` -`,n.deletions]}),t[2]=n.additions,t[3]=n.deletions,t[4]=o):o=t[4];let s;return t[5]!==r||t[6]!==a||t[7]!==o?(s=(0,Q.jsxs)(`span`,{className:a,children:[r,o]}),t[5]=r,t[6]=a,t[7]=o,t[8]=s):s=t[8],s}var qs={".ts":{icon:_t,color:`text-blue-500`},".tsx":{icon:_t,color:`text-blue-500`},".js":{icon:_t,color:`text-yellow-500`},".jsx":{icon:_t,color:`text-yellow-500`},".json":{icon:_t,color:`text-yellow-600`},".md":{icon:_t,color:`text-gray-500`},".css":{icon:_t,color:`text-purple-500`},".html":{icon:_t,color:`text-orange-500`}};function Js(e){let t=(0,$.c)(65),{entry:n,workspaceId:r,parentPath:i,depth:a,onFileSelect:o,showHidden:s,sdkClient:c}=e,l=s===void 0?!0:s,[u,d]=(0,Z.useState)(!1),f=i?`${i}/${n.path}`:n.path,p=n.type===`directory`,m;t[0]===l?m=t[1]:(m={showHidden:l},t[0]=l,t[1]=m);let{data:h,isLoading:g,isFetched:_}=ve(c??null,r,f,m,p&&u),v;t[2]===h?.files?v=t[3]:(v=h?.files??[],t[2]=h?.files,t[3]=v);let y=v,b;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>{document.activeElement?.focus(),d(e)},t[4]=b):b=t[4];let S=b,C;t[5]!==n||t[6]!==f||t[7]!==p||t[8]!==o?(C=e=>{e.currentTarget.focus(),!p&&o&&o({...n,path:f})},t[5]=n,t[6]=f,t[7]=p,t[8]=o,t[9]=C):C=t[9];let w=C,T;t[10]===w?T=t[11]:(T=e=>{e.key===`Enter`&&(e.preventDefault(),w(e))},t[10]=w,t[11]=T);let E=T,D=n.extension?qs[n.extension]:null,O=p?u?Kt:k:D?.icon||_t,A=p?`text-amber-500`:D?.color||`text-muted-foreground`;if(!p){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=Rn(`flex items-center gap-2 w-full min-w-0 overflow-hidden rounded-md p-2 text-left text-sm`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,`focus:ring-1 focus:ring-inset ring-sidebar-ring outline-hidden`,`[&_svg]:size-4 [&_svg]:shrink-0`),t[12]=e):e=t[12];let r=`${a*12+8}px`,i;t[13]===r?i=t[14]:(i={paddingLeft:r},t[13]=r,t[14]=i);let o;t[15]!==O||t[16]!==A?(o=(0,Q.jsx)(O,{className:A}),t[15]=O,t[16]=A,t[17]=o):o=t[17];let s;t[18]===n.name?s=t[19]:(s=(0,Q.jsx)(`div`,{className:`flex-1 min-w-0 truncate`,children:n.name}),t[18]=n.name,t[19]=s);let c;t[20]===n.git?c=t[21]:(c=n.git&&(0,Q.jsx)(Ks,{git:n.git}),t[20]=n.git,t[21]=c);let l;return t[22]!==w||t[23]!==E||t[24]!==o||t[25]!==s||t[26]!==c||t[27]!==i?(l=(0,Q.jsxs)(`button`,{"data-file-node":!0,"data-file-type":`file`,onClick:w,onKeyDown:E,className:e,style:i,children:[o,s,c]}),t[22]=w,t[23]=E,t[24]=o,t[25]=s,t[26]=c,t[27]=i,t[28]=l):l=t[28],l}let j=u||void 0,M;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(M=Rn(`flex items-center gap-2 w-full min-w-0 overflow-hidden rounded-md p-2 text-left text-sm`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,`focus:ring-1 focus:ring-inset ring-sidebar-ring outline-hidden`,`[&_svg]:size-4 [&_svg]:shrink-0`),t[29]=M):M=t[29];let N=`${a*12+8}px`,P;t[30]===N?P=t[31]:(P={paddingLeft:N},t[30]=N,t[31]=P);let F;t[32]!==_||t[33]!==g||t[34]!==u?(F=u&&g&&!_?(0,Q.jsx)(x,{className:`w-3 h-3 animate-spin shrink-0`}):(0,Q.jsx)(le,{className:Rn(`w-3 h-3 shrink-0 transition-transform`,u&&`rotate-90`)}),t[32]=_,t[33]=g,t[34]=u,t[35]=F):F=t[35];let I;t[36]!==O||t[37]!==A?(I=(0,Q.jsx)(O,{className:A}),t[36]=O,t[37]=A,t[38]=I):I=t[38];let L;t[39]===n.name?L=t[40]:(L=(0,Q.jsx)(`div`,{className:`flex-1 min-w-0 truncate`,children:n.name}),t[39]=n.name,t[40]=L);let R;t[41]===n.git?R=t[42]:(R=n.git&&(0,Q.jsx)(Ks,{git:n.git}),t[41]=n.git,t[42]=R);let z;t[43]!==P||t[44]!==F||t[45]!==I||t[46]!==L||t[47]!==R||t[48]!==j?(z=(0,Q.jsx)(ue,{asChild:!0,children:(0,Q.jsxs)(`button`,{"data-file-node":!0,"data-file-type":`directory`,"data-file-is-open":j,className:M,style:P,children:[F,I,L,R]})}),t[43]=P,t[44]=F,t[45]=I,t[46]=L,t[47]=R,t[48]=j,t[49]=z):z=t[49];let B;t[50]!==y||t[51]!==a||t[52]!==f||t[53]!==u||t[54]!==o||t[55]!==c||t[56]!==l||t[57]!==r?(B=u&&y.map(e=>(0,Q.jsx)(Js,{entry:e,workspaceId:r,parentPath:f,depth:a+1,onFileSelect:o,showHidden:l,sdkClient:c},`${f}/${e.path}`)),t[50]=y,t[51]=a,t[52]=f,t[53]=u,t[54]=o,t[55]=c,t[56]=l,t[57]=r,t[58]=B):B=t[58];let V;t[59]===B?V=t[60]:(V=(0,Q.jsx)(se,{children:B}),t[59]=B,t[60]=V);let H;return t[61]!==u||t[62]!==z||t[63]!==V?(H=(0,Q.jsxs)(ce,{open:u,onOpenChange:S,children:[z,V]}),t[61]=u,t[62]=z,t[63]=V,t[64]=H):H=t[64],H}var Ys=(0,Z.forwardRef)((e,t)=>{let n=(0,$.c)(42),{workspaceId:r,sdkClient:i,onFileSelect:a,showHidden:o,width:s}=e,c=o===void 0?!0:o,l=(0,Z.useRef)(null),u;n[0]===c?u=n[1]:(u={showHidden:c},n[0]=c,n[1]=u);let{data:d,isLoading:f,error:p,refetch:m}=ve(i,r,void 0,u),h;n[2]===d?.files?h=n[3]:(h=d?.files??[],n[2]=d?.files,n[3]=h);let g=h,_=d?.currentPath??``,v,y;n[4]===m?(v=n[5],y=n[6]):(v=()=>({refresh:()=>{m()},focus:()=>{let e=l.current;if(!e)return;let t=e.querySelector(`[data-file-node]`);t?t.focus():e.focus()}}),y=[m],n[4]=m,n[5]=v,n[6]=y),(0,Z.useImperativeHandle)(t,v,y);let b;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>{let t=l.current;if(!t)return;let n=Array.from(t.querySelectorAll(`[data-file-node]`));if(n.length===0)return;let r=n.indexOf(document.activeElement);bb38:switch(e.key){case`ArrowDown`:e.preventDefault(),n[r<n.length-1?r+1:0]?.focus();break bb38;case`ArrowUp`:e.preventDefault(),n[r>0?r-1:n.length-1]?.focus();break bb38;case`ArrowRight`:{e.preventDefault();let t=document.activeElement;if(!t)break bb38;if(t.getAttribute(`data-file-type`)===`directory`)if(t.getAttribute(`data-file-is-open`)!==`true`)t.click();else{let e=r<n.length-1?r+1:-1;e>=0&&n[e]?.focus()}else{let e=r<n.length-1?r+1:-1;e>=0&&n[e]?.focus()}break bb38}case`ArrowLeft`:{e.preventDefault();let t=document.activeElement;if(!t)break bb38;if(t.getAttribute(`data-file-type`)===`directory`)if(t.getAttribute(`data-file-is-open`)===`true`)t.click();else{let e=r>0?r-1:-1;e>=0&&n[e]?.focus()}else{let e=r>0?r-1:-1;e>=0&&n[e]?.focus()}break bb38}case`Enter`:document.activeElement instanceof HTMLButtonElement&&document.activeElement.click();break bb38;case`Escape`:e.preventDefault(),document.activeElement?.blur()}},n[7]=b):b=n[7];let S=b;if(f){let e;return n[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`div`,{className:`flex items-center justify-center h-32 text-muted-foreground`,children:[(0,Q.jsx)(x,{className:`w-4 h-4 animate-spin mr-2`}),`Loading files...`]}),n[8]=e):e=n[8],e}if(p){let e;n[9]===m?e=n[10]:(e=()=>m(),n[9]=m,n[10]=e);let t;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(Un,{className:`w-3 h-3`}),n[11]=t):t=n[11];let r;n[12]===e?r=n[13]:(r=(0,Q.jsx)(X,{variant:`ghost`,size:`sm`,onClick:e,className:`ml-2`,children:t}),n[12]=e,n[13]=r);let i;return n[14]!==p.message||n[15]!==r?(i=(0,Q.jsxs)(`div`,{className:`p-4 text-sm text-destructive`,children:[p.message,r]}),n[14]=p.message,n[15]=r,n[16]=i):i=n[16],i}if(g.length===0){let e;n[17]===m?e=n[18]:(e=()=>m(),n[17]=m,n[18]=e);let t;n[19]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(Un,{className:`w-3 h-3`}),n[19]=t):t=n[19];let r;return n[20]===e?r=n[21]:(r=(0,Q.jsxs)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:[`Empty workspace`,(0,Q.jsx)(X,{variant:`ghost`,size:`sm`,onClick:e,className:`ml-2`,children:t})]}),n[20]=e,n[21]=r),r}let C;n[22]===s?C=n[23]:(C=s?{width:`${s-8}px`}:void 0,n[22]=s,n[23]=C);let w;if(n[24]!==_||n[25]!==g||n[26]!==a||n[27]!==i||n[28]!==c||n[29]!==r){let e;n[31]!==_||n[32]!==a||n[33]!==i||n[34]!==c||n[35]!==r?(e=e=>(0,Q.jsx)(Js,{entry:e,workspaceId:r,parentPath:_,depth:0,onFileSelect:a,showHidden:c,sdkClient:i},e.path),n[31]=_,n[32]=a,n[33]=i,n[34]=c,n[35]=r,n[36]=e):e=n[36],w=g.map(e),n[24]=_,n[25]=g,n[26]=a,n[27]=i,n[28]=c,n[29]=r,n[30]=w}else w=n[30];let T;n[37]===w?T=n[38]:(T=(0,Q.jsx)(`div`,{className:`space-y-0.5 min-w-0`,children:w}),n[37]=w,n[38]=T);let E;return n[39]!==C||n[40]!==T?(E=(0,Q.jsx)(`div`,{ref:l,tabIndex:-1,onKeyDown:S,className:`flex-1 min-h-0 min-w-0 w-full outline-none`,children:(0,Q.jsx)(Xt,{className:`h-full`,children:(0,Q.jsx)(`div`,{className:`px-2 pb-2 w-full min-w-0`,style:C,children:T})})}),n[39]=C,n[40]=T,n[41]=E):E=n[41],E});Ys.displayName=`FileTree`;var Xs=ft.oneDark,Zs=ft.oneLight;function Qs(e){let t=(0,$.c)(13),{content:n,language:r,showLineNumbers:i}=e,a=i===void 0?!0:i,{resolvedMode:o}=c(),s=o===`dark`,l=s?Xs:Zs,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=Rn(`h-full overflow-auto chat-transcript-scrollbar`),t[0]=u):u=t[0];let d=l.plain.backgroundColor||(s?`#282c34`:`#fafafa`),f;t[1]===d?f=t[2]:(f={WebkitOverflowScrolling:`touch`,backgroundColor:d},t[1]=d,t[2]=f);let p=r||`plaintext`,m;t[3]===a?m=t[4]:(m=e=>{let{style:t,tokens:n,getLineProps:r,getTokenProps:i}=e;return(0,Q.jsx)(`pre`,{className:`text-sm p-4 min-h-full font-mono`,style:t,children:n.map((e,t)=>(0,Q.jsxs)(`div`,{...r({line:e}),className:`table-row`,children:[a&&(0,Q.jsx)(`span`,{className:`table-cell pr-4 text-right select-none opacity-50 text-xs w-12`,children:t+1}),(0,Q.jsx)(`span`,{className:`table-cell`,children:e.map((e,t)=>(0,Q.jsx)(`span`,{...i({token:e})},t))})]},t))})},t[3]=a,t[4]=m);let h;t[5]!==l||t[6]!==n||t[7]!==p||t[8]!==m?(h=(0,Q.jsx)(yt,{theme:l,code:n,language:p,children:m}),t[5]=l,t[6]=n,t[7]=p,t[8]=m,t[9]=h):h=t[9];let g;return t[10]!==f||t[11]!==h?(g=(0,Q.jsx)(`div`,{className:u,style:f,children:h}),t[10]=f,t[11]=h,t[12]=g):g=t[12],g}function $s(e){let t=(0,$.c)(13),{icon:n,title:r,reason:i,name:a}=e,o;t[0]===n?o=t[1]:(o=(0,Q.jsx)(n,{className:`size-10 text-muted-foreground mb-4`}),t[0]=n,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,Q.jsx)(`p`,{className:`text-sm font-medium mb-1`,children:r}),t[2]=r,t[3]=s);let c;t[4]===i?c=t[5]:(c=(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground mb-2`,children:i}),t[4]=i,t[5]=c);let l;t[6]===a?l=t[7]:(l=(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a}),t[6]=a,t[7]=l);let u;return t[8]!==o||t[9]!==s||t[10]!==c||t[11]!==l?(u=(0,Q.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full text-center p-8`,children:[o,s,c,l]}),t[8]=o,t[9]=s,t[10]=c,t[11]=l,t[12]=u):u=t[12],u}function ec(e){let t=(0,$.c)(20),{preview:n}=e;if(n.kind===`markdown`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e={WebkitOverflowScrolling:`touch`},t[0]=e):e=t[0];let r;return t[1]===n.content?r=t[2]:(r=(0,Q.jsx)(`div`,{className:`h-full overflow-auto p-6 chat-transcript-scrollbar`,style:e,children:(0,Q.jsx)(wt,{children:n.content})}),t[1]=n.content,t[2]=r),r}if(n.kind===`code`){let e;return t[3]!==n.content||t[4]!==n.language||t[5]!==n.path?(e=(0,Q.jsx)(Qs,{content:n.content,path:n.path,language:n.language,showLineNumbers:!0}),t[3]=n.content,t[4]=n.language,t[5]=n.path,t[6]=e):e=t[6],e}if(n.kind===`text`){let e;return t[7]!==n.content||t[8]!==n.language||t[9]!==n.path?(e=(0,Q.jsx)(Qs,{content:n.content,path:n.path,language:n.language,showLineNumbers:!1}),t[7]=n.content,t[8]=n.language,t[9]=n.path,t[10]=e):e=t[10],e}if(n.kind===`binary`){let e;return t[11]!==n.name||t[12]!==n.reason?(e=(0,Q.jsx)($s,{icon:hr,title:`Binary file`,reason:n.reason,name:n.name}),t[11]=n.name,t[12]=n.reason,t[13]=e):e=t[13],e}if(n.kind===`unsupported`){let e;return t[14]!==n.name||t[15]!==n.reason?(e=(0,Q.jsx)($s,{icon:mr,title:`Unsupported file`,reason:n.reason,name:n.name}),t[14]=n.name,t[15]=n.reason,t[16]=e):e=t[16],e}if(n.kind===`too_large`){let e;return t[17]!==n.name||t[18]!==n.reason?(e=(0,Q.jsx)($s,{icon:pr,title:`File too large`,reason:n.reason,name:n.name}),t[17]=n.name,t[18]=n.reason,t[19]=e):e=t[19],e}return null}var tc=(0,Z.forwardRef)((e,t)=>{let n=(0,$.c)(44),{sdkClient:r}=e,i=je(),a=(0,Z.useRef)(null),c=$t(nc),l=$t(rc),u=$t(ic),d=s(ac),f=d?.id,p=oc,m;n[0]===u?m=n[1]:(m=()=>{u(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{a.current?.focus()})})},n[0]=u,n[1]=m);let h=m,g,_;n[2]===h?(g=n[3],_=n[4]):(g=()=>({focus:h}),_=[h],n[2]=h,n[3]=g,n[4]=_),(0,Z.useImperativeHandle)(t,g,_);let v=Ue(sc),y;n[5]!==d?.path||n[6]!==v||n[7]!==f?(y=e=>{if(e.type===`file`&&f)if(o.capabilities.fileOpen&&o.openFile){let t=d?.path??``,n=t?`${t}/${e.path}`:e.path;o.openFile(n)}else v({workspaceId:f,path:e.path,name:e.name})},n[5]=d?.path,n[6]=v,n[7]=f,n[8]=y):y=n[8],d?.path;let b=y;if(!f)return null;if(i){let e;n[9]===u?e=n[10]:(e=e=>!e&&u(!1),n[9]=u,n[10]=e);let t;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(zt,{className:`sr-only`,children:(0,Q.jsx)(Nt,{children:`Files`})}),n[11]=t):t=n[11];let i;n[12]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(`span`,{className:`font-semibold text-sm text-sidebar-foreground`,children:`Files`}),n[12]=i):i=n[12];let o;n[13]===u?o=n[14]:(o=()=>u(!1),n[13]=u,n[14]=o);let s;n[15]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(Hn,{className:`size-4`}),n[15]=s):s=n[15];let c;n[16]===o?c=n[17]:(c=(0,Q.jsxs)(`div`,{className:`flex items-center justify-between p-3 border-b border-border`,children:[i,(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:o,children:s})]}),n[16]=o,n[17]=c);let d;n[18]!==b||n[19]!==r||n[20]!==f?(d=(0,Q.jsx)(`div`,{className:`flex flex-1 flex-col min-h-0 overflow-hidden`,children:(0,Q.jsx)(Ys,{ref:a,workspaceId:f,sdkClient:r,showHidden:!0,onFileSelect:b},f)}),n[18]=b,n[19]=r,n[20]=f,n[21]=d):d=n[21];let p;n[22]!==c||n[23]!==d?(p=(0,Q.jsxs)(en,{side:`right`,className:`w-72 p-0 bg-sidebar [&>button]:hidden`,children:[t,c,d]}),n[22]=c,n[23]=d,n[24]=p):p=n[24];let m;return n[25]!==l||n[26]!==p||n[27]!==e?(m=(0,Q.jsx)(Vt,{open:l,onOpenChange:e,children:p}),n[25]=l,n[26]=p,n[27]=e,n[28]=m):m=n[28],m}let x=`${c}px`,S;n[29]===x?S=n[30]:(S={"--sidebar-width":x},n[29]=x,n[30]=S);let C=S,w;n[31]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Q.jsx)(Gt,{side:`right`,panelId:`files`}),n[31]=w):w=n[31];let T;n[32]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,Q.jsx)(Ht,{children:(0,Q.jsx)(Ut,{children:(0,Q.jsx)(Wt,{children:(0,Q.jsxs)(Jt,{className:`w-full justify-between`,onClick:p,children:[(0,Q.jsx)(`span`,{className:`text-sm font-semibold`,children:`Files`}),(0,Q.jsx)(Un,{className:`size-4`})]})})})}),n[32]=T):T=n[32];let E;n[33]!==c||n[34]!==b||n[35]!==r||n[36]!==f?(E=(0,Q.jsx)(Zt,{className:`overflow-hidden`,children:(0,Q.jsx)(Ys,{ref:a,workspaceId:f,sdkClient:r,showHidden:!0,width:c,onFileSelect:b},f)}),n[33]=c,n[34]=b,n[35]=r,n[36]=f,n[37]=E):E=n[37];let D;n[38]!==l||n[39]!==E?(D=(0,Q.jsxs)(Yt,{side:`right`,isOpen:l,variant:`floating`,children:[w,T,E]}),n[38]=l,n[39]=E,n[40]=D):D=n[40];let O;return n[41]!==D||n[42]!==C?(O=(0,Q.jsx)(Bt,{panelId:`files`,defaultOpen:!0,className:`w-0 shrink-0`,style:C,children:D}),n[41]=D,n[42]=C,n[43]=O):O=n[43],O});tc.displayName=`FilesPanel`;function nc(e){return e.filesPanelWidth}function rc(e){return e.showFilesPanel}function ic(e){return e.setShowFilesPanel}function ac(e){return e.activeWorkspace}function oc(){Je.invalidateQueries({queryKey:[`files`]})}function sc(e){return e.openFilePreview}function cc(e){let t=(0,$.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,orientation:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`horizontal`:i,o;t[4]===n?o=t[5]:(o=Rn(`group/tabs flex gap-2 data-horizontal:flex-col`,n),t[4]=n,t[5]=o);let s;return t[6]!==a||t[7]!==r||t[8]!==o?(s=(0,Q.jsx)(Ba,{"data-slot":`tabs`,"data-orientation":a,className:o,...r}),t[6]=a,t[7]=r,t[8]=o,t[9]=s):s=t[9],s}var lc=Nn(`group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none`,{variants:{variant:{default:`bg-muted`,line:`gap-1 bg-transparent`}},defaultVariants:{variant:`default`}});function uc(e){let t=(0,$.c)(11),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,variant:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`default`:i,o;t[4]!==n||t[5]!==a?(o=Rn(lc({variant:a}),n),t[4]=n,t[5]=a,t[6]=o):o=t[6];let s;return t[7]!==r||t[8]!==o||t[9]!==a?(s=(0,Q.jsx)(Va,{"data-slot":`tabs-list`,"data-variant":a,className:o,...r}),t[7]=r,t[8]=o,t[9]=a,t[10]=s):s=t[10],s}function dc(e){let t=(0,$.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=Rn(`relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent`,`data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground`,`after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Q.jsx)(Ha,{"data-slot":`tabs-trigger`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function fc(e){let t=(0,$.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=Rn(`flex-1 text-sm outline-none`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Q.jsx)(Ua,{"data-slot":`tabs-content`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function pc(e){let t=(0,$.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Q.jsx)(pa,{"data-slot":`select`,...n}),t[2]=n,t[3]=r),r}function mc(e){let t=(0,$.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Q.jsx)(ha,{"data-slot":`select-value`,...n}),t[2]=n,t[3]=r),r}function hc(e){let t=(0,$.c)(13),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,size:a,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o=a===void 0?`default`:a,s;t[5]===r?s=t[6]:(s=Rn(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,r),t[5]=r,t[6]=s);let c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(ga,{asChild:!0,children:(0,Q.jsx)(lt,{className:`pointer-events-none size-4 text-muted-foreground`})}),t[7]=c):c=t[7];let l;return t[8]!==n||t[9]!==i||t[10]!==o||t[11]!==s?(l=(0,Q.jsxs)(ma,{"data-slot":`select-trigger`,"data-size":o,className:s,...i,children:[n,c]}),t[8]=n,t[9]=i,t[10]=o,t[11]=s,t[12]=l):l=t[12],l}function gc(e){let t=(0,$.c)(24),n,r,i,a,o;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5]):({className:r,children:n,position:a,align:o,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o);let s=a===void 0?`item-aligned`:a,c=o===void 0?`center`:o,l=s===`item-aligned`,u=s===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,d;t[6]!==r||t[7]!==u?(d=Rn(`relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,u,r),t[6]=r,t[7]=u,t[8]=d):d=t[8];let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(vc,{}),t[9]=f):f=t[9];let p=s===`popper`&&``,m;t[10]===p?m=t[11]:(m=Rn(`data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`,p),t[10]=p,t[11]=m);let h;t[12]!==n||t[13]!==s||t[14]!==m?(h=(0,Q.jsx)(ya,{"data-position":s,className:m,children:n}),t[12]=n,t[13]=s,t[14]=m,t[15]=h):h=t[15];let g;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(yc,{}),t[16]=g):g=t[16];let _;return t[17]!==c||t[18]!==s||t[19]!==i||t[20]!==l||t[21]!==d||t[22]!==h?(_=(0,Q.jsx)(_a,{children:(0,Q.jsxs)(va,{"data-slot":`select-content`,"data-align-trigger":l,className:d,position:s,align:c,...i,children:[f,h,g]})}),t[17]=c,t[18]=s,t[19]=i,t[20]=l,t[21]=d,t[22]=h,t[23]=_):_=t[23],_}function _c(e){let t=(0,$.c)(13),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===r?a=t[5]:(a=Rn(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,r),t[4]=r,t[5]=a);let o;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,Q.jsx)(Sa,{children:(0,Q.jsx)(G,{className:`pointer-events-none`})})}),t[6]=o):o=t[6];let s;t[7]===n?s=t[8]:(s=(0,Q.jsx)(xa,{children:n}),t[7]=n,t[8]=s);let c;return t[9]!==i||t[10]!==a||t[11]!==s?(c=(0,Q.jsxs)(ba,{"data-slot":`select-item`,className:a,...i,children:[o,s]}),t[9]=i,t[10]=a,t[11]=s,t[12]=c):c=t[12],c}function vc(e){let t=(0,$.c)(9),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=Rn(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,n),t[3]=n,t[4]=i);let a;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(lr,{}),t[5]=a):a=t[5];let o;return t[6]!==r||t[7]!==i?(o=(0,Q.jsx)(Ca,{"data-slot":`select-scroll-up-button`,className:i,...r,children:a}),t[6]=r,t[7]=i,t[8]=o):o=t[8],o}function yc(e){let t=(0,$.c)(9),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=Rn(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,n),t[3]=n,t[4]=i);let a;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(lt,{}),t[5]=a):a=t[5];let o;return t[6]!==r||t[7]!==i?(o=(0,Q.jsx)(wa,{"data-slot":`select-scroll-down-button`,className:i,...r,children:a}),t[6]=r,t[7]=i,t[8]=o):o=t[8],o}function bc(e){let t=(0,$.c)(7),{token:n,onLogout:r}=e,i;t[0]===n?i=t[1]:(i=n?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`Token:`}),(0,Q.jsx)(`code`,{className:`font-mono text-foreground bg-background px-1.5 py-0.5 rounded text-[10px]`,children:Qe(n)})]}):(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-xs`,children:(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`Auth disabled`})}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,Q.jsx)(X,{variant:`destructive`,size:`sm`,onClick:r,title:`Disconnect and clear token`,children:`Logout`}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 p-2 rounded-md bg-muted`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function xc(e){let t=(0,$.c)(12),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,value:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===n?a=t[5]:(a=Rn(`relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted`,n),t[4]=n,t[5]=a);let o=`translateX(-${100-(i||0)}%)`,s;t[6]===o?s=t[7]:(s=(0,Q.jsx)(Qr,{"data-slot":`progress-indicator`,className:`size-full flex-1 bg-primary transition-all`,style:{transform:o}}),t[6]=o,t[7]=s);let c;return t[8]!==r||t[9]!==a||t[10]!==s?(c=(0,Q.jsx)(Zr,{"data-slot":`progress`,className:a,...r,children:s}),t[8]=r,t[9]=a,t[10]=s,t[11]=c):c=t[11],c}var Sc=`1.0.12`;function Cc(e){let t=e.trim().match(/^v?(\d+)\.(\d+)\.(\d+)$/);return t?[parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3],10)]:null}function wc(e,t){let n=Cc(e),r=Cc(t);if(!n&&!r)return 0;if(!n)return-1;if(!r)return 1;for(let e=0;e<3;e++)if(n[e]!==r[e])return n[e]-r[e];return 0}function Tc(e,t){return t?wc(e,t)>=0?`up-to-date`:`update-available`:`unknown`}var Ec=`jean2ai/jean2`,Dc=300*1e3,Oc=1e4,kc=new Map;function Ac(e){let t=kc.get(e);return t?Date.now()-t.timestamp>Dc?(kc.delete(e),null):t.value:null}function jc(e,t){kc.set(e,{value:t,timestamp:Date.now()})}function Mc(){kc.clear()}async function Nc(e,t){let n=new AbortController,r=setTimeout(()=>n.abort(),t);try{return await fetch(e,{signal:n.signal})}finally{clearTimeout(r)}}async function Pc(){let e=Ac(`latest-server`);if(e)return e;try{let e=await Nc(`https://raw.githubusercontent.com/${Ec}/refs/heads/main/packages/server/VERSION`,Oc);if(!e.ok)return null;let t=(await e.text()).trim();return/^\d+\.\d+\.\d+$/.test(t)?(jc(`latest-server`,t),t):null}catch{return null}}async function Fc(){let e=Ac(`latest-client`);if(e)return e;try{let e=await Nc(`https://api.github.com/repos/${Ec}/releases?per_page=20`,Oc);if(!e.ok)return null;let t=(await e.json()).find(e=>e.tag_name.startsWith(`client/`)&&!e.prerelease);if(!t)return null;let n=t.tag_name.replace(/^client\/v?/,``);return/^\d+\.\d+\.\d+$/.test(n)?(jc(`latest-client`,n),n):null}catch{return null}}var Ic=o.id===`electron`;function Lc(e){if(!e)return``;let t=Math.floor((Date.now()-e)/1e3);if(t<10)return`just now`;if(t<60)return`${t}s ago`;let n=Math.floor(t/60);return n<60?`${n}m ago`:`${Math.floor(n/60)}h ago`}function Rc(e){let t=(0,$.c)(3),{status:n}=e;if(n===`up-to-date`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`span`,{className:`text-xs text-green-500 flex items-center gap-1`,children:[(0,Q.jsx)(`span`,{className:`inline-block size-1.5 rounded-full bg-green-500`}),`Up to date`]}),t[0]=e):e=t[0],e}if(n===`update-available`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full bg-amber-500/10 text-amber-600 dark:text-amber-400`,children:`Update available`}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Unknown`}),t[2]=r):r=t[2],r}function zc(e){let t=(0,$.c)(20),{state:n}=e;switch(n.status){case`idle`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),(0,Q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Unknown`})]}),t[0]=e):e=t[0],e}case`checking`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),(0,Q.jsx)(Un,{className:`size-3.5 animate-spin text-muted-foreground`})]}),t[1]=e):e=t[1],e}case`available`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),(0,Q.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full bg-amber-500/10 text-amber-600 dark:text-amber-400`,children:`Update available`})]}),t[2]=e):e=t[2],e}case`not-available`:{let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),t[3]=e):e=t[3];let n;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e,(0,Q.jsxs)(`span`,{className:`text-xs text-green-500 flex items-center gap-1`,children:[(0,Q.jsx)(`span`,{className:`inline-block size-1.5 rounded-full bg-green-500`}),`Up to date`]})]}),t[4]=n):n=t[4],n}case`downloading`:{let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),t[5]=e):e=t[5];let r;t[6]===n.percent?r=t[7]:(r=Math.round(n.percent),t[6]=n.percent,t[7]=r);let i;t[8]===r?i=t[9]:(i=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e,(0,Q.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Downloading... `,r,`%`]})]}),t[8]=r,t[9]=i);let a;t[10]===n.percent?a=t[11]:(a=(0,Q.jsx)(xc,{value:n.percent,className:`w-full h-1`}),t[10]=n.percent,t[11]=a);let o;return t[12]!==i||t[13]!==a?(o=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 items-end min-w-40`,children:[i,a]}),t[12]=i,t[13]=a,t[14]=o):o=t[14],o}case`downloaded`:{let e;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),t[15]=e):e=t[15];let n;return t[16]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e,(0,Q.jsxs)(`span`,{className:`text-xs text-green-500 flex items-center gap-1`,children:[(0,Q.jsx)(`span`,{className:`inline-block size-1.5 rounded-full bg-green-500`}),`Update ready — restart to install`]})]}),t[16]=n):n=t[16],n}case`error`:{let e;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),t[17]=e):e=t[17];let r;return t[18]===n.message?r=t[19]:(r=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e,(0,Q.jsx)(`span`,{className:`text-xs text-red-500`,children:n.message})]}),t[18]=n.message,t[19]=r),r}}}function Bc({sdkClient:e,enabled:t}){let n=(0,Z.useRef)(0),[r,i]=(0,Z.useState)({serverVersion:null,latestServer:null,latestClient:null,loading:!0,lastChecked:null,fetchError:null}),[a,s]=(0,Z.useState)({status:`idle`}),c=(0,Z.useCallback)(async(t=!1)=>{t&&Mc();let r=++n.current;i(e=>({...e,loading:!0,fetchError:null}));try{let t=await Promise.allSettled([e?e.httpClient.get(`/info`).then(e=>e.version).catch(()=>null):Promise.resolve(null),Pc(),Ic?Promise.resolve(null):Fc()]);if(n.current!==r)return;i({serverVersion:t[0].status===`fulfilled`?t[0].value:null,latestServer:t[1].status===`fulfilled`?t[1].value:null,latestClient:t[2].status===`fulfilled`?t[2].value:null,loading:!1,lastChecked:Date.now(),fetchError:null})}catch{if(n.current!==r)return;i(e=>({...e,loading:!1,fetchError:`Unable to check for updates`}))}},[e]);(0,Z.useEffect)(()=>{t&&c()},[c,t]),(0,Z.useEffect)(()=>{if(o.capabilities.updater)return o.onUpdaterEvent?.(e=>{let{type:t,data:n}=e;switch(t){case`checking`:s({status:`checking`});break;case`available`:s({status:`available`,version:n.version});break;case`not-available`:s({status:`not-available`,version:n.version});break;case`download-progress`:{let e=n;s({status:`downloading`,percent:e.percent,transferred:e.transferred,total:e.total});break}case`downloaded`:s({status:`downloaded`,version:n.version});break;case`error`:s({status:`error`,message:n.message});break}})},[]);let l=Tc(Sc,r.latestClient),u=e&&r.serverVersion?Tc(r.serverVersion,r.latestServer):`unknown`,d=()=>{o.capabilities.updater?(s({status:`checking`}),o.checkForUpdates?.()):c(!0)},f=a.status===`checking`||a.status===`downloading`;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm font-medium`,children:`Versions`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Check for updates to client and server`})]}),(0,Q.jsx)(ze,{}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium`,children:`Client`}),Ic?(0,Q.jsx)(zc,{state:a}):r.loading?(0,Q.jsx)(De,{className:`h-5 w-32`}):(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,Sc]}),(0,Q.jsx)(Rc,{status:l})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium`,children:`Server`}),r.loading?(0,Q.jsx)(De,{className:`h-5 w-32`}):r.serverVersion?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`v`,r.serverVersion]}),(0,Q.jsx)(Rc,{status:u})]}):(0,Q.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Not connected`})]}),!Ic&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium`,children:`Latest`}),r.loading?(0,Q.jsx)(De,{className:`h-5 w-48`}):(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[r.latestServer?`v${r.latestServer} (server)`:``,r.latestServer&&r.latestClient&&` · `,r.latestClient?`v${r.latestClient} (client)`:``,!r.latestServer&&!r.latestClient&&`Unknown`]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[r.lastChecked&&!r.loading&&!f&&(0,Q.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Last checked: `,Lc(r.lastChecked)]}),(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,onClick:d,disabled:r.loading||f,className:`ml-auto`,children:[(0,Q.jsx)(Un,{className:`size-3.5 ${r.loading||f?`animate-spin`:``}`}),`Check for Updates`]})]})]})}var Vc={neutral:{label:`Neutral`,colors:[`bg-zinc-400`,`bg-zinc-600`,`bg-zinc-800`]},ocean:{label:`Ocean`,colors:[`bg-sky-300`,`bg-sky-500`,`bg-slate-700`]},forest:{label:`Forest`,colors:[`bg-emerald-300`,`bg-emerald-500`,`bg-green-800`]},sunset:{label:`Sunset`,colors:[`bg-orange-300`,`bg-amber-500`,`bg-orange-800`]},amethyst:{label:`Amethyst`,colors:[`bg-violet-300`,`bg-violet-500`,`bg-purple-800`]}};function Hc(e){let t=(0,$.c)(15),{scheme:n,currentScheme:r,onClick:i}=e,a=n===r,o=Vc[n],s;t[0]!==i||t[1]!==n?(s=()=>i(n),t[0]=i,t[1]=n,t[2]=s):s=t[2];let c=`
|
|
7
|
+
flex flex-col items-center gap-1.5 p-2 rounded-lg border transition-all
|
|
8
|
+
${a?`border-primary bg-primary/5`:`border-border bg-transparent hover:bg-muted/50`}
|
|
9
|
+
`,l=o.label,u;t[3]===o.colors?u=t[4]:(u=o.colors.map(Uc),t[3]=o.colors,t[4]=u);let d;t[5]===u?d=t[6]:(d=(0,Q.jsx)(`div`,{className:`flex gap-0.5`,children:u}),t[5]=u,t[6]=d);let f;t[7]===n?f=t[8]:(f=(0,Q.jsx)(`span`,{className:`text-[10px] text-muted-foreground capitalize`,children:n}),t[7]=n,t[8]=f);let p;return t[9]!==o.label||t[10]!==s||t[11]!==c||t[12]!==d||t[13]!==f?(p=(0,Q.jsxs)(`button`,{type:`button`,onClick:s,className:c,title:l,children:[d,f]}),t[9]=o.label,t[10]=s,t[11]=c,t[12]=d,t[13]=f,t[14]=p):p=t[14],p}function Uc(e,t){return(0,Q.jsx)(`div`,{className:`w-4 h-4 rounded-full ${e}`},t)}var Wc=[{value:`account`,label:`Account`,icon:bt},{value:`appearance`,label:`Appearance`,icon:Tr},{value:`keybinds`,label:`Keybinds`,icon:yr}];function Gc(e){let t=(0,$.c)(148),{open:n,onOpenChange:r,apiToken:i,isConnected:a,onLogout:o,sdkClient:s}=e,{mode:l,scheme:u,setMode:d,setScheme:f}=c(),[p,m]=(0,Z.useState)(`account`),{chatFinishSoundEnabled:h,setChatFinishSoundEnabled:g,permissionSoundEnabled:_,setPermissionSoundEnabled:v}=Ue($a(Yc)),y=navigator.userAgentData?.platform===`macOS`||/mac|iphone|ipad|ipod/i.test(navigator.userAgent)?`⌘`:`Ctrl`,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B;if(t[0]!==i||t[1]!==h||t[2]!==a||t[3]!==l||t[4]!==o||t[5]!==r||t[6]!==n||t[7]!==_||t[8]!==u||t[9]!==s||t[10]!==p||t[11]!==g||t[12]!==d||t[13]!==v||t[14]!==f){let e=[{keys:[y,`1`],description:`Open session list`},{keys:[y,`2`],description:`Open files panel`},{keys:[y,`T`],description:`Open terminal`},{keys:[y,`O`],description:`Toggle overview mode`},{keys:[y,`N`],description:`New session`},{keys:[y,`Shift`,`N`],description:`New window`},{keys:[y,`Shift`,`F`],description:`Toggle follow/free mode`},{keys:[`Shift`,`Esc`],description:`Close focused panel`},{keys:[`Shift`,`Enter`],description:`New line in input`},{keys:[`Enter`],description:`Send message`},{keys:[`↑`,`↓`,`←`,`→`],description:`Navigate sessions`},{keys:[`Esc`],description:`Focus chat input`},{keys:[`Esc`,`Esc`],description:`Stop streaming (chat input focused)`}];C=Ln,j=n,M=r,S=Fn,O=`flex flex-col overflow-hidden p-3 sm:p-4 gap-3 sm:gap-4 max-w-[calc(100vw-0.5rem)] sm:max-w-[700px] h-[85dvh] sm:h-[85vh]`,t[36]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Q.jsxs)(Pn,{className:`shrink-0`,children:[(0,Q.jsx)(In,{children:`Settings`}),(0,Q.jsx)(An,{children:`Manage your preferences`})]}),t[36]=k):k=t[36];let c;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(c=e=>m(e),t[37]=c):c=t[37];let V;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,Q.jsx)(hc,{className:`sm:hidden w-full shrink-0`,size:`sm`,children:(0,Q.jsx)(mc,{})}),t[38]=V):V=t[38];let H;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,Q.jsx)(gc,{children:Wc.map(Jc)}),t[39]=H):H=t[39],t[40]===p?A=t[41]:(A=(0,Q.jsxs)(pc,{value:p,onValueChange:c,children:[V,H]}),t[40]=p,t[41]=A),x=cc,z=p,t[42]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>m(e),t[42]=B):B=t[42],T=`vertical`,E=`mt-2 flex-1 min-h-0`,t[43]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Q.jsx)(uc,{className:`hidden sm:flex flex-col h-fit w-40 shrink-0 items-stretch gap-0.5 bg-transparent p-1 rounded-lg`,children:Wc.map(qc)}),t[43]=D):D=t[43],I=`dialog-scrollbar flex-1 min-w-0 min-h-0 overflow-y-auto overscroll-contain rounded-lg border`;let U,W;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,Q.jsx)(Y,{className:`text-sm font-medium`,children:`Session`}),W=(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground mb-3`,children:`Manage your current session`}),t[44]=U,t[45]=W):(U=t[44],W=t[45]);let ee;t[46]!==i||t[47]!==a||t[48]!==o?(ee=(0,Q.jsxs)(`div`,{children:[U,W,a?(0,Q.jsx)(bc,{token:i,onLogout:o}):(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No active session`})]}),t[46]=i,t[47]=a,t[48]=o,t[49]=ee):ee=t[49];let te;t[50]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,Q.jsx)(ze,{}),t[50]=te):te=t[50];let ne;t[51]!==n||t[52]!==s?(ne=(0,Q.jsx)(Bc,{sdkClient:s,enabled:n}),t[51]=n,t[52]=s,t[53]=ne):ne=t[53],t[54]!==ee||t[55]!==ne?(L=(0,Q.jsx)(fc,{value:`account`,className:`mt-0`,children:(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 flex flex-col gap-4`,children:[ee,te,ne]})}),t[54]=ee,t[55]=ne,t[56]=L):L=t[56];let re,ie;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(re=(0,Q.jsx)(Y,{className:`text-sm font-medium`,children:`Mode`}),ie=(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground mb-3`,children:`Choose light, dark, or system theme`}),t[57]=re,t[58]=ie):(re=t[57],ie=t[58]);let ae=l===`light`?`default`:`outline`,oe;t[59]===d?oe=t[60]:(oe=()=>d(`light`),t[59]=d,t[60]=oe);let se;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,Q.jsx)(Ar,{className:`size-4`,"data-icon":`inline-start`}),t[61]=se):se=t[61];let G;t[62]!==ae||t[63]!==oe?(G=(0,Q.jsxs)(X,{variant:ae,className:`justify-start`,onClick:oe,children:[se,`Light`]}),t[62]=ae,t[63]=oe,t[64]=G):G=t[64];let ce=l===`dark`?`default`:`outline`,le;t[65]===d?le=t[66]:(le=()=>d(`dark`),t[65]=d,t[66]=le);let ue;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,Q.jsx)(wr,{className:`size-4`,"data-icon":`inline-start`}),t[67]=ue):ue=t[67];let de;t[68]!==ce||t[69]!==le?(de=(0,Q.jsxs)(X,{variant:ce,className:`justify-start`,onClick:le,children:[ue,`Dark`]}),t[68]=ce,t[69]=le,t[70]=de):de=t[70];let fe=l===`system`?`default`:`outline`,pe;t[71]===d?pe=t[72]:(pe=()=>d(`system`),t[71]=d,t[72]=pe);let me;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,Q.jsx)(Ct,{className:`size-4`,"data-icon":`inline-start`}),t[73]=me):me=t[73];let K;t[74]!==fe||t[75]!==pe?(K=(0,Q.jsxs)(X,{variant:fe,className:`justify-start`,onClick:pe,children:[me,`System`]}),t[74]=fe,t[75]=pe,t[76]=K):K=t[76];let he;t[77]!==G||t[78]!==de||t[79]!==K?(he=(0,Q.jsxs)(`div`,{children:[re,ie,(0,Q.jsxs)(`div`,{className:`grid grid-cols-3 gap-2`,children:[G,de,K]})]}),t[77]=G,t[78]=de,t[79]=K,t[80]=he):he=t[80];let ge,q;t[81]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,Q.jsx)(ze,{}),q=(0,Q.jsx)(Y,{className:`text-sm font-medium mb-3 block`,children:`Notification Sounds`}),t[81]=ge,t[82]=q):(ge=t[81],q=t[82]);let _e;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(_e=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(Nr,{className:`size-4 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:`text-sm`,children:`Chat completion`})]}),t[83]=_e):_e=t[83];let ve;t[84]!==h||t[85]!==g?(ve=()=>g(!h),t[84]=h,t[85]=g,t[86]=ve):ve=t[86];let ye=`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${h?`bg-primary`:`bg-muted`}`,be=`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${h?`translate-x-6`:`translate-x-1`}`,xe;t[87]===be?xe=t[88]:(xe=(0,Q.jsx)(`span`,{className:be}),t[87]=be,t[88]=xe);let Se;t[89]!==ve||t[90]!==ye||t[91]!==xe?(Se=(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[_e,(0,Q.jsx)(`button`,{type:`button`,onClick:ve,className:ye,children:xe})]}),t[89]=ve,t[90]=ye,t[91]=xe,t[92]=Se):Se=t[92];let Ce;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(Pr,{className:`size-4 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:`text-sm`,children:`Permission requests`})]}),t[93]=Ce):Ce=t[93];let we;t[94]!==_||t[95]!==v?(we=()=>v(!_),t[94]=_,t[95]=v,t[96]=we):we=t[96];let Te=`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${_?`bg-primary`:`bg-muted`}`,Ee=`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${_?`translate-x-6`:`translate-x-1`}`,De;t[97]===Ee?De=t[98]:(De=(0,Q.jsx)(`span`,{className:Ee}),t[97]=Ee,t[98]=De);let Oe;t[99]!==we||t[100]!==Te||t[101]!==De?(Oe=(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[Ce,(0,Q.jsx)(`button`,{type:`button`,onClick:we,className:Te,children:De})]}),t[99]=we,t[100]=Te,t[101]=De,t[102]=Oe):Oe=t[102];let ke;t[103]!==Se||t[104]!==Oe?(ke=(0,Q.jsxs)(`div`,{children:[q,(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[Se,Oe]})]}),t[103]=Se,t[104]=Oe,t[105]=ke):ke=t[105];let Ae,je,Me;t[106]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,Q.jsx)(ze,{}),je=(0,Q.jsx)(Y,{className:`text-sm font-medium`,children:`Color Scheme`}),Me=(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground mb-3`,children:`Choose your preferred color palette`}),t[106]=Ae,t[107]=je,t[108]=Me):(Ae=t[106],je=t[107],Me=t[108]);let Ne;t[109]!==u||t[110]!==f?(Ne=(0,Q.jsxs)(`div`,{children:[je,Me,(0,Q.jsxs)(`div`,{className:`grid grid-cols-5 gap-2`,children:[(0,Q.jsx)(Hc,{scheme:`neutral`,currentScheme:u,onClick:f}),(0,Q.jsx)(Hc,{scheme:`ocean`,currentScheme:u,onClick:f}),(0,Q.jsx)(Hc,{scheme:`forest`,currentScheme:u,onClick:f}),(0,Q.jsx)(Hc,{scheme:`sunset`,currentScheme:u,onClick:f}),(0,Q.jsx)(Hc,{scheme:`amethyst`,currentScheme:u,onClick:f})]})]}),t[109]=u,t[110]=f,t[111]=Ne):Ne=t[111],t[112]!==he||t[113]!==ke||t[114]!==Ne?(R=(0,Q.jsx)(fc,{value:`appearance`,className:`mt-0`,children:(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 flex flex-col gap-4`,children:[he,ge,ke,Ae,Ne]})}),t[112]=he,t[113]=ke,t[114]=Ne,t[115]=R):R=t[115],b=fc,P=`keybinds`,F=`mt-0`,w=`p-3 sm:p-4 flex flex-col gap-2`,N=e.map(Kc),t[0]=i,t[1]=h,t[2]=a,t[3]=l,t[4]=o,t[5]=r,t[6]=n,t[7]=_,t[8]=u,t[9]=s,t[10]=p,t[11]=g,t[12]=d,t[13]=v,t[14]=f,t[15]=b,t[16]=x,t[17]=S,t[18]=C,t[19]=w,t[20]=T,t[21]=E,t[22]=D,t[23]=O,t[24]=k,t[25]=A,t[26]=j,t[27]=M,t[28]=N,t[29]=P,t[30]=F,t[31]=I,t[32]=L,t[33]=R,t[34]=z,t[35]=B}else b=t[15],x=t[16],S=t[17],C=t[18],w=t[19],T=t[20],E=t[21],D=t[22],O=t[23],k=t[24],A=t[25],j=t[26],M=t[27],N=t[28],P=t[29],F=t[30],I=t[31],L=t[32],R=t[33],z=t[34],B=t[35];let V;t[116]!==w||t[117]!==N?(V=(0,Q.jsx)(`div`,{className:w,children:N}),t[116]=w,t[117]=N,t[118]=V):V=t[118];let H;t[119]!==b||t[120]!==V||t[121]!==P||t[122]!==F?(H=(0,Q.jsx)(b,{value:P,className:F,children:V}),t[119]=b,t[120]=V,t[121]=P,t[122]=F,t[123]=H):H=t[123];let U;t[124]!==H||t[125]!==I||t[126]!==L||t[127]!==R?(U=(0,Q.jsxs)(`div`,{className:I,children:[L,R,H]}),t[124]=H,t[125]=I,t[126]=L,t[127]=R,t[128]=U):U=t[128];let W;t[129]!==x||t[130]!==T||t[131]!==E||t[132]!==D||t[133]!==U||t[134]!==z||t[135]!==B?(W=(0,Q.jsxs)(x,{value:z,onValueChange:B,orientation:T,className:E,children:[D,U]}),t[129]=x,t[130]=T,t[131]=E,t[132]=D,t[133]=U,t[134]=z,t[135]=B,t[136]=W):W=t[136];let ee;t[137]!==S||t[138]!==O||t[139]!==k||t[140]!==A||t[141]!==W?(ee=(0,Q.jsxs)(S,{className:O,children:[k,A,W]}),t[137]=S,t[138]=O,t[139]=k,t[140]=A,t[141]=W,t[142]=ee):ee=t[142];let te;return t[143]!==C||t[144]!==j||t[145]!==M||t[146]!==ee?(te=(0,Q.jsx)(C,{open:j,onOpenChange:M,children:ee}),t[143]=C,t[144]=j,t[145]=M,t[146]=ee,t[147]=te):te=t[147],te}function Kc(e,t){return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:e.keys.map((t,n)=>(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(`kbd`,{className:`font-mono bg-muted rounded px-2 py-1 text-xs`,children:t}),n<e.keys.length-1&&(0,Q.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:`+`})]},n))}),(0,Q.jsx)(`span`,{className:`text-sm text-muted-foreground text-right`,children:e.description})]},t)}function qc(e){return(0,Q.jsxs)(dc,{value:e.value,className:`justify-start px-3 py-1.5 text-sm`,children:[(0,Q.jsx)(e.icon,{className:`size-4`,"data-icon":`inline-start`}),(0,Q.jsx)(`span`,{children:e.label})]},e.value)}function Jc(e){return(0,Q.jsxs)(_c,{value:e.value,children:[(0,Q.jsx)(e.icon,{className:`size-4`}),e.label]},e.value)}function Yc(e){return{chatFinishSoundEnabled:e.chatFinishSoundEnabled,setChatFinishSoundEnabled:e.setChatFinishSoundEnabled,permissionSoundEnabled:e.permissionSoundEnabled,setPermissionSoundEnabled:e.setPermissionSoundEnabled}}function Xc(e){let t=(0,$.c)(6),{status:n}=e;switch(n.status){case`connected`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(J,{variant:`default`,className:`bg-green-600`,children:[(0,Q.jsx)(D,{className:`size-3 mr-1`}),`Connected`]}),t[0]=e):e=t[0],e}case`disabled`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(J,{variant:`secondary`,children:[(0,Q.jsx)(Ne,{className:`size-3 mr-1`}),`Disabled`]}),t[1]=e):e=t[1],e}case`failed`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(J,{variant:`destructive`,children:[(0,Q.jsx)(ut,{className:`size-3 mr-1`}),`Failed`]}),t[2]=e):e=t[2],e}case`needs_auth`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(J,{variant:`outline`,className:`border-yellow-500 text-yellow-600`,children:[(0,Q.jsx)(ut,{className:`size-3 mr-1`}),`Needs Auth`]}),t[3]=e):e=t[3],e}case`needs_client_registration`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(J,{variant:`outline`,className:`border-orange-500 text-orange-600`,children:[(0,Q.jsx)(ut,{className:`size-3 mr-1`}),`Needs Registration`]}),t[4]=e):e=t[4],e}default:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(J,{variant:`secondary`,children:`Unknown`}),t[5]=e):e=t[5],e}}}function Zc({open:e,onOpenChange:t,workspaceId:n,workspacePath:r,sdkClient:i}){let{data:a,isLoading:o,refetch:s}=me(i,n),c=de(i),l=Be(i),u=We(i),d=a?.status??{},[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{e&&n&&s()},[e,n,s]);let g=async e=>{if(!(!n||!i)){p(e);try{await c.mutateAsync({workspaceId:n,name:e}),s()}catch(e){h(e instanceof Error?e.message:`Unknown error`)}finally{p(null)}}},_=async e=>{if(!(!n||!i)){p(e);try{await l.mutateAsync({workspaceId:n,name:e}),s()}catch(e){h(e instanceof Error?e.message:`Unknown error`)}finally{p(null)}}},v=async e=>{if(!(!n||!i)){p(e);try{let t=await u.mutateAsync({workspaceId:n,name:e});t.authorizationUrl&&window.open(t.authorizationUrl,`_blank`),s()}catch(e){h(e instanceof Error?e.message:`Unknown error`)}finally{p(null)}}},y=Object.entries(d);return(0,Q.jsx)(Ln,{open:e,onOpenChange:t,children:(0,Q.jsxs)(Fn,{className:`sm:max-w-[600px] max-h-[80vh]`,children:[(0,Q.jsxs)(Pn,{children:[(0,Q.jsxs)(In,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(Dn,{className:`size-5`}),`MCP Servers`]}),(0,Q.jsx)(An,{children:`Manage Model Context Protocol servers for this workspace`})]}),(0,Q.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[m&&(0,Q.jsxs)(Et,{variant:`destructive`,children:[(0,Q.jsx)(ut,{className:`size-4`}),(0,Q.jsx)(St,{children:m})]}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Configure servers in `,(0,Q.jsx)(`code`,{className:`text-xs bg-muted px-1 rounded`,children:`.jean2/mcp.json`})]}),(0,Q.jsx)(X,{variant:`outline`,size:`sm`,onClick:()=>s(),disabled:o,children:(0,Q.jsx)(Un,{className:`size-4 ${o?`animate-spin`:``}`})})]}),(0,Q.jsx)(Xt,{className:`h-[400px]`,children:o&&y.length===0?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):y.length===0?(0,Q.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground`,children:[(0,Q.jsx)(Dn,{className:`size-12 mx-auto mb-3 opacity-50`}),(0,Q.jsx)(`p`,{className:`font-medium`,children:`No MCP servers configured`}),(0,Q.jsxs)(`p`,{className:`text-sm mt-1`,children:[`Create `,(0,Q.jsx)(`code`,{className:`text-xs bg-muted px-1 rounded`,children:`.jean2/mcp.json`}),` in your workspace to add servers.`]})]}):(0,Q.jsx)(`div`,{className:`space-y-3`,children:y.map(([e,{config:t,status:n}])=>(0,Q.jsxs)(`div`,{className:`border rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Q.jsx)(Dn,{className:`size-5 text-muted-foreground mt-0.5`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`font-medium`,children:e}),(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:t?.type===`local`?(0,Q.jsxs)(`span`,{children:[`Local - `,t.command?.[0]||`command`]}):t?.type===`remote`?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[`Remote - `,t.url]}):`Unknown type`}),n.status===`failed`&&`error`in n&&(0,Q.jsx)(Et,{variant:`destructive`,className:`mt-2 py-2`,children:(0,Q.jsx)(St,{className:`text-xs`,children:n.error})}),n.status===`needs_client_registration`&&`error`in n&&(0,Q.jsx)(Et,{className:`mt-2 py-2 border-orange-500`,children:(0,Q.jsx)(St,{className:`text-xs`,children:n.error})})]})]}),(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Q.jsx)(Xc,{status:n})})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mt-3 pt-3 border-t`,children:[n.status===`connected`&&(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,onClick:()=>_(e),disabled:f===e,children:[f===e?(0,Q.jsx)(x,{className:`size-4 animate-spin`}):(0,Q.jsx)(Er,{className:`size-4`}),(0,Q.jsx)(`span`,{className:`ml-1`,children:`Disconnect`})]}),(n.status===`disabled`||n.status===`failed`)&&(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,onClick:()=>g(e),disabled:f===e,children:[f===e?(0,Q.jsx)(x,{className:`size-4 animate-spin`}):(0,Q.jsx)(Dr,{className:`size-4`}),(0,Q.jsx)(`span`,{className:`ml-1`,children:`Connect`})]}),n.status===`needs_auth`&&(0,Q.jsxs)(X,{variant:`default`,size:`sm`,onClick:()=>v(e),disabled:f===e,children:[f===e?(0,Q.jsx)(x,{className:`size-4 animate-spin`}):(0,Q.jsx)(jt,{className:`size-4`}),(0,Q.jsx)(`span`,{className:`ml-1`,children:`Authenticate`})]})]})]},e))})})]})]})})}function Qc({sdkClient:e}){let{data:t,isLoading:n}=W(e),r=h(e),i=He(e),a=t?.providers??[],[o,s]=(0,Z.useState)(null),[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(!1),[m,g]=(0,Z.useState)(null),_=async e=>{if(u.trim()){g(e);try{await r.mutateAsync({provider:e,body:{apiKey:u.trim()}}),l(null),d(``),p(!1)}catch(e){s(e instanceof Error?e.message:`Failed to set key`)}finally{g(null)}}},v=async e=>{g(e);try{await i.mutateAsync(e)}catch(e){s(e instanceof Error?e.message:`Failed to clear key`)}finally{g(null)}},y={anthropic:`Anthropic`,google:`Google`,minimax:`MiniMax`,openai:`OpenAI`,openrouter:`OpenRouter`,zhipu:`Z.AI`,"zhipu-coding":`Z.AI Coding`},b=e=>y[e]||e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `);return n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):o&&a.length===0?(0,Q.jsx)(`div`,{className:`p-4 text-sm text-destructive`,children:o}):(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Manage API keys for LLM providers. Keys are stored in ~/.jean2/.env and never exposed to the client.`}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground mt-2`,children:`OAuth-based providers are managed in the OAuth tab.`}),o&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:o}),(0,Q.jsx)(`div`,{className:`space-y-2`,children:a.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center justify-between p-3 rounded-lg border`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(vt,{className:`size-4 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:`text-sm font-medium`,children:b(e.provider)}),(0,Q.jsx)(J,{variant:e.configured?`default`:`secondary`,children:e.configured?`Configured`:`Not set`})]}),(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:c===e.provider?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(q,{type:f?`text`:`password`,value:u,onChange:e=>d(e.target.value),placeholder:`Enter API key...`,className:`w-full sm:w-48 h-8 text-sm pr-8`,onKeyDown:t=>{t.key===`Enter`&&_(e.provider),t.key===`Escape`&&(l(null),d(``))},autoFocus:!0}),(0,Q.jsx)(X,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute right-0 top-0 h-8 w-8`,onClick:()=>p(!f),children:f?(0,Q.jsx)(fr,{className:`size-3`}):(0,Q.jsx)(Ot,{className:`size-3`})})]}),(0,Q.jsx)(X,{size:`sm`,onClick:()=>_(e.provider),disabled:!u.trim()||m===e.provider,children:m===e.provider?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(G,{className:`size-3`})}),(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>{l(null),d(``)},children:(0,Q.jsx)(Hn,{className:`size-3`})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(X,{size:`sm`,variant:`outline`,onClick:()=>{l(e.provider),d(``),p(!1)},disabled:m===e.provider,children:e.configured?`Update`:`Set Key`}),e.configured&&(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>v(e.provider),disabled:m===e.provider,children:m===e.provider?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(gn,{className:`size-3`})})]})})]},e.provider))})]})}function $c({sdkClient:e}){let{data:t,isLoading:n}=_(e),r=p(e),i=Ve(e),a=H(e),o=t?.providers??[],[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(null),[d,f]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(!1),[g,v]=(0,Z.useState)(``),[y,b]=(0,Z.useState)(!1),S=(0,Z.useRef)(null);(0,Z.useEffect)(()=>()=>{S.current?.abort()},[]);let C=(0,Z.useCallback)(async e=>{u(e),f(null),c(null);try{let t=await r.mutateAsync({providerId:e});if(t.authorizationUrl&&t.flowId){let n={providerId:e,flowId:t.flowId,redirectUri:t.redirectUri||``,authorizationUrl:t.authorizationUrl};f(n),(t.redirectStrategy===`client_redirect`||!t.redirectStrategy)&&w(n,t.redirectUri||``),window.open(t.authorizationUrl,`_blank`)}}catch(e){c(e instanceof Error?e.message:`Failed to connect provider`)}finally{u(null)}},[r]),w=(0,Z.useCallback)((e,t)=>{try{let e=new URL(t),n=parseInt(e.port,10);if(!n||isNaN(n))return}catch{}},[]),T=(0,Z.useCallback)(async()=>{if(!(!d||!g.trim())){b(!0),c(null);try{let e,t,n=g.trim();try{let r=new URL(n);e=r.searchParams.get(`code`)||``,t=r.searchParams.get(`state`)||``}catch{if(n.includes(`code=`)){let r=new URLSearchParams(n.startsWith(`?`)?n:`?${n}`);e=r.get(`code`)||``,t=r.get(`state`)||``}else e=n,t=``}if(!e){c(`Could not extract authorization code from the pasted URL`);return}let r=await a.mutateAsync({flowId:d.flowId,code:e,state:t,redirectUri:d.redirectUri});r.success?(f(null),v(``)):c(r.error||`OAuth completion failed`)}catch(e){c(e instanceof Error?e.message:`Failed to complete OAuth`)}finally{b(!1)}}},[d,g,a]),E=(0,Z.useCallback)(async()=>{if(d)try{await navigator.clipboard.writeText(d.authorizationUrl),h(!0),setTimeout(()=>h(!1),2e3)}catch{}},[d]),D=(0,Z.useCallback)(async e=>{c(null);try{await i.mutateAsync(e)}catch(e){c(e instanceof Error?e.message:`Failed to disconnect provider`)}},[i]);return n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Connect subscription-based providers using OAuth. No API keys needed.`}),s&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:s}),o.length===0?(0,Q.jsx)(`div`,{className:`text-center py-8 text-sm text-muted-foreground`,children:`No OAuth providers available.`}):(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,children:o.map(e=>(0,Q.jsxs)(`div`,{className:`rounded-lg border p-3 sm:p-4 space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`div`,{className:`size-2 rounded-full ${e.connected?`bg-green-500`:`bg-muted-foreground`}`}),(0,Q.jsx)(`span`,{className:`text-sm font-medium`,children:e.displayName||e.provider})]}),e.connected&&(0,Q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Connected`})]}),e.error&&(0,Q.jsx)(`p`,{className:`text-xs text-destructive`,children:e.error}),e.connected&&e.connectedAt&&(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Connected `,new Date(e.connectedAt).toLocaleDateString()]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[!e.connected&&d?.providerId!==e.provider&&(0,Q.jsxs)(X,{size:`sm`,onClick:()=>C(e.provider),disabled:l===e.provider,children:[l===e.provider?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):null,`Connect`]}),e.connected&&(0,Q.jsxs)(X,{variant:`destructive`,size:`sm`,onClick:()=>D(e.provider),children:[(0,Q.jsx)(Mr,{className:`size-3`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Disconnect`})]})]}),d?.providerId===e.provider&&(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Open this URL in your browser to authenticate:`}),(0,Q.jsx)(`div`,{className:`rounded-md bg-muted p-2`,children:(0,Q.jsx)(`a`,{href:d.authorizationUrl,target:`_blank`,rel:`noopener noreferrer`,className:`font-mono text-xs text-blue-500 underline break-all`,children:d.authorizationUrl})}),(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,onClick:E,children:[m?(0,Q.jsx)(G,{className:`size-3`}):(0,Q.jsx)(At,{className:`size-3`}),m?`Copied`:`Copy URL`]})]}),(0,Q.jsxs)(`div`,{className:`border-t pt-3 space-y-2`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`After authenticating, paste the redirect URL from your browser:`}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`input`,{type:`text`,value:g,onChange:e=>v(e.target.value),placeholder:`http://localhost:1455/oauth/.../callback?code=...&state=...`,className:`flex-1 rounded-md border bg-background px-3 py-1.5 text-xs font-mono`}),(0,Q.jsxs)(X,{size:`sm`,onClick:T,disabled:!g.trim()||y,children:[y?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(ur,{className:`size-3`}),`Submit`]})]})]})]})]},e.provider))})]})}function el(e){let t=(0,$.c)(30),{open:n,onOpenChange:r,title:i,description:a,confirmLabel:o,cancelLabel:s,variant:c,onConfirm:l,onCancel:u}=e,d=o===void 0?`Confirm`:o,f=s===void 0?`Cancel`:s,p=c===void 0?`default`:c,m;t[0]!==u||t[1]!==r?(m=()=>{u?.(),r(!1)},t[0]=u,t[1]=r,t[2]=m):m=t[2];let h=m,g;t[3]!==l||t[4]!==r?(g=()=>{l(),r(!1)},t[3]=l,t[4]=r,t[5]=g):g=t[5];let _=g,v;t[6]===i?v=t[7]:(v=(0,Q.jsx)(In,{children:i}),t[6]=i,t[7]=v);let y;t[8]===a?y=t[9]:(y=(0,Q.jsx)(An,{children:a}),t[8]=a,t[9]=y);let b;t[10]!==v||t[11]!==y?(b=(0,Q.jsxs)(Pn,{children:[v,y]}),t[10]=v,t[11]=y,t[12]=b):b=t[12];let x;t[13]!==f||t[14]!==h?(x=(0,Q.jsx)(X,{variant:`outline`,onClick:h,children:f}),t[13]=f,t[14]=h,t[15]=x):x=t[15];let S=p===`destructive`?`destructive`:`default`,C;t[16]!==d||t[17]!==_||t[18]!==S?(C=(0,Q.jsx)(X,{variant:S,onClick:_,children:d}),t[16]=d,t[17]=_,t[18]=S,t[19]=C):C=t[19];let w;t[20]!==C||t[21]!==x?(w=(0,Q.jsxs)(On,{children:[x,C]}),t[20]=C,t[21]=x,t[22]=w):w=t[22];let T;t[23]!==w||t[24]!==b?(T=(0,Q.jsxs)(Fn,{className:`sm:max-w-[425px]`,children:[b,w]}),t[23]=w,t[24]=b,t[25]=T):T=t[25];let E;return t[26]!==r||t[27]!==n||t[28]!==T?(E=(0,Q.jsx)(Ln,{open:n,onOpenChange:r,children:T}),t[26]=r,t[27]=n,t[28]=T,t[29]=E):E=t[29],E}function tl(e){let t=(0,$.c)(9),{tier:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={variant:`secondary`,icon:(0,Q.jsx)(`span`,{className:`text-[10px] font-bold`,children:`B`})},t[0]=r):r=t[0];let i;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(i={variant:`default`,icon:(0,Q.jsx)(`span`,{className:`text-[10px] font-bold`,children:`S`})},t[1]=i):i=t[1];let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a={budget:r,standard:i,premium:{variant:`outline`,icon:(0,Q.jsx)(Wn,{className:`size-2.5`})}},t[2]=a):a=t[2];let{variant:o,icon:s}=a[n],c;t[3]===n?c=t[4]:(c=(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:n}),t[3]=n,t[4]=c);let l;return t[5]!==s||t[6]!==c||t[7]!==o?(l=(0,Q.jsxs)(J,{variant:o,className:`text-[10px] gap-0.5`,children:[s,c]}),t[5]=s,t[6]=c,t[7]=o,t[8]=l):l=t[8],l}function nl(e){let t=(0,$.c)(3),{status:n}=e;if(n.usable){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(J,{variant:`default`,className:`bg-emerald-500/20 text-emerald-600 dark:text-emerald-400 border-emerald-500/30 text-[10px]`,children:[(0,Q.jsx)(G,{className:`size-2.5`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Usable`})]}),t[0]=e):e=t[0],e}if(n.providerSupported&&!n.providerConfigured){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(J,{variant:`secondary`,className:`text-[10px]`,children:[(0,Q.jsx)(ut,{className:`size-2.5`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Needs config`})]}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsxs)(J,{variant:`outline`,className:`text-[10px] text-muted-foreground`,children:[(0,Q.jsx)(Hn,{className:`size-2.5`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Unsupported`})]}),t[2]=r):r=t[2],r}var rl={id:``,name:``},il={id:``,name:``,contextWindow:128e3,maxOutputTokens:void 0,tier:`standard`};function al({sdkClient:e}){let{data:t,isLoading:n}=d(e),r=A(e),i=ae(e),a=Ke(e),o=w(e),s=te(e),c=B(e),l=re(e),u=S(e),[f,p]=(0,Z.useState)(`merge`),[m,h]=(0,Z.useState)(null),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)(null),[b,C]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(rl),[D,O]=(0,Z.useState)(!1),[k,j]=(0,Z.useState)(null),[,M]=(0,Z.useState)(!1),[N,P]=(0,Z.useState)(null),[F,I]=(0,Z.useState)(null),[L,R]=(0,Z.useState)(il),[z,V]=(0,Z.useState)(!1),[H,U]=(0,Z.useState)(null),[,W]=(0,Z.useState)(!1),[ee,ne]=(0,Z.useState)({}),[ie,oe]=(0,Z.useState)(!1),[ue,de]=(0,Z.useState)({defaultProvider:``,defaultModel:``}),[fe,pe]=(0,Z.useState)(!1);function me(e,t,n){let r={...e.capabilities?.input};r[t]=n;let i=r.text||r.image||r.video||Array.isArray(r.file)&&r.file.length>0,a=!!e.capabilities?.structuredOutput;return{...e,capabilities:i||a?{...i?{input:r}:{},...e.capabilities?.structuredOutput?{structuredOutput:e.capabilities.structuredOutput}:{}}:void 0}}function K(e,t){let n=t.trim()?t.split(`,`).map(e=>e.trim()).filter(Boolean):void 0,r={...e.capabilities?.input,file:n},i=r.text||r.image||r.video||Array.isArray(r.file)&&r.file.length>0,a=!!e.capabilities?.structuredOutput;return{...e,capabilities:i||a?{...i?{input:r}:{},...e.capabilities?.structuredOutput?{structuredOutput:e.capabilities.structuredOutput}:{}}:void 0}}function he(e,t){let n=e.capabilities?.input,r=n&&(n.text||n.image||n.video||Array.isArray(n.file)&&n.file.length>0);return t===`none`?{...e,capabilities:r?{input:n}:void 0}:{...e,capabilities:{...r?{input:n}:{},structuredOutput:{mode:t}}}}let ge=()=>{let e={...L.variants||{}},t=`new`,n=1;for(;e[t];)t=`new-${n++}`;e[t]={providerOptions:{}},R(t=>({...t,variants:e}))},_e=e=>{let t={...L.variants||{}};delete t[e];let n=Object.keys(t);R(e=>({...e,variants:n.length>0?t:void 0}))},ve=(e,t)=>{if(e===t)return;let n={...L.variants||{}};if(n[t]&&t!==e)return;let r=n[e];delete n[e],n[t]=r,R(e=>({...e,variants:Object.keys(n).length>0?n:void 0}))},ye=(e,t)=>{try{let n=JSON.parse(t);if(typeof n!=`object`||Array.isArray(n)){ne(t=>({...t,[e]:!0}));return}let r={...L.variants||{}};r[e]={providerOptions:n},R(e=>({...e,variants:r})),ne(t=>({...t,[e]:!1}))}catch{ne(t=>({...t,[e]:!0}))}},[be,xe]=(0,Z.useState)(new Set);t&&ue.defaultProvider===``&&ue.defaultModel===``&&de({defaultProvider:t.defaultProvider,defaultModel:t.defaultModel});let Se=()=>{C(!0),y(null),E(rl)},Ce=e=>{y(e.id),C(!1),E({id:e.id,name:e.name})},we=async()=>{if(!(!T.id.trim()||!T.name.trim())){O(!0),_(null);try{b?await r.mutateAsync({id:T.id.trim(),name:T.name.trim()}):await i.mutateAsync({providerId:v,body:{name:T.name.trim()}}),C(!1),y(null)}catch(e){_(e instanceof Error?e.message:`Failed to save provider`)}finally{O(!1)}}},Te=async()=>{if(k){M(!0),_(null);try{await a.mutateAsync(k),j(null)}catch(e){_(e instanceof Error?e.message:`Failed to delete provider`)}finally{M(!1)}}},Ee=e=>{I(e),P(null),R(il),ne({})},De=e=>{P({providerId:e.providerId,modelId:e.id}),I(null),R({id:e.id,name:e.name,contextWindow:e.contextWindow,maxOutputTokens:e.maxOutputTokens,tier:e.tier,variants:e.variants,capabilities:e.capabilities}),ne({})},Oe=async e=>{if(!(!L.id.trim()||!L.name.trim())){V(!0),_(null);try{if(F){let t={id:L.id.trim(),name:L.name.trim(),contextWindow:L.contextWindow,maxOutputTokens:L.maxOutputTokens,tier:L.tier,variants:L.variants,capabilities:L.capabilities};await o.mutateAsync({providerId:e,body:t})}else{let t={name:L.name.trim(),contextWindow:L.contextWindow,maxOutputTokens:L.maxOutputTokens,tier:L.tier,variants:L.variants,capabilities:L.capabilities};await s.mutateAsync({providerId:e,modelId:N.modelId,body:t})}I(null),P(null)}catch(e){_(e instanceof Error?e.message:`Failed to save model`)}finally{V(!1)}}},ke=async()=>{if(H){W(!0),_(null);try{await c.mutateAsync({providerId:H.providerId,modelId:H.modelId}),U(null)}catch(e){_(e instanceof Error?e.message:`Failed to delete model`)}finally{W(!1)}}},Ae=async()=>{pe(!0),_(null);try{await l.mutateAsync({defaultProvider:ue.defaultProvider,defaultModel:ue.defaultModel}),oe(!1)}catch(e){_(e instanceof Error?e.message:`Failed to save defaults`)}finally{pe(!1)}},je=e=>{xe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Me=[];if(t?.providers.forEach(e=>{e.models.forEach(t=>{Me.push({providerId:e.id,providerName:e.name,modelId:t.id,modelName:t.name})})}),n)return(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})});if(b||v){let e=t?.providers.find(e=>e.id===v);return(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(`h3`,{className:`text-sm font-medium`,children:b?`New Provider`:`Edit: ${e?.name||v}`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(X,{size:`sm`,onClick:we,disabled:D||!T.id.trim()||!T.name.trim(),children:[D?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(G,{className:`size-3`}),`Save`]}),(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>{C(!1),y(null)},children:(0,Q.jsx)(Hn,{className:`size-3`})})]})]}),g&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:g}),(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Provider ID`}),(0,Q.jsx)(q,{value:T.id,onChange:e=>E(t=>({...t,id:e.target.value})),disabled:!b,placeholder:`e.g., openai`,className:`mt-1 font-mono`}),!b&&(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground mt-1`,children:`ID cannot be changed`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Name`}),(0,Q.jsx)(q,{value:T.name,onChange:e=>E(t=>({...t,name:e.target.value})),placeholder:`e.g., OpenAI`,className:`mt-1`})]})]})]})}if(F||N){let e=F||N?.providerId||``,n=t?.providers.find(t=>t.id===e),r=!F&&N?n?.models.find(e=>e.id===N.modelId):null;return(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(`h3`,{className:`text-sm font-medium`,children:F?`New Model (${n?.name||e})`:`Edit: ${r?.name||N?.modelId}`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(X,{size:`sm`,onClick:()=>Oe(e),disabled:z||!L.id.trim()||!L.name.trim()||Object.values(ee).some(Boolean),children:[z?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(G,{className:`size-3`}),`Save`]}),(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>{I(null),P(null)},children:(0,Q.jsx)(Hn,{className:`size-3`})})]})]}),g&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:g}),(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Model ID`}),(0,Q.jsx)(q,{value:L.id,onChange:e=>R(t=>({...t,id:e.target.value})),disabled:!F,placeholder:`e.g., gpt-4o`,className:`mt-1 font-mono`}),!F&&(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground mt-1`,children:`ID cannot be changed`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Display Name`}),(0,Q.jsx)(q,{value:L.name,onChange:e=>R(t=>({...t,name:e.target.value})),placeholder:`e.g., GPT-4o`,className:`mt-1`})]}),(0,Q.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Context Window`}),(0,Q.jsx)(q,{type:`number`,value:L.contextWindow,onChange:e=>R(t=>({...t,contextWindow:parseInt(e.target.value)||0})),min:1,className:`mt-1`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Max Output Tokens`}),(0,Q.jsx)(q,{type:`number`,value:L.maxOutputTokens??``,onChange:e=>R(t=>({...t,maxOutputTokens:e.target.value?parseInt(e.target.value):void 0})),min:1,placeholder:`Optional`,className:`mt-1`})]})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Tier`}),(0,Q.jsxs)(`select`,{value:L.tier,onChange:e=>R(t=>({...t,tier:e.target.value})),className:`mt-1 h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm`,children:[(0,Q.jsx)(`option`,{value:`budget`,children:`Budget`}),(0,Q.jsx)(`option`,{value:`standard`,children:`Standard`}),(0,Q.jsx)(`option`,{value:`premium`,children:`Premium`})]})]}),(0,Q.jsx)(ze,{className:`my-2`}),(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{className:`text-xs font-medium`,children:`Capabilities`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Q.jsxs)(`label`,{className:`flex items-center gap-1.5 cursor-pointer`,children:[(0,Q.jsx)(Qt,{checked:L.capabilities?.input?.text??!1,onCheckedChange:e=>R(t=>me(t,`text`,e))}),(0,Q.jsx)(`span`,{className:`text-xs`,children:`Text`})]}),(0,Q.jsxs)(`label`,{className:`flex items-center gap-1.5 cursor-pointer`,children:[(0,Q.jsx)(Qt,{checked:L.capabilities?.input?.image??!1,onCheckedChange:e=>R(t=>me(t,`image`,e))}),(0,Q.jsx)(`span`,{className:`text-xs`,children:`Image`})]}),(0,Q.jsxs)(`label`,{className:`flex items-center gap-1.5 cursor-pointer`,children:[(0,Q.jsx)(Qt,{checked:L.capabilities?.input?.video??!1,onCheckedChange:e=>R(t=>me(t,`video`,e))}),(0,Q.jsx)(`span`,{className:`text-xs`,children:`Video`})]})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`File Types (MIME, comma-separated)`}),(0,Q.jsx)(q,{value:L.capabilities?.input?.file?.join(`, `)??``,onChange:e=>R(t=>K(t,e.target.value)),placeholder:`e.g., application/pdf, text/csv`,className:`mt-1 font-mono text-xs`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Structured Output`}),(0,Q.jsxs)(`select`,{value:L.capabilities?.structuredOutput?.mode??`none`,onChange:e=>R(t=>he(t,e.target.value)),className:`mt-1 h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm`,children:[(0,Q.jsx)(`option`,{value:`none`,children:`Default (native)`}),(0,Q.jsx)(`option`,{value:`native`,children:`Native (json_schema)`}),(0,Q.jsx)(`option`,{value:`prompt`,children:`Prompt-based (schema in system prompt)`})]}),(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground mt-1`,children:`Use Prompt-based for providers that strip JSON schema (GLM, MiniMax). Native works for OpenAI, DeepSeek, etc.`})]})]}),(0,Q.jsx)(ze,{className:`my-2`}),(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(Y,{className:`text-xs font-medium`,children:`Variants`}),(0,Q.jsxs)(X,{type:`button`,size:`sm`,variant:`ghost`,onClick:ge,children:[(0,Q.jsx)(xn,{className:`size-3`}),`Add Variant`]})]}),L.variants&&Object.keys(L.variants).length>0?(0,Q.jsx)(`div`,{className:`space-y-2`,children:Object.entries(L.variants).map(([e,t])=>(0,Q.jsxs)(`div`,{className:`border rounded p-2 space-y-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(q,{value:e,onChange:t=>ve(e,t.target.value),placeholder:`variant name`,className:`h-7 text-xs font-mono w-24`}),(0,Q.jsx)(`div`,{className:`flex-1`}),(0,Q.jsx)(X,{type:`button`,size:`icon-xs`,variant:`ghost`,onClick:()=>_e(e),children:(0,Q.jsx)(gn,{className:`size-3`})})]}),(0,Q.jsx)(on,{value:JSON.stringify(t.providerOptions,null,2),onChange:t=>ye(e,t.target.value),placeholder:`{}`,className:`font-mono text-xs min-h-[60px]`,rows:3}),ee[e]&&(0,Q.jsx)(`p`,{className:`text-[10px] text-destructive`,children:`Invalid JSON`})]},e))}):(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No variants configured`})]})]})]})}return(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`border rounded-lg p-3 space-y-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`h3`,{className:`text-sm font-medium flex items-center gap-2`,children:[(0,Q.jsx)(cr,{className:`size-4`}),`Default Model`]}),(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>oe(!ie),children:ie?(0,Q.jsx)(Hn,{className:`size-3`}):(0,Q.jsx)(Mt,{className:`size-3`})})]}),ie?(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Default Provider`}),(0,Q.jsxs)(`select`,{value:ue.defaultProvider,onChange:e=>de(t=>({...t,defaultProvider:e.target.value,defaultModel:``})),className:`mt-1 h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm`,children:[(0,Q.jsx)(`option`,{value:``,children:`Select provider...`}),t?.providers.map(e=>(0,Q.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-xs`,children:`Default Model`}),(0,Q.jsxs)(`select`,{value:ue.defaultModel,onChange:e=>de(t=>({...t,defaultModel:e.target.value})),className:`mt-1 h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm`,children:[(0,Q.jsx)(`option`,{value:``,children:`Select model...`}),t?.providers.find(e=>e.id===ue.defaultProvider)?.models.map(e=>(0,Q.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,Q.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>oe(!1),children:`Cancel`}),(0,Q.jsxs)(X,{size:`sm`,onClick:Ae,disabled:fe||!ue.defaultProvider||!ue.defaultModel,children:[fe?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(G,{className:`size-3`}),`Save`]})]})]}):(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:t?.defaultProvider&&t?.defaultModel?(0,Q.jsxs)(`span`,{children:[t.providers.find(e=>e.id===t.defaultProvider)?.name||t.defaultProvider,` /`,` `,t.providers.find(e=>e.id===t.defaultProvider)?.models.find(e=>e.id===t.defaultModel)?.name||t.defaultModel]}):(0,Q.jsx)(`span`,{className:`italic`,children:`Not configured`})})]}),(0,Q.jsxs)(`div`,{className:`border rounded-lg p-3 space-y-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`h3`,{className:`text-sm font-medium flex items-center gap-2`,children:[(0,Q.jsx)(Un,{className:`size-4`}),`Sync Models`]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground cursor-pointer`,children:[(0,Q.jsx)(Qt,{checked:f===`override`,onCheckedChange:e=>p(e?`override`:`merge`)}),`Override`]}),(0,Q.jsxs)(X,{size:`sm`,disabled:u.isPending,onClick:()=>{h(null),u.mutate(f,{onSuccess:e=>h(e),onError:e=>_(e instanceof Error?e.message:`Sync failed`)})},children:[u.isPending?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(Un,{className:`size-3`}),`Sync`]})]})]}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f===`merge`?`Add new models from the upstream registry. Existing models are kept.`:`Replace local models with the upstream registry. Custom models will be lost.`}),m&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-emerald-500/10 text-xs text-emerald-600 dark:text-emerald-400 space-y-0.5`,children:m.mode===`override`?(0,Q.jsxs)(`span`,{children:[`Replaced with upstream (`,m.totalProviders,` providers, `,m.totalModels,` models)`]}):m.addedProviders.length===0&&m.addedModels.length===0?(0,Q.jsx)(`span`,{children:`Models already up to date`}):(0,Q.jsxs)(Q.Fragment,{children:[m.addedProviders.length>0&&(0,Q.jsxs)(`div`,{children:[`Added `,m.addedProviders.length,` provider(s): `,m.addedProviders.join(`, `)]}),m.addedModels.length>0&&(0,Q.jsxs)(`div`,{children:[`Added `,m.addedModels.length,` model(s): `,m.addedModels.join(`, `)]})]})})]}),g&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:g}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[t?.providers.length||0,` provider`,(t?.providers.length||0)===1?``:`s`]}),(0,Q.jsxs)(X,{size:`sm`,onClick:Se,children:[(0,Q.jsx)(xn,{className:`size-3`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Add Provider`})]})]}),t?.providers.length===0?(0,Q.jsx)(`div`,{className:`text-center py-8 text-sm text-muted-foreground`,children:`No providers configured. Add one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-2`,children:t?.providers.map(e=>{let n=be.has(e.id),r=e.id===t.defaultProvider;return(0,Q.jsxs)(ce,{open:!n,onOpenChange:()=>je(e.id),className:`border rounded-lg`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between w-full px-3 py-2 text-left hover:bg-muted/50 transition-colors cursor-pointer`,onClick:()=>je(e.id),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Q.jsx)(le,{className:`size-4 transition-transform ${n?``:`rotate-90`}`}),(0,Q.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.name}),(0,Q.jsxs)(J,{variant:`secondary`,className:`text-[10px] shrink-0`,children:[e.models.length,` model`,e.models.length===1?``:`s`]}),r&&(0,Q.jsx)(J,{variant:`outline`,className:`text-[10px] shrink-0`,children:`Default`})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>Ee(e.id),title:`Add model`,children:(0,Q.jsx)(xn,{className:`size-3`})}),(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>Ce(e),title:`Edit provider`,children:(0,Q.jsx)(Mt,{className:`size-3`})}),(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>j(e.id),title:`Delete provider`,children:(0,Q.jsx)(gn,{className:`size-3`})})]})]}),(0,Q.jsx)(se,{children:(0,Q.jsx)(`div`,{className:`border-t px-3 py-2 space-y-1 bg-muted/30`,children:e.models.length===0?(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground py-2 pl-6`,children:`No models. Add one to get started.`}):e.models.map(e=>{let n=e.id===t.defaultModel&&e.providerId===t.defaultProvider;return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between py-1.5 pl-6 pr-2 rounded hover:bg-background`,children:[(0,Q.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-col gap-0.5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Q.jsx)(`span`,{className:`text-sm truncate`,children:e.name}),(0,Q.jsx)(tl,{tier:e.tier}),(0,Q.jsx)(nl,{status:e.runtimeStatus}),n&&(0,Q.jsxs)(J,{variant:`outline`,className:`text-[10px]`,children:[(0,Q.jsx)(Wn,{className:`size-2.5`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Default`})]})]}),(0,Q.jsxs)(`div`,{className:`hidden sm:flex items-center gap-2`,children:[(0,Q.jsx)(`code`,{className:`text-[10px] text-muted-foreground bg-muted px-1 rounded`,children:e.id}),e.capabilities?.input?.text&&(0,Q.jsx)(J,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:`Text`}),e.capabilities?.input?.image&&(0,Q.jsx)(J,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:`Image`}),e.capabilities?.input?.video&&(0,Q.jsx)(J,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:`Video`}),e.capabilities?.input?.file&&e.capabilities.input.file.length>0&&(0,Q.jsxs)(J,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:[`Files (`,e.capabilities.input.file.length,`)`]}),e.capabilities?.structuredOutput&&(0,Q.jsxs)(J,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:[`Struct: `,e.capabilities.structuredOutput.mode]}),e.variants&&Object.keys(e.variants).length>0&&(0,Q.jsxs)(J,{variant:`secondary`,className:`text-[10px] px-1.5 py-0`,children:[Object.keys(e.variants).length,` variant`,Object.keys(e.variants).length===1?``:`s`]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>De(e),title:`Edit model`,children:(0,Q.jsx)(Mt,{className:`size-2.5`})}),(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>U({providerId:e.providerId,modelId:e.id}),title:`Delete model`,children:(0,Q.jsx)(gn,{className:`size-2.5`})})]})]},e.id)})})})]},e.id)})}),(0,Q.jsx)(el,{open:k!==null,onOpenChange:e=>{e||j(null)},title:`Delete Provider`,description:`Are you sure you want to delete "${k}"? All models under this provider will be removed.${t?.defaultProvider===k?` Warning: This is the current default provider.`:``}`,confirmLabel:`Delete`,variant:`destructive`,onConfirm:Te}),(0,Q.jsx)(el,{open:H!==null,onOpenChange:e=>{e||U(null)},title:`Delete Model`,description:`Are you sure you want to delete "${H?.modelId}"?${t?.defaultModel===H?.modelId&&t?.defaultProvider===H?.providerId?` Warning: This is the current default model.`:``}`,confirmLabel:`Delete`,variant:`destructive`,onConfirm:ke})]})}function ol({sdkClient:e}){let{data:t,isLoading:n}=l(e),r=F(e),i=Se(e),a=we(e),o=t?.prompts??[],[s,c]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(null),[f,p]=(0,Z.useState)(!1),[m,h]=(0,Z.useState)(``),[g,_]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(!1),[b,S]=(0,Z.useState)(null),C=()=>{p(!0),d(null),h(``),_(`# New Prompt
|
|
10
|
+
|
|
11
|
+
`)},w=e=>{d(e),p(!1),h(e.name),_(e.content)};return f||u?(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(X,{variant:`ghost`,size:`icon`,onClick:()=>{p(!1),d(null),h(``),_(``)},children:(0,Q.jsx)(ct,{className:`size-4`})}),(0,Q.jsx)(`h3`,{className:`text-sm font-medium`,children:f?`New Prompt`:`Edit: ${u?.name}`})]}),(0,Q.jsx)(X,{size:`sm`,onClick:async()=>{if(m.trim()){y(!0),c(null);try{f?await r.mutateAsync({name:m.trim(),content:g}):u&&await i.mutateAsync({name:u.name,body:{content:g}}),p(!1),d(null)}catch(e){c(e instanceof Error?e.message:`Failed to save prompt`)}finally{y(!1)}}},disabled:v||!m.trim(),children:v?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):`Save`})]}),s&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:s}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`text-sm font-medium mb-1 block`,children:`Name`}),(0,Q.jsx)(q,{value:m,onChange:e=>h(e.target.value),disabled:!f,placeholder:`prompt-name`,className:`font-mono`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`text-sm font-medium mb-1 block`,children:`Content (Markdown)`}),(0,Q.jsx)(`textarea`,{value:g,onChange:e=>_(e.target.value),className:`w-full h-48 sm:h-64 p-3 rounded-lg border bg-background font-mono text-sm resize-y`,placeholder:`# Prompt Title\\n\\nPrompt content here...`})]})]}):n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[o.length,` prompt`,o.length===1?``:`s`]}),(0,Q.jsxs)(X,{size:`sm`,onClick:C,children:[(0,Q.jsx)(xn,{className:`size-3`,"data-icon":`inline-start`}),`New Prompt`]})]}),s&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:s}),o.length===0?(0,Q.jsx)(`div`,{className:`text-center py-8 text-sm text-muted-foreground`,children:`No prompts yet. Create one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-2`,children:o.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center justify-between p-2.5 sm:p-3 rounded-lg border hover:bg-muted/50 cursor-pointer min-w-0 overflow-hidden`,onClick:()=>w(e),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3 min-w-0 flex-1`,children:[(0,Q.jsx)(dt,{className:`size-4 text-muted-foreground shrink-0 hidden sm:block`}),(0,Q.jsxs)(`div`,{className:`flex flex-col flex-1 min-w-0 gap-0.5 sm:gap-1 overflow-hidden`,children:[(0,Q.jsx)(`div`,{className:`text-sm font-medium truncate`,children:e.name}),e.description&&(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground line-clamp-1`,children:e.description})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5 sm:gap-1 shrink-0`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>w(e),title:`Edit prompt`,children:(0,Q.jsx)(Mt,{className:`size-3`})}),(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>S(e.name),title:`Delete prompt`,children:(0,Q.jsx)(gn,{className:`size-3`})})]})]},e.name))}),(0,Q.jsx)(el,{open:b!==null,onOpenChange:e=>{e||S(null)},title:`Delete Prompt`,description:`Are you sure you want to delete the prompt "${b}"? This cannot be undone.`,confirmLabel:`Delete`,variant:`destructive`,onConfirm:async()=>{if(b)try{await a.mutateAsync(b),S(null)}catch(e){c(e instanceof Error?e.message:`Failed to delete prompt`)}}})]})}var sl=[{value:`primary`,label:`Primary`},{value:`subagent`,label:`Subagent`},{value:`both`,label:`Both`}],cl={name:``,description:``,systemPrompt:``,mode:`primary`,model:``,provider:``,variant:``,tools:[],temperature:``,canSpawnSubagentsMode:`none`,canSpawnSubagentsList:[],skills:[],isDefault:!1};function ll({sdkClient:e}){let{data:t,isLoading:n}=L(e),{data:r}=E(e),i=j(e),a=v(e),o=N(e),c=t?.preconfigs??[],[l,u]=(0,Z.useState)(null),[d,f]=(0,Z.useState)(null),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(cl),[_,y]=(0,Z.useState)(!1),[b,S]=(0,Z.useState)(null),[,C]=(0,Z.useState)(!1),[w,T]=(0,Z.useState)([]),[D,O]=(0,Z.useState)(``),[k,A]=(0,Z.useState)(``),[M,P]=(0,Z.useState)(``),F=s(e=>e.models),[I,R]=(0,Z.useState)(!1),z=h.model?F.find(e=>e.id===h.model):null,B=z?.variants?Object.keys(z.variants):[],V=F.reduce((e,t)=>{let n=t.providerName||t.providerId;return e[n]||(e[n]=[]),e[n].push(t),e},{}),H=c.filter(e=>{let t=e.mode??`primary`,n=t===`subagent`||t===`both`,r=!d||e.id!==d.id;return n&&r});(0,Z.useEffect)(()=>{r?.tools&&T(r.tools)},[r]);let U=()=>{m(!0),f(null),g(cl),O(``),A(``),P(``),R(!1)},W=e=>{f(e),m(!1),g({name:e.name,description:e.description||``,systemPrompt:e.systemPrompt||``,mode:e.mode||`primary`,model:e.model||``,provider:e.provider||``,variant:e.variant||``,tools:e.tools??[],temperature:e.settings?.temperature==null?``:String(e.settings.temperature),canSpawnSubagentsMode:e.canSpawnSubagents===!0?`all`:e.canSpawnSubagents===!1||e.canSpawnSubagents===null||e.canSpawnSubagents===void 0?`none`:`specific`,canSpawnSubagentsList:Array.isArray(e.canSpawnSubagents)?e.canSpawnSubagents:[],skills:e.skills??[],isDefault:e.isDefault}),O(``),A(``),P(``)};return p||d?(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(X,{variant:`ghost`,size:`icon`,onClick:()=>{m(!1),f(null),g(cl),O(``),A(``),P(``),R(!1)},children:(0,Q.jsx)(ct,{className:`size-4`})}),(0,Q.jsx)(`h3`,{className:`text-sm font-medium`,children:p?`New Preconfig`:`Edit: ${d?.name}`})]}),(0,Q.jsx)(X,{size:`sm`,onClick:async()=>{if(h.name.trim()){y(!0),u(null);try{let e=null;if(h.temperature.trim()){let t=parseFloat(h.temperature);if(isNaN(t)||t<.1||t>.9){u(`Temperature must be between 0.1 and 0.9`),y(!1);return}e={temperature:t}}let t=null;t=h.canSpawnSubagentsMode===`all`?!0:h.canSpawnSubagentsMode===`specific`?h.canSpawnSubagentsList.length>0?h.canSpawnSubagentsList:[]:!1;let n={name:h.name.trim(),description:h.description.trim(),systemPrompt:h.systemPrompt,mode:h.mode,model:h.model.trim()||null,provider:h.provider.trim()||null,variant:h.variant.trim()||null,tools:h.tools.length>0?h.tools:null,settings:e,canSpawnSubagents:t,skills:h.skills.length>0?h.skills:null,isDefault:h.isDefault,format:`md`};p?await i.mutateAsync(n):d&&await a.mutateAsync({id:d.id,body:n}),m(!1),f(null)}catch(e){u(e instanceof Error?e.message:`Failed to save preconfig`)}finally{y(!1)}}},disabled:_||!h.name.trim(),children:_?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):`Save`})]}),l&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:l}),(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Name`}),(0,Q.jsx)(q,{value:h.name,onChange:e=>g({...h,name:e.target.value}),placeholder:`My Agent`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Description`}),(0,Q.jsx)(q,{value:h.description,onChange:e=>g({...h,description:e.target.value}),placeholder:`Description...`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Mode`}),(0,Q.jsx)(`select`,{value:h.mode,onChange:e=>g({...h,mode:e.target.value}),className:`w-full h-9 rounded-md border bg-background px-3 text-sm`,children:sl.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,Q.jsxs)(`div`,{className:`grid grid-cols-1 gap-3`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Model`}),(0,Q.jsxs)(pn,{open:I,onOpenChange:R,children:[(0,Q.jsx)(sn,{asChild:!0,children:(0,Q.jsxs)(X,{variant:`outline`,role:`combobox`,"aria-expanded":I,className:`w-full justify-between font-mono text-sm h-9`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 truncate`,children:[(0,Q.jsx)(pt,{className:`size-4 shrink-0 text-muted-foreground`}),z?(0,Q.jsx)(`span`,{className:`truncate`,children:z.name}):(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`Use server default`})]}),(0,Q.jsx)(un,{className:`size-3 shrink-0 opacity-50`})]})}),(0,Q.jsx)(dn,{className:`w-[280px] p-0`,align:`start`,children:(0,Q.jsxs)(nn,{children:[(0,Q.jsx)(rn,{placeholder:`Search models...`}),(0,Q.jsxs)(mn,{className:`max-h-[50vh] overflow-y-auto`,children:[(0,Q.jsx)(ln,{children:`No model found.`}),(0,Q.jsx)(fn,{children:(0,Q.jsxs)(cn,{onSelect:()=>{g(e=>({...e,model:``,provider:``,variant:``})),R(!1)},className:`justify-between`,children:[(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`Use server default`}),!h.model&&(0,Q.jsx)(G,{className:`size-4`})]})}),Object.entries(V).map(([e,t])=>(0,Q.jsx)(fn,{heading:e,children:t.map(e=>(0,Q.jsxs)(cn,{value:`${e.name} ${e.id}`,onSelect:()=>{g(t=>({...t,model:e.id,provider:e.providerId,variant:``})),R(!1)},className:`justify-between`,children:[(0,Q.jsx)(`span`,{className:`truncate`,children:e.name}),(0,Q.jsx)(G,{className:Rn(`size-4 shrink-0`,h.model===e.id?`opacity-100`:`opacity-0`)})]},e.id))},e))]})]})})]}),(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Provider is set automatically based on the selected model`})]}),B.length>0&&(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Variant`}),(0,Q.jsxs)(`select`,{value:h.variant,onChange:e=>g(t=>({...t,variant:e.target.value})),className:`w-full h-9 rounded-md border bg-background px-3 text-sm`,children:[(0,Q.jsx)(`option`,{value:``,children:`Default`}),B.map(e=>(0,Q.jsx)(`option`,{value:e,children:e},e))]}),(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground mt-1`,children:`Model variant from models.json (e.g., reasoning effort)`})]})]}),(0,Q.jsx)(ze,{className:`my-1`}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Default Preconfig`}),(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Only one preconfig can be the default`})]}),(0,Q.jsx)(Qt,{checked:h.isDefault,onCheckedChange:e=>g({...h,isDefault:e})})]}),(0,Q.jsx)(ze,{className:`my-1`}),(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Tools`}),(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:h.tools.length===0?`No tools selected — all available tools will be enabled`:`${h.tools.length} tool${h.tools.length===1?``:`s`} selected`}),w.length>0&&(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:w.map(e=>{let t=h.tools.includes(e.name);return(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>{g(n=>({...n,tools:t?n.tools.filter(t=>t!==e.name):[...n.tools,e.name]}))},className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-xs border transition-colors ${t?`bg-primary text-primary-foreground border-primary`:`bg-background border-border hover:bg-muted`}`,title:e.description,children:[t&&(0,Q.jsx)(G,{className:`size-2.5`}),e.name]},e.name)})}),(0,Q.jsx)(`div`,{className:`flex gap-1.5`,children:(0,Q.jsx)(q,{value:D,onChange:e=>O(e.target.value),placeholder:`Add custom tool ID...`,className:`h-7 text-xs font-mono`,onKeyDown:e=>{if(e.key===`Enter`&&D.trim()){e.preventDefault();let t=D.trim();h.tools.includes(t)||g(e=>({...e,tools:[...e.tools,t]})),O(``)}}})}),h.tools.filter(e=>!w.some(t=>t.name===e)).length>0&&(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:h.tools.filter(e=>!w.some(t=>t.name===e)).map(e=>(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-xs bg-primary/10 border border-primary/30`,children:[e,(0,Q.jsx)(`button`,{type:`button`,onClick:()=>g(t=>({...t,tools:t.tools.filter(t=>t!==e)})),className:`hover:text-destructive`,children:(0,Q.jsx)(Hn,{className:`size-2.5`})})]},e))})]}),(0,Q.jsx)(ze,{className:`my-1`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Temperature`}),(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Model sampling temperature (0.1–0.9). Leave empty to use server default.`}),(0,Q.jsx)(q,{type:`number`,value:h.temperature,onChange:e=>g({...h,temperature:e.target.value}),placeholder:`0.2`,min:`0.1`,max:`0.9`,step:`0.1`,className:`font-mono`})]}),(0,Q.jsx)(ze,{className:`my-1`}),(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Can Spawn Subagents`}),(0,Q.jsxs)(`select`,{value:h.canSpawnSubagentsMode,onChange:e=>g({...h,canSpawnSubagentsMode:e.target.value}),className:`w-full h-9 rounded-md border bg-background px-3 text-sm`,children:[(0,Q.jsx)(`option`,{value:`none`,children:`No — cannot spawn subagents`}),(0,Q.jsx)(`option`,{value:`all`,children:`Yes — all available subagents`}),(0,Q.jsx)(`option`,{value:`specific`,children:`Specific — choose which subagents`})]}),h.canSpawnSubagentsMode===`specific`&&(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Select from available subagents or enter a preconfig ID manually`}),H.length>0&&(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:H.map(e=>{let t=h.canSpawnSubagentsList.includes(e.id);return(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>{g(n=>({...n,canSpawnSubagentsList:t?n.canSpawnSubagentsList.filter(t=>t!==e.id):[...n.canSpawnSubagentsList,e.id]}))},className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-xs border transition-colors ${t?`bg-primary text-primary-foreground border-primary`:`bg-background border-border hover:bg-muted`}`,title:e.description||e.id,children:[t&&(0,Q.jsx)(G,{className:`size-2.5`}),e.name]},e.id)})}),(0,Q.jsx)(`div`,{className:`flex gap-1.5`,children:(0,Q.jsx)(q,{value:k,onChange:e=>A(e.target.value),placeholder:`Preconfig ID...`,className:`h-7 text-xs font-mono`,onKeyDown:e=>{if(e.key===`Enter`&&k.trim()){e.preventDefault();let t=k.trim();h.canSpawnSubagentsList.includes(t)||g(e=>({...e,canSpawnSubagentsList:[...e.canSpawnSubagentsList,t]})),A(``)}}})}),h.canSpawnSubagentsList.filter(e=>!H.some(t=>t.id===e)).length>0&&(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:h.canSpawnSubagentsList.filter(e=>!H.some(t=>t.id===e)).map(e=>(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-xs bg-primary/10 border border-primary/30 font-mono`,children:[e,(0,Q.jsx)(`button`,{type:`button`,onClick:()=>g(t=>({...t,canSpawnSubagentsList:t.canSpawnSubagentsList.filter(t=>t!==e)})),className:`hover:text-destructive`,children:(0,Q.jsx)(Hn,{className:`size-2.5`})})]},e))})]})]}),(0,Q.jsx)(ze,{className:`my-1`}),(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`Skills`}),(0,Q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:h.skills.length===0?`No skills selected — all available skills will be enabled`:`${h.skills.length} skill${h.skills.length===1?``:`s`} selected`}),(0,Q.jsx)(`div`,{className:`flex gap-1.5`,children:(0,Q.jsx)(q,{value:M,onChange:e=>P(e.target.value),placeholder:`Skill name...`,className:`h-7 text-xs font-mono`,onKeyDown:e=>{if(e.key===`Enter`&&M.trim()){e.preventDefault();let t=M.trim();h.skills.includes(t)||g(e=>({...e,skills:[...e.skills,t]})),P(``)}}})}),h.skills.length>0&&(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:h.skills.map(e=>(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-xs bg-primary/10 border border-primary/30`,children:[e,(0,Q.jsx)(`button`,{type:`button`,onClick:()=>g(t=>({...t,skills:t.skills.filter(t=>t!==e)})),className:`hover:text-destructive`,children:(0,Q.jsx)(Hn,{className:`size-2.5`})})]},e))})]}),(0,Q.jsx)(ze,{className:`my-1`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm`,children:`System Prompt`}),(0,Q.jsx)(`textarea`,{value:h.systemPrompt,onChange:e=>g({...h,systemPrompt:e.target.value}),className:`w-full h-48 p-3 rounded-lg border bg-background text-sm resize-y`,placeholder:`System prompt content...`})]})]})]}):n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[c.length,` preconfig`,c.length===1?``:`s`]}),(0,Q.jsxs)(X,{size:`sm`,onClick:U,children:[(0,Q.jsx)(xn,{className:`size-3`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`New Preconfig`})]})]}),l&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:l}),c.length===0?(0,Q.jsx)(`div`,{className:`text-center py-8 text-sm text-muted-foreground`,children:`No preconfigs yet. Create one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-2`,children:c.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center justify-between p-2.5 sm:p-3 rounded-lg border hover:bg-muted/50 cursor-pointer`,onClick:()=>W(e),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3 flex-1 min-w-0`,children:[(0,Q.jsx)(br,{className:`size-4 text-muted-foreground shrink-0 hidden sm:block`}),(0,Q.jsxs)(`div`,{className:`flex flex-col flex-1 min-w-0 gap-0.5 sm:gap-1 overflow-hidden`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 sm:gap-2 min-w-0`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.name}),e.isDefault&&(0,Q.jsxs)(J,{variant:`default`,className:`text-[10px] px-1 sm:px-1.5 py-0`,children:[(0,Q.jsx)(Wn,{className:`size-2.5 sm:mr-0.5`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Default`})]}),e.mode&&e.mode!==`primary`&&(0,Q.jsxs)(J,{variant:`secondary`,className:`text-[10px] px-1 sm:px-1.5 py-0`,children:[(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:e.mode}),(0,Q.jsx)(`span`,{className:`sm:hidden`,children:e.mode===`subagent`?`SA`:`B`})]})]}),e.description&&(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground line-clamp-1`,children:e.description})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5 sm:gap-1 shrink-0`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>W(e),title:`Edit preconfig`,children:(0,Q.jsx)(Mt,{className:`size-3`})}),!e.isDefault&&(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>S(e.id),title:`Delete preconfig`,children:(0,Q.jsx)(gn,{className:`size-3`})})]})]},e.id))}),(0,Q.jsx)(el,{open:b!==null,onOpenChange:e=>{e||S(null)},title:`Delete Preconfig`,description:`Are you sure you want to delete this preconfig? This cannot be undone.`,confirmLabel:`Delete`,variant:`destructive`,onConfirm:async()=>{if(b){C(!0);try{await o.mutateAsync(b),S(null)}catch(e){u(e instanceof Error?e.message:`Failed to delete preconfig`)}finally{C(!1)}}}})]})}var ul=[{value:`string`,label:`Text`},{value:`number`,label:`Number`},{value:`boolean`,label:`Yes / No`},{value:`array`,label:`List`},{value:`object`,label:`Object`}],dl=0;function fl(){return dl+=1,`f${dl}`}function pl(e=`string`,t=``){return{id:fl(),name:t,type:e,description:``,required:!1,...e===`object`?{children:[]}:{},...e===`array`?{items:pl(`string`)}:{}}}function ml(e){let t={},n=[],r=new Set;for(let i of e){if(!i.name)continue;let e=i.name,a=2;for(;r.has(e);)e=`${i.name}_${a}`,a+=1;r.add(e),t[e]=hl(i),i.required&&n.push(e)}return{properties:t,required:n}}function hl(e){let t={type:e.type};if(e.description.trim()&&(t.description=e.description.trim()),e.type===`object`&&e.children){let n=ml(e.children);t.properties=n.properties,t.required=n.required,t.additionalProperties=!1}return e.type===`array`&&e.items&&(t.items=hl(e.items)),t}function gl(e){let{properties:t,required:n}=ml(e);return{type:`object`,properties:t,required:n,additionalProperties:!1}}function _l(e,t){let n=t.type,r=ul.some(e=>e.value===n)?n:`string`,i={id:fl(),name:e,type:r,description:t.description??``,required:!1};if(r===`object`){let e=t.properties??{},n=new Set(t.required??[]);i.children=Object.entries(e).map(([e,t])=>{let r=_l(e,t);return r.required=n.has(e),r})}if(r===`array`&&t.items&&typeof t.items==`object`){let e=t.items;i.items=_l(``,e)}return i}function vl(e){let t=e.properties??{},n=new Set(e.required??[]);return Object.entries(t).map(([e,t])=>{let r=_l(e,t);return r.required=n.has(e),r})}function yl(e){return!e||typeof e!=`object`?{valid:!1,error:`Schema must be a JSON object`}:e.type===`object`?{valid:!0}:{valid:!1,error:`Schema must have "type": "object"`}}function bl(e,t,n){let[r,...i]=t;return e.map((e,t)=>{if(t!==r)return e;if(i.length===0)return n(e);let[a,...o]=i;return e.type===`array`&&e.items&&a===-1?{...e,items:xl(e.items,o,n)}:e.type===`object`&&e.children?{...e,children:bl(e.children,i,n)}:e})}function xl(e,t,n){if(t.length===0)return n(e);let[r,...i]=t;return e.type===`object`&&e.children?{...e,children:bl(e.children,[r,...i],n)}:e.type===`array`&&e.items&&r===-1?{...e,items:xl(e.items,i,n)}:e}function Sl(e,t){let[n,...r]=t;return r.length===0?e.filter((e,t)=>t!==n):e.map((e,t)=>{if(t!==n)return e;let[i,...a]=r;return e.type===`array`&&e.items&&i===-1?e:e.type===`object`&&e.children?{...e,children:Sl(e.children,r)}:e})}function Cl(e,t,n){return e.map((e,r)=>{if(r!==t[0])return e;if(t.length===1){let t=[...e.children??[],n];return{...e,children:t}}let[i,...a]=t.slice(1);if(e.type===`array`&&e.items&&i===-1){let t=e.items;return t.type===`object`?{...e,items:{...t,children:[...t.children??[],n]}}:e}return e.type===`object`&&e.children?{...e,children:Cl(e.children,a,n)}:e})}function wl(e){let t=(0,$.c)(64),{field:n,path:r,onChange:i,onRemove:a,onAddChild:o,depth:s}=e,[c,l]=(0,Z.useState)(!0),u=n.type===`object`||n.type===`array`,d;t[0]!==i||t[1]!==r?(d=e=>{i(r,t=>{let n={...t,type:e};return e===`object`?(n.children||=[],delete n.items):e===`array`?(n.items||=pl(`string`),delete n.children):(delete n.children,delete n.items),n}),(e===`object`||e===`array`)&&l(!0)},t[0]=i,t[1]=r,t[2]=d):d=t[2];let f=d,p;t[3]===r?p=t[4]:(p=[...r,-1],t[3]=r,t[4]=p);let m=p,h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Q.jsx)(_r,{className:`size-4 text-muted-foreground mt-2 shrink-0`}),t[5]=h):h=t[5];let g;t[6]!==i||t[7]!==r?(g=e=>i(r,t=>({...t,name:e.target.value.replace(/\s+/g,`_`).replace(/[^a-zA-Z0-9_]/g,``)})),t[6]=i,t[7]=r,t[8]=g):g=t[8];let _;t[9]!==n.name||t[10]!==g?(_=(0,Q.jsx)(q,{value:n.name,onChange:g,placeholder:`field_name`,className:`font-mono text-xs h-8`}),t[9]=n.name,t[10]=g,t[11]=_):_=t[11];let v;t[12]===f?v=t[13]:(v=e=>f(e),t[12]=f,t[13]=v);let y;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Q.jsx)(hc,{className:`w-28 h-8 text-xs`,children:(0,Q.jsx)(mc,{})}),t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsx)(gc,{children:ul.map(Tl)}),t[15]=b):b=t[15];let x;t[16]!==n.type||t[17]!==v?(x=(0,Q.jsxs)(pc,{value:n.type,onValueChange:v,children:[y,b]}),t[16]=n.type,t[17]=v,t[18]=x):x=t[18];let S;t[19]!==_||t[20]!==x?(S=(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[_,x]}),t[19]=_,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==i||t[23]!==r?(C=e=>i(r,t=>({...t,description:e.target.value})),t[22]=i,t[23]=r,t[24]=C):C=t[24];let w;t[25]!==n.description||t[26]!==C?(w=(0,Q.jsx)(q,{value:n.description,onChange:C,placeholder:`Description (optional)`,className:`text-xs h-7 flex-1`}),t[25]=n.description,t[26]=C,t[27]=w):w=t[27];let T;t[28]!==i||t[29]!==r?(T=e=>i(r,t=>({...t,required:e})),t[28]=i,t[29]=r,t[30]=T):T=t[30];let E;t[31]!==n.required||t[32]!==T?(E=(0,Q.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground shrink-0 cursor-pointer`,children:[(0,Q.jsx)(Qt,{checked:n.required,onCheckedChange:T,className:`scale-75`}),`Required`]}),t[31]=n.required,t[32]=T,t[33]=E):E=t[33];let D;t[34]!==w||t[35]!==E?(D=(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[w,E]}),t[34]=w,t[35]=E,t[36]=D):D=t[36];let O;t[37]!==S||t[38]!==D?(O=(0,Q.jsxs)(`div`,{className:`flex-1 space-y-2 min-w-0`,children:[S,D]}),t[37]=S,t[38]=D,t[39]=O):O=t[39];let k;t[40]!==a||t[41]!==r?(k=()=>a(r),t[40]=a,t[41]=r,t[42]=k):k=t[42];let A;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Q.jsx)(gn,{className:`size-3`}),t[43]=A):A=t[43];let j;t[44]===k?j=t[45]:(j=(0,Q.jsx)(X,{variant:`ghost`,size:`icon-xs`,className:`mt-1.5 shrink-0 text-muted-foreground hover:text-destructive`,onClick:k,children:A}),t[44]=k,t[45]=j);let M;t[46]!==O||t[47]!==j?(M=(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 p-2.5 rounded-lg border bg-background`,children:[h,O,j]}),t[46]=O,t[47]=j,t[48]=M):M=t[48];let N;t[49]!==s||t[50]!==c||t[51]!==n.children||t[52]!==n.items||t[53]!==n.type||t[54]!==u||t[55]!==m||t[56]!==o||t[57]!==i||t[58]!==a||t[59]!==r?(N=u&&(0,Q.jsxs)(`div`,{className:`ml-3 sm:ml-4 border-l-2 border-border pl-2 sm:pl-3`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mb-1.5`,onClick:()=>l(!c),children:[(0,Q.jsx)(le,{className:`size-3 transition-transform ${c?`rotate-90`:``}`}),n.type===`object`?`Object properties (${n.children?.length??0})`:`List item type: ${n.items?.type??`string`}`]}),c&&n.type===`object`&&(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(n.children?.length??0)===0&&(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground text-center py-3 border rounded-lg border-dashed`,children:`No properties. Add one below.`}),n.children?.map((e,t)=>(0,Q.jsx)(wl,{field:e,path:[...r,t],onChange:i,onRemove:a,onAddChild:o,depth:s+1},e.id)),(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,className:`w-full`,onClick:()=>o(r,pl(`string`,`field_${(n.children?.length??0)+1}`)),children:[(0,Q.jsx)(xn,{className:`size-3`,"data-icon":`inline-start`}),`Add Property`]})]}),c&&n.type===`array`&&n.items&&(0,Q.jsx)(El,{itemsField:n.items,itemsPath:m,onChange:i,onAddChild:o,depth:s+1})]}),t[49]=s,t[50]=c,t[51]=n.children,t[52]=n.items,t[53]=n.type,t[54]=u,t[55]=m,t[56]=o,t[57]=i,t[58]=a,t[59]=r,t[60]=N):N=t[60];let P;return t[61]!==M||t[62]!==N?(P=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[M,N]}),t[61]=M,t[62]=N,t[63]=P):P=t[63],P}function Tl(e){return(0,Q.jsx)(_c,{value:e.value,children:e.label},e.value)}function El(e){let t=(0,$.c)(29),{itemsField:n,itemsPath:r,onChange:i,onAddChild:a,depth:o}=e,s;t[0]!==r||t[1]!==i?(s=e=>{i(r,t=>{let n={...t,type:e};return e===`object`?(n.children||=[],delete n.items):e===`array`?(n.items||=pl(`string`),delete n.children):(delete n.children,delete n.items),n})},t[0]=r,t[1]=i,t[2]=s):s=t[2];let c=s,l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(`span`,{className:`text-xs text-muted-foreground shrink-0`,children:`Each list item is:`}),t[3]=l):l=t[3];let u;t[4]===c?u=t[5]:(u=e=>c(e),t[4]=c,t[5]=u);let d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(hc,{className:`w-28 h-7 text-xs`,children:(0,Q.jsx)(mc,{})}),t[6]=d):d=t[6];let f;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(gc,{children:ul.map(Dl)}),t[7]=f):f=t[7];let p;t[8]!==n.type||t[9]!==u?(p=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg border border-dashed bg-muted/30`,children:[l,(0,Q.jsxs)(pc,{value:n.type,onValueChange:u,children:[d,f]})]}),t[8]=n.type,t[9]=u,t[10]=p):p=t[10];let m;t[11]!==o||t[12]!==n.children||t[13]!==n.type||t[14]!==r||t[15]!==a||t[16]!==i?(m=n.type===`object`&&(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(n.children?.length??0)===0&&(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground text-center py-3 border rounded-lg border-dashed`,children:`No properties. Add one below.`}),n.children?.map((e,t)=>(0,Q.jsx)(wl,{field:e,path:[...r,t],onChange:i,onRemove:Ol,onAddChild:a,depth:o+1},e.id)),(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,className:`w-full`,onClick:()=>a(r,pl(`string`,`field_${(n.children?.length??0)+1}`)),children:[(0,Q.jsx)(xn,{className:`size-3`,"data-icon":`inline-start`}),`Add Property`]})]}),t[11]=o,t[12]=n.children,t[13]=n.type,t[14]=r,t[15]=a,t[16]=i,t[17]=m):m=t[17];let h;t[18]!==o||t[19]!==n.items||t[20]!==n.type||t[21]!==r||t[22]!==a||t[23]!==i?(h=n.type===`array`&&n.items&&(0,Q.jsx)(El,{itemsField:n.items,itemsPath:[...r,-1],onChange:i,onAddChild:a,depth:o+1}),t[18]=o,t[19]=n.items,t[20]=n.type,t[21]=r,t[22]=a,t[23]=i,t[24]=h):h=t[24];let g;return t[25]!==p||t[26]!==m||t[27]!==h?(g=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[p,m,h]}),t[25]=p,t[26]=m,t[27]=h,t[28]=g):g=t[28],g}function Dl(e){return(0,Q.jsx)(_c,{value:e.value,children:e.label},e.value)}function Ol(e){}function kl({sdkClient:e}){let{data:t,isLoading:n}=Ee(e),r=Fe(e),i=Re(e),a=he(e),o=t?.formats??[],[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(null),[d,f]=(0,Z.useState)(!1),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(``),[w,T]=(0,Z.useState)(null),[E,D]=(0,Z.useState)([]),[O,k]=(0,Z.useState)(null),A=()=>{f(!0),u(null),m(``),g(``),b(!1),D([]),C(JSON.stringify({type:`object`,properties:{},required:[],additionalProperties:!1},null,2)),T(null),c(null)},j=e=>{u(e),f(!1),m(e.name),g(e.description??``),b(!1),D(vl(e.schema)),C(JSON.stringify(e.schema,null,2)),T(null),c(null)},M=(0,Z.useCallback)(e=>{let t=gl(e);C(JSON.stringify(t,null,2)),T(null)},[]),N=(0,Z.useCallback)(e=>{try{let t=JSON.parse(e);t&&typeof t==`object`&&t.type===`object`&&t.properties&&typeof t.properties==`object`?(D(vl(t)),T(null)):T(`Schema must have "type": "object" with "properties"`)}catch(e){T(e instanceof Error?e.message:`Invalid JSON`)}},[]),P=(e,t)=>{D(n=>{let r=bl(n,e,t);return M(r),r})},F=e=>{D(t=>{let n=Sl(t,e);return M(n),n})},I=()=>{D(e=>{let t=[...e,pl(`string`,`field_${e.length+1}`)];return M(t),t})},L=(e,t)=>{D(n=>{let r=e.length===0?[...n,t]:Cl(n,e,t);return M(r),r})},R=e=>{C(e),N(e)};return d||l?(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(X,{variant:`ghost`,size:`icon`,onClick:()=>{f(!1),u(null),m(``),g(``),C(``),D([]),T(null)},children:(0,Q.jsx)(ct,{className:`size-4`})}),(0,Q.jsx)(`h3`,{className:`text-sm font-medium`,children:d?`New Response Format`:`Edit: ${l?.name}`})]}),(0,Q.jsx)(X,{size:`sm`,onClick:async()=>{if(!p.trim())return;let e;try{e=JSON.parse(S)}catch{T(`Invalid JSON - please fix before saving`);return}let t=yl(e);if(!t.valid){T(t.error??null);return}v(!0),c(null);try{d?await r.mutateAsync({name:p.trim(),schema:e,...h.trim()?{description:h.trim()}:{}}):l&&await i.mutateAsync({id:l.id,body:{name:p.trim(),schema:e,...h.trim()?{description:h.trim()}:{}}}),f(!1),u(null)}catch(e){c(e instanceof Error?e.message:`Failed to save`)}finally{v(!1)}},disabled:_||!p.trim(),children:_?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):`Save`})]}),s&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:s}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`text-sm font-medium mb-1 block`,children:`Name`}),(0,Q.jsx)(q,{value:p,onChange:e=>m(e.target.value),placeholder:`My Format`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`text-sm font-medium mb-1 block`,children:`Description`}),(0,Q.jsx)(q,{value:h,onChange:e=>g(e.target.value),placeholder:`What this format is used for`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,Q.jsx)(`label`,{className:`text-sm font-medium`,children:`Fields`}),(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Q.jsxs)(X,{variant:`ghost`,size:`sm`,className:`h-6 gap-1.5 text-xs px-2`,onClick:()=>b(!y),children:[y?(0,Q.jsx)(Ot,{className:`size-3`}):(0,Q.jsx)(dr,{className:`size-3`}),y?`Visual`:`Raw JSON`]})})]}),y?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`textarea`,{value:S,onChange:e=>R(e.target.value),className:`w-full h-64 p-3 rounded-lg border font-mono text-sm resize-y ${w?`border-destructive bg-destructive/5`:`bg-background`}`,placeholder:`{ "type": "object", "properties": {...} }`}),w&&(0,Q.jsx)(`p`,{className:`text-xs text-destructive mt-1`,children:w})]}):(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[E.length===0&&(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground text-center py-6 border rounded-lg border-dashed`,children:`No fields yet. Add one below.`}),E.map((e,t)=>(0,Q.jsx)(wl,{field:e,path:[t],onChange:P,onRemove:F,onAddChild:L,depth:0},e.id)),(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,className:`w-full mt-1`,onClick:I,children:[(0,Q.jsx)(xn,{className:`size-3`,"data-icon":`inline-start`}),`Add Field`]})]})]})]}):n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[o.length,` format`,o.length===1?``:`s`]}),(0,Q.jsxs)(X,{size:`sm`,onClick:A,children:[(0,Q.jsx)(xn,{className:`size-3`,"data-icon":`inline-start`}),`New Format`]})]}),s&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:s}),o.length===0?(0,Q.jsx)(`div`,{className:`text-center py-8 text-sm text-muted-foreground`,children:`No response formats yet. Create one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-2`,children:o.map(e=>{let t=Object.keys(e.schema?.properties?e.schema.properties:{}).length;return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between p-2.5 sm:p-3 rounded-lg border hover:bg-muted/50 cursor-pointer min-w-0 overflow-hidden`,onClick:()=>j(e),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3 min-w-0 flex-1`,children:[(0,Q.jsx)(kt,{className:`size-4 text-muted-foreground shrink-0 hidden sm:block`}),(0,Q.jsxs)(`div`,{className:`flex flex-col flex-1 min-w-0 gap-0.5 sm:gap-1 overflow-hidden`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.name}),e.description&&(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground line-clamp-1`,children:e.description}),(0,Q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[t,` propert`,t===1?`y`:`ies`]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5 sm:gap-1 shrink-0`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>j(e),title:`Edit format`,children:(0,Q.jsx)(Mt,{className:`size-3`})}),(0,Q.jsx)(X,{size:`icon-xs`,variant:`ghost`,onClick:()=>k({id:e.id,name:e.name}),title:`Delete format`,children:(0,Q.jsx)(gn,{className:`size-3`})})]})]},e.id)})}),(0,Q.jsx)(el,{open:O!==null,onOpenChange:e=>{e||k(null)},title:`Delete Response Format`,description:`Are you sure you want to delete "${O?.name}"? This cannot be undone.`,confirmLabel:`Delete`,variant:`destructive`,onConfirm:async()=>{if(O)try{await a.mutateAsync(O.id),k(null)}catch(e){c(e instanceof Error?e.message:`Failed to delete`)}}})]})}var Al={preset:Or,custom:qt};function jl(e){let t=new Map;for(let n of e){let e;e=n.source===`preset`&&n.category?n.category:n.source===`custom`?`Custom`:`Other`;let r=t.get(e)||[];r.push(n),t.set(e,r)}let n={},r=0,i=[];for(let t of e)t.source===`preset`&&t.category&&!(t.category in n)&&(n[t.category]=r,r++);n.Custom=r;for(let[e,n]of t)i.push({label:e,source:n[0]?.source??`custom`,vars:n});return i.sort((e,t)=>(n[e.label]??99)-(n[t.label]??99)),i}function Ml({sdkClient:e}){let{data:t,isLoading:n}=O(e),r=Me(e),i=b(e),a=(t?.envVars??[]).filter(e=>e.source!==`tool`),[o,s]=(0,Z.useState)(null),[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(!1),[m,h]=(0,Z.useState)(null),[g,_]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(``),[w,T]=(0,Z.useState)(``),[E,D]=(0,Z.useState)(!1),[k,A]=(0,Z.useState)(new Set),j=(0,Z.useMemo)(()=>{if(!g.trim())return a;let e=g.toLowerCase();return a.filter(t=>t.key.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e)||t.category?.toLowerCase().includes(e))},[a,g]),M=(0,Z.useMemo)(()=>jl(j),[j]),N=a.filter(e=>e.configured).length,P=e=>{A(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},F=async e=>{if(u.trim()){h(e);try{await r.mutateAsync({key:e,value:u.trim()}),l(null),d(``),p(!1)}catch(e){s(e instanceof Error?e.message:`Failed to set env var`)}finally{h(null)}}},I=async e=>{h(e);try{await i.mutateAsync(e)}catch(e){s(e instanceof Error?e.message:`Failed to clear env var`)}finally{h(null)}},L=async()=>{let e=S.trim(),t=w.trim();if(!(!e||!t)){if(!/^[A-Z][A-Z0-9_]*$/.test(e)){s(`Variable key must be UPPERCASE_LETTERS with underscores (e.g. MY_CUSTOM_KEY)`);return}h(`__new__`);try{await r.mutateAsync({key:e,value:t}),C(``),T(``),D(!1),y(!1),s(null)}catch(e){s(e instanceof Error?e.message:`Failed to add env var`)}finally{h(null)}}};return n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Manage environment variables for integrations. Values are stored in`,` `,(0,Q.jsx)(`code`,{className:`text-xs bg-muted px-1 py-0.5 rounded`,children:`~/.jean2/.env`}),` and applied at runtime.`]}),a.length>0&&(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[N,` of `,a.length,` configured`]})]}),o&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 rounded bg-destructive/10 text-sm text-destructive`,children:[(0,Q.jsx)(`span`,{className:`break-words`,children:o}),(0,Q.jsx)(X,{variant:`ghost`,size:`sm`,onClick:()=>s(null),className:`shrink-0 h-6 px-2`,children:(0,Q.jsx)(Hn,{className:`size-3`})})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Q.jsx)(oe,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,Q.jsx)(q,{value:g,onChange:e=>_(e.target.value),placeholder:`Filter variables...`,className:`h-8 pl-8 text-sm`})]}),(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,className:`h-8 shrink-0`,onClick:()=>y(!v),children:[(0,Q.jsx)(xn,{className:`size-3.5`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Add`})]})]}),v&&(0,Q.jsxs)(`div`,{className:`rounded-lg border border-dashed p-3 space-y-2 bg-muted/30`,children:[(0,Q.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:`Add custom environment variable`}),(0,Q.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-2`,children:[(0,Q.jsx)(q,{value:S,onChange:e=>C(e.target.value.toUpperCase()),placeholder:`MY_CUSTOM_KEY`,className:`h-8 text-sm font-mono flex-1`,onKeyDown:e=>e.key===`Enter`&&L(),autoFocus:!0}),(0,Q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Q.jsx)(q,{type:E?`text`:`password`,value:w,onChange:e=>T(e.target.value),placeholder:`Value...`,className:`h-8 text-sm pr-8`,onKeyDown:e=>e.key===`Enter`&&L()}),(0,Q.jsx)(X,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute right-0 top-0 h-8 w-8`,onClick:()=>D(!E),children:E?(0,Q.jsx)(fr,{className:`size-3`}):(0,Q.jsx)(Ot,{className:`size-3`})})]}),(0,Q.jsxs)(X,{size:`sm`,className:`h-8`,onClick:L,disabled:!S.trim()||!w.trim()||m===`__new__`,children:[m===`__new__`?(0,Q.jsx)(x,{className:`size-3.5 animate-spin`}):(0,Q.jsx)(G,{className:`size-3.5`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Save`})]}),(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,className:`h-8`,onClick:()=>{y(!1),C(``),T(``)},children:(0,Q.jsx)(Hn,{className:`size-3.5`})})]})]}),M.length===0?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center gap-2`,children:[(0,Q.jsx)(qt,{className:`size-8 text-muted-foreground/50`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:a.length===0?`No environment variables yet. Add one below.`:`No variables match your filter.`})]}):(0,Q.jsx)(`div`,{className:`space-y-3`,children:M.map(e=>{let t=Al[e.source]??qt,n=k.has(e.label),r=e.vars.filter(e=>e.configured).length;return(0,Q.jsx)(ce,{open:!n,onOpenChange:()=>P(e.label),children:(0,Q.jsxs)(`div`,{className:`rounded-lg border overflow-hidden`,children:[(0,Q.jsxs)(ue,{className:`w-full flex items-center justify-between p-2.5 hover:bg-muted/50 transition-colors`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Q.jsx)(t,{className:`size-4 text-muted-foreground shrink-0`}),(0,Q.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.label}),(0,Q.jsxs)(J,{variant:`secondary`,className:`text-xs shrink-0`,children:[r,`/`,e.vars.length]})]}),(0,Q.jsx)(lt,{className:`size-4 text-muted-foreground shrink-0 transition-transform ${n?``:`rotate-180`}`})]}),(0,Q.jsx)(se,{children:(0,Q.jsx)(`div`,{className:`divide-y border-t`,children:e.vars.map(e=>(0,Q.jsx)(Nl,{envVar:e,isEditing:c===e.key,valueInput:u,showValue:f,actionLoading:m,onEdit:()=>{l(e.key),d(``),p(!1)},onCancelEdit:()=>{l(null),d(``)},onValueChange:d,onToggleShowValue:()=>p(!f),onSetValue:()=>F(e.key),onClearValue:()=>I(e.key)},e.key))})})]})},e.label)})})]})}function Nl(e){let t=(0,$.c)(42),{envVar:n,isEditing:r,valueInput:i,showValue:a,actionLoading:o,onEdit:s,onCancelEdit:c,onValueChange:l,onToggleShowValue:u,onSetValue:d,onClearValue:f}=e,p;t[0]===n.key?p=t[1]:(p=(0,Q.jsx)(`code`,{className:`text-sm font-medium break-all`,children:n.key}),t[0]=n.key,t[1]=p);let m=n.configured?`default`:`secondary`,h=n.configured?`Configured`:`Not set`,g;t[2]!==m||t[3]!==h?(g=(0,Q.jsx)(J,{variant:m,children:h}),t[2]=m,t[3]=h,t[4]=g):g=t[4];let _;t[5]===n.sensitive?_=t[6]:(_=n.sensitive&&(0,Q.jsx)(J,{variant:`outline`,className:`text-xs`,children:`Sensitive`}),t[5]=n.sensitive,t[6]=_);let v;t[7]!==p||t[8]!==g||t[9]!==_?(v=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[p,g,_]}),t[7]=p,t[8]=g,t[9]=_,t[10]=v):v=t[10];let y;t[11]===n.description?y=t[12]:(y=n.description&&(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n.description}),t[11]=n.description,t[12]=y);let b;t[13]===n.link?b=t[14]:(b=n.link&&(0,Q.jsxs)(`a`,{href:n.link.url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-xs text-primary hover:underline`,children:[n.link.label,(0,Q.jsx)(jt,{className:`size-3`})]}),t[13]=n.link,t[14]=b);let S;t[15]!==n.configured||t[16]!==n.sensitive||t[17]!==n.value?(S=n.configured&&!n.sensitive&&n.value&&(0,Q.jsxs)(`p`,{className:`text-xs font-mono text-muted-foreground break-all`,children:[`Current: `,n.value]}),t[15]=n.configured,t[16]=n.sensitive,t[17]=n.value,t[18]=S):S=t[18];let C;t[19]!==v||t[20]!==y||t[21]!==b||t[22]!==S?(C=(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[v,y,b,S]}),t[19]=v,t[20]=y,t[21]=b,t[22]=S,t[23]=C):C=t[23];let w;t[24]!==o||t[25]!==n.configured||t[26]!==n.example||t[27]!==n.key||t[28]!==n.sensitive||t[29]!==r||t[30]!==c||t[31]!==f||t[32]!==s||t[33]!==d||t[34]!==u||t[35]!==l||t[36]!==a||t[37]!==i?(w=(0,Q.jsx)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:r?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 w-full`,children:[(0,Q.jsxs)(`div`,{className:`relative flex-1 min-w-0`,children:[(0,Q.jsx)(q,{type:n.sensitive&&!a?`password`:`text`,value:i,onChange:e=>l(e.target.value),placeholder:n.example?`e.g. ${n.example}`:`Enter value...`,className:`w-full h-8 text-sm pr-8`,onKeyDown:e=>{e.key===`Enter`&&d(),e.key===`Escape`&&c()},autoFocus:!0}),n.sensitive&&(0,Q.jsx)(X,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute right-0 top-0 h-8 w-8`,onClick:u,children:a?(0,Q.jsx)(fr,{className:`size-3`}):(0,Q.jsx)(Ot,{className:`size-3`})})]}),(0,Q.jsx)(X,{size:`sm`,onClick:d,disabled:!i.trim()||o===n.key,className:`shrink-0`,children:o===n.key?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(G,{className:`size-3`})}),(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:c,className:`shrink-0`,children:(0,Q.jsx)(Hn,{className:`size-3`})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(X,{size:`sm`,variant:`outline`,onClick:s,disabled:o===n.key,children:n.configured?`Update`:`Set`}),n.configured&&(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:f,disabled:o===n.key,children:o===n.key?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(gn,{className:`size-3`})})]})}),t[24]=o,t[25]=n.configured,t[26]=n.example,t[27]=n.key,t[28]=n.sensitive,t[29]=r,t[30]=c,t[31]=f,t[32]=s,t[33]=d,t[34]=u,t[35]=l,t[36]=a,t[37]=i,t[38]=w):w=t[38];let T;return t[39]!==C||t[40]!==w?(T=(0,Q.jsx)(`div`,{className:`p-3 space-y-2`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[C,w]})}),t[39]=C,t[40]=w,t[41]=T):T=t[41],T}var Pl=[{value:`providers`,label:`Credentials`,icon:vt},{value:`oauth`,label:`OAuth`,icon:Cr},{value:`models`,label:`Models`,icon:cr},{value:`prompts`,label:`Prompts`,icon:dt},{value:`preconfigs`,label:`Preconfigs`,icon:br},{value:`response-formats`,label:`Formats`,icon:kt},{value:`env`,label:`Environment`,icon:qt}];function Fl(e,t){switch(e){case`providers`:return(0,Q.jsx)(Qc,{sdkClient:t});case`oauth`:return(0,Q.jsx)($c,{sdkClient:t});case`models`:return(0,Q.jsx)(al,{sdkClient:t});case`prompts`:return(0,Q.jsx)(ol,{sdkClient:t});case`preconfigs`:return(0,Q.jsx)(ll,{sdkClient:t});case`response-formats`:return(0,Q.jsx)(kl,{sdkClient:t});case`env`:return(0,Q.jsx)(Ml,{sdkClient:t})}}function Il(e){let t=(0,$.c)(26),{open:n,onOpenChange:r,sdkClient:i}=e,a=Ue(Bl),o=Ue(zl),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsxs)(Pn,{className:`shrink-0`,children:[(0,Q.jsx)(In,{children:`Configuration`}),(0,Q.jsx)(An,{children:`Manage credentials, OAuth providers, models, prompts, preconfigs, response formats, and environment variables`})]}),t[0]=s):s=t[0];let c;t[1]===o?c=t[2]:(c=e=>o(e),t[1]=o,t[2]=c);let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(hc,{className:`sm:hidden w-full shrink-0`,size:`sm`,children:(0,Q.jsx)(mc,{})}),t[3]=l):l=t[3];let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(gc,{children:Pl.map(Rl)}),t[4]=u):u=t[4];let d;t[5]!==a||t[6]!==c?(d=(0,Q.jsxs)(pc,{value:a,onValueChange:c,children:[l,u]}),t[5]=a,t[6]=c,t[7]=d):d=t[7];let f;t[8]===o?f=t[9]:(f=e=>o(e),t[8]=o,t[9]=f);let p;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(uc,{className:`hidden sm:flex flex-col h-fit w-44 lg:w-48 shrink-0 items-stretch gap-0.5 bg-transparent p-1 rounded-lg`,children:Pl.map(Ll)}),t[10]=p):p=t[10];let m;t[11]===i?m=t[12]:(m=Pl.map(e=>(0,Q.jsx)(fc,{value:e.value,className:`mt-0`,children:Fl(e.value,i)},e.value)),t[11]=i,t[12]=m);let h;t[13]===m?h=t[14]:(h=(0,Q.jsx)(`div`,{className:`dialog-scrollbar flex-1 min-w-0 min-h-0 overflow-y-auto overscroll-contain rounded-lg border`,children:m}),t[13]=m,t[14]=h);let g;t[15]!==a||t[16]!==f||t[17]!==h?(g=(0,Q.jsxs)(cc,{value:a,onValueChange:f,orientation:`vertical`,className:`mt-2 flex-1 min-h-0`,children:[p,h]}),t[15]=a,t[16]=f,t[17]=h,t[18]=g):g=t[18];let _;t[19]!==g||t[20]!==d?(_=(0,Q.jsxs)(Fn,{className:`flex flex-col overflow-hidden p-3 sm:p-4 gap-3 sm:gap-4 max-w-[calc(100vw-0.5rem)] sm:max-w-[860px] h-[85dvh] sm:h-[85vh]`,children:[s,d,g]}),t[19]=g,t[20]=d,t[21]=_):_=t[21];let v;return t[22]!==r||t[23]!==n||t[24]!==_?(v=(0,Q.jsx)(Ln,{open:n,onOpenChange:r,children:_}),t[22]=r,t[23]=n,t[24]=_,t[25]=v):v=t[25],v}function Ll(e){return(0,Q.jsxs)(dc,{value:e.value,className:`justify-start px-3 py-1.5 text-sm`,children:[(0,Q.jsx)(e.icon,{className:`size-4`,"data-icon":`inline-start`}),(0,Q.jsx)(`span`,{children:e.label})]},e.value)}function Rl(e){return(0,Q.jsxs)(_c,{value:e.value,children:[(0,Q.jsx)(e.icon,{className:`size-4`}),e.label]},e.value)}function zl(e){return e.setConfigurationSection}function Bl(e){return e.configurationSection}function Vl({sdkClient:e}){let{data:t,isLoading:n,error:r}=E(e),{data:i,isLoading:a}=O(e),o=Me(e),s=b(e),c=t?.tools??[],l=(i?.envVars??[]).filter(e=>e.source===`tool`),u=n||a,d=r?.message??o.error?.message??s.error?.message??null,[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(``),[g,_]=(0,Z.useState)(!1),[v,y]=(0,Z.useState)(null),S=async t=>{if(!(!e||!m.trim())){y(t);try{await o.mutateAsync({key:t,value:m.trim()}),p(null),h(``),_(!1)}catch{}finally{y(null)}}},w=async t=>{if(e){y(t);try{await s.mutateAsync(t)}catch{}finally{y(null)}}},T=new Map;for(let e of l)if(e.usedBy)for(let t of e.usedBy){let n=T.get(t)||[];n.push(e.key),T.set(t,n)}let D=e=>{let t=e.env||[];if(t.length===0)return{total:0,missing:0};let n=t.filter(e=>{let t=l.find(t=>t.key===e);return!t||!t.configured});return{total:t.length,missing:n.length}};return u?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,Q.jsx)(x,{className:`size-6 animate-spin text-muted-foreground`})}):d&&c.length===0?(0,Q.jsx)(`div`,{className:`p-4 text-sm text-destructive`,children:d}):(0,Q.jsxs)(`div`,{className:`p-3 sm:p-4 space-y-6`,children:[d&&(0,Q.jsx)(`div`,{className:`p-2 rounded bg-destructive/10 text-sm text-destructive`,children:d}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`h3`,{className:`text-sm font-semibold flex items-center gap-2 mb-3`,children:[(0,Q.jsx)(C,{className:`size-4`}),`Loaded Tools (`,c.length,`)`]}),(0,Q.jsx)(`div`,{className:`space-y-1`,children:c.map(e=>{let t=D(e);return(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-2 p-2.5 rounded-lg border`,children:[(0,Q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium break-words`,children:e.name}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5 line-clamp-2 break-words`,children:e.description})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:t.total===0?(0,Q.jsxs)(J,{variant:`secondary`,className:`text-xs gap-1`,children:[(0,Q.jsx)(G,{className:`size-3`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Ready`})]}):t.missing>0?(0,Q.jsxs)(J,{variant:`outline`,className:`text-xs gap-1 text-orange-500 border-orange-300`,children:[(0,Q.jsx)(ht,{className:`size-3`}),(0,Q.jsx)(`span`,{children:t.missing}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`env missing`})]}):(0,Q.jsxs)(J,{variant:`default`,className:`text-xs gap-1`,children:[(0,Q.jsx)(Dt,{className:`size-3`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:`Configured`})]})})]},e.name)})})]}),l.length>0&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ze,{}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`h3`,{className:`text-sm font-semibold flex items-center gap-2 mb-3`,children:[`Environment Variables (`,l.length,`)`]}),(0,Q.jsx)(`div`,{className:`space-y-2`,children:l.map(e=>(0,Q.jsxs)(`div`,{className:`p-3 rounded-lg border`,children:[(0,Q.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.configured?(0,Q.jsx)(G,{className:`size-4 text-green-500`}):(0,Q.jsx)(Hn,{className:`size-4 text-orange-500`}),(0,Q.jsx)(`span`,{className:`text-sm font-mono font-medium`,children:e.key}),e.sensitive&&(0,Q.jsx)(xt,{className:`size-3 text-muted-foreground`}),(0,Q.jsx)(J,{variant:e.configured?`default`:`secondary`,className:`text-xs`,children:e.configured?`Configured`:`Not set`})]})}),e.usedBy&&e.usedBy.length>0&&(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`Required by: `,e.usedBy.join(`, `)]}),e.configured&&!e.sensitive&&e.value&&f!==e.key&&(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1 font-mono`,children:[`Value: `,e.value]}),f===e.key?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,Q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Q.jsx)(q,{type:e.sensitive?g?`text`:`password`:`text`,value:m,onChange:e=>h(e.target.value),placeholder:e.sensitive?`Enter secret value...`:`Enter value...`,className:`h-8 text-sm pr-8`,onKeyDown:t=>{t.key===`Enter`&&S(e.key),t.key===`Escape`&&(p(null),h(``))},autoFocus:!0}),e.sensitive&&(0,Q.jsx)(X,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute right-0 top-0 h-8 w-8`,onClick:()=>_(!g),children:g?(0,Q.jsx)(fr,{className:`size-3`}):(0,Q.jsx)(Ot,{className:`size-3`})})]}),(0,Q.jsx)(X,{size:`sm`,onClick:()=>S(e.key),disabled:!m.trim()||v===e.key,children:v===e.key?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(G,{className:`size-3`})}),(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>{p(null),h(``)},children:(0,Q.jsx)(Hn,{className:`size-3`})})]}):(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,Q.jsx)(X,{size:`sm`,variant:`outline`,onClick:()=>{p(e.key),h(``),_(!1)},disabled:v===e.key,children:e.configured?`Update`:`Set Value`}),e.configured&&(0,Q.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>w(e.key),disabled:v===e.key,children:v===e.key?(0,Q.jsx)(x,{className:`size-3 animate-spin`}):(0,Q.jsx)(gn,{className:`size-3`})})]})]},e.key))})]})]}),l.length===0&&c.length>0&&(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-4`,children:`No environment variables required by installed tools.`})]})}function Hl(e){let t=(0,$.c)(7),{open:n,onOpenChange:r,sdkClient:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsxs)(Pn,{className:`shrink-0`,children:[(0,Q.jsx)(In,{children:`Tools`}),(0,Q.jsx)(An,{children:`View loaded tools and manage their environment variables`})]}),t[0]=a):a=t[0];let o;t[1]===i?o=t[2]:(o=(0,Q.jsxs)(Fn,{className:`flex flex-col overflow-hidden p-3 sm:p-4 gap-3 sm:gap-4 max-w-[calc(100vw-0.5rem)] sm:max-w-[800px] sm:max-h-[85vh]`,children:[a,(0,Q.jsx)(`div`,{className:`dialog-scrollbar flex-1 min-h-0 overflow-y-auto overscroll-contain rounded-lg border`,children:(0,Q.jsx)(Vl,{sdkClient:i})})]}),t[1]=i,t[2]=o);let s;return t[3]!==r||t[4]!==n||t[5]!==o?(s=(0,Q.jsx)(Ln,{open:n,onOpenChange:r,children:o}),t[3]=r,t[4]=n,t[5]=o,t[6]=s):s=t[6],s}function Ul(e){let t=(0,$.c)(6),{action:n}=e;switch(n){case`read`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Ot,{className:`size-3`,"data-icon":`inline-start`}),t[0]=e):e=t[0],e}case`write`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Mt,{className:`size-3`,"data-icon":`inline-start`}),t[1]=e):e=t[1],e}case`delete`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(jr,{className:`size-3`,"data-icon":`inline-start`}),t[2]=e):e=t[2],e}case`request`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(gr,{className:`size-3`,"data-icon":`inline-start`}),t[3]=e):e=t[3],e}case`execute`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(qt,{className:`size-3`,"data-icon":`inline-start`}),t[4]=e):e=t[4],e}default:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(ne,{className:`size-3`,"data-icon":`inline-start`}),t[5]=e):e=t[5],e}}}function Wl(e){return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}function Gl(e){switch(e){case`once`:return`Once`;case`session`:return`Session`;case`workspace`:return`Workspace`;case`always`:return`Workspace`;default:return e}}function Kl(e){switch(e){case`read`:return`Read`;case`write`:return`Write`;case`delete`:return`Delete`;case`request`:return`Network`;case`execute`:return`Execute`;default:return null}}function ql(e){switch(e){case`file`:return`File`;case`path`:return`Path`;case`directory`:return`Directory`;case`shell-command`:return`Shell`;case`network`:return`Network`;default:return e}}function Jl(e){return e.length===0?`All`:e.map(e=>e.startsWith(`file:`)?e.slice(5):e.startsWith(`shell-command:`)?e.slice(15):e).join(`, `)}function Yl(e){let t=(0,$.c)(48),{permission:n,onRevoke:r}=e,i=!!n.revokedAt,a;t[0]===n.action?a=t[1]:(a=Kl(n.action),t[0]=n.action,t[1]=a);let o=a,s;t[2]===n.resource?s=t[3]:(s=ql(n.resource),t[2]=n.resource,t[3]=s);let c=s,l;t[4]===n.patterns?l=t[5]:(l=Jl(n.patterns),t[4]=n.patterns,t[5]=l);let u=l,d=i?`outline`:`secondary`,f;t[6]===n.action?f=t[7]:(f=(0,Q.jsx)(Ul,{action:n.action}),t[6]=n.action,t[7]=f);let p=o?`${c} ${o}`:c,m;t[8]!==d||t[9]!==f||t[10]!==p?(m=(0,Q.jsxs)(J,{variant:d,children:[f,p]}),t[8]=d,t[9]=f,t[10]=p,t[11]=m):m=t[11];let h;t[12]===n.toolName?h=t[13]:(h=(0,Q.jsx)(J,{variant:`outline`,className:`text-xs`,children:n.toolName}),t[12]=n.toolName,t[13]=h);let g;t[14]===n.scope?g=t[15]:(g=Gl(n.scope),t[14]=n.scope,t[15]=g);let _;t[16]===g?_=t[17]:(_=(0,Q.jsx)(J,{variant:`outline`,className:`text-xs`,children:g}),t[16]=g,t[17]=_);let v;t[18]===n.matcher?v=t[19]:(v=n.matcher!==`exact`&&(0,Q.jsx)(J,{variant:`outline`,className:`text-xs text-muted-foreground`,children:n.matcher}),t[18]=n.matcher,t[19]=v);let y;t[20]===i?y=t[21]:(y=i&&(0,Q.jsx)(J,{variant:`outline`,className:`text-muted-foreground`,children:`Revoked`}),t[20]=i,t[21]=y);let b;t[22]!==_||t[23]!==v||t[24]!==y||t[25]!==m||t[26]!==h?(b=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mb-1 flex-wrap`,children:[m,h,_,v,y]}),t[22]=_,t[23]=v,t[24]=y,t[25]=m,t[26]=h,t[27]=b):b=t[27];let x;t[28]===u?x=t[29]:(x=(0,Q.jsx)(`p`,{className:`text-sm font-mono break-all text-muted-foreground`,children:u}),t[28]=u,t[29]=x);let S;t[30]===n.grantedAt?S=t[31]:(S=Wl(n.grantedAt),t[30]=n.grantedAt,t[31]=S);let C;t[32]===n.revokedAt?C=t[33]:(C=n.revokedAt&&` • Revoked ${Wl(n.revokedAt)}`,t[32]=n.revokedAt,t[33]=C);let w;t[34]!==S||t[35]!==C?(w=(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`Saved `,S,C]}),t[34]=S,t[35]=C,t[36]=w):w=t[36];let T;t[37]!==b||t[38]!==x||t[39]!==w?(T=(0,Q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[b,x,w]}),t[37]=b,t[38]=x,t[39]=w,t[40]=T):T=t[40];let E;t[41]!==i||t[42]!==r||t[43]!==n.id?(E=!i&&(0,Q.jsx)(X,{variant:`ghost`,size:`icon`,onClick:()=>r(n.id),className:`size-8 text-destructive hover:text-destructive`,children:(0,Q.jsx)(gn,{className:`size-4`})}),t[41]=i,t[42]=r,t[43]=n.id,t[44]=E):E=t[44];let D;return t[45]!==T||t[46]!==E?(D=(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-4 py-3 border-b border-border last:border-0 min-w-0`,children:[T,E]}),t[45]=T,t[46]=E,t[47]=D):D=t[47],D}function Xl(e){let t=(0,$.c)(58),{open:n,onOpenChange:r,permissions:i,onRefreshPermissions:a,onRevokePermission:o,onRevokeAllPermissions:s,workspaceName:c}=e,[l,u]=(0,Z.useState)(!1),d,f,p,m,h,g,_,v,y,b,x,S,C,w;if(t[0]!==r||t[1]!==a||t[2]!==o||t[3]!==n||t[4]!==i||t[5]!==c){let e=i.filter(Ql),s=i.filter(Zl);p=Ln,h=n,g=r,f=Fn,C=`sm:max-w-[600px] max-h-[80vh]`;let l;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsxs)(In,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(ne,{className:`size-5`}),`Workspace Permissions`]}),t[20]=l):l=t[20];let T=c?`Manage tool permissions for ${c}`:`Manage tool permissions for this workspace`;t[21]===T?w=t[22]:(w=(0,Q.jsxs)(Pn,{children:[l,(0,Q.jsx)(An,{children:T})]}),t[21]=T,t[22]=w),b=`flex flex-col gap-4`;let E;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(Y,{className:`text-sm font-medium`,children:`Saved Permissions`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Tool permissions saved for this workspace`})]}),t[23]=E):E=t[23];let D;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Q.jsx)(Un,{className:`size-4`}),t[24]=D):D=t[24];let O;t[25]===a?O=t[26]:(O=(0,Q.jsx)(X,{variant:`outline`,size:`icon`,onClick:a,className:`size-8`,children:D}),t[25]=a,t[26]=O);let k=e.length>0&&(0,Q.jsxs)(X,{variant:`destructive`,size:`sm`,onClick:()=>u(!0),children:[(0,Q.jsx)(gn,{className:`size-4`,"data-icon":`inline-start`}),`Revoke All`]});t[27]!==O||t[28]!==k?(x=(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[E,(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[O,k]})]}),t[27]=O,t[28]=k,t[29]=x):x=t[29],t[30]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsx)(ze,{}),t[30]=S):S=t[30],d=Xt,m=`h-[350px]`,_=e.length===0&&s.length===0&&(0,Q.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground text-sm`,children:[`No saved permissions yet.`,(0,Q.jsx)(`br`,{}),`Saved permission grants will appear here after approval.`]}),v=e.length>0&&(0,Q.jsxs)(`div`,{className:`mb-4`,children:[(0,Q.jsxs)(`h4`,{className:`text-xs uppercase text-muted-foreground mb-2 font-medium`,children:[`Active (`,e.length,`)`]}),e.map(e=>(0,Q.jsx)(Yl,{permission:e,onRevoke:o},e.id))]}),y=s.length>0&&(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`h4`,{className:`text-xs uppercase text-muted-foreground mb-2 font-medium`,children:[`Revoked (`,s.length,`)`]}),s.map(e=>(0,Q.jsx)(Yl,{permission:e,onRevoke:o},e.id))]}),t[0]=r,t[1]=a,t[2]=o,t[3]=n,t[4]=i,t[5]=c,t[6]=d,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=g,t[12]=_,t[13]=v,t[14]=y,t[15]=b,t[16]=x,t[17]=S,t[18]=C,t[19]=w}else d=t[6],f=t[7],p=t[8],m=t[9],h=t[10],g=t[11],_=t[12],v=t[13],y=t[14],b=t[15],x=t[16],S=t[17],C=t[18],w=t[19];let T;t[31]!==d||t[32]!==m||t[33]!==_||t[34]!==v||t[35]!==y?(T=(0,Q.jsxs)(d,{className:m,children:[_,v,y]}),t[31]=d,t[32]=m,t[33]=_,t[34]=v,t[35]=y,t[36]=T):T=t[36];let E;t[37]!==T||t[38]!==b||t[39]!==x||t[40]!==S?(E=(0,Q.jsxs)(`div`,{className:b,children:[x,S,T]}),t[37]=T,t[38]=b,t[39]=x,t[40]=S,t[41]=E):E=t[41];let D;t[42]!==f||t[43]!==E||t[44]!==C||t[45]!==w?(D=(0,Q.jsxs)(f,{className:C,children:[w,E]}),t[42]=f,t[43]=E,t[44]=C,t[45]=w,t[46]=D):D=t[46];let O;t[47]===s?O=t[48]:(O=()=>{s(),u(!1)},t[47]=s,t[48]=O);let k;t[49]!==l||t[50]!==O?(k=(0,Q.jsx)(el,{open:l,onOpenChange:u,title:`Revoke All Permissions`,description:`This will revoke all saved permissions for this workspace. The tools will need to be approved again when used.`,confirmLabel:`Revoke All`,variant:`destructive`,onConfirm:O}),t[49]=l,t[50]=O,t[51]=k):k=t[51];let A;return t[52]!==p||t[53]!==h||t[54]!==g||t[55]!==D||t[56]!==k?(A=(0,Q.jsxs)(p,{open:h,onOpenChange:g,children:[D,k]}),t[52]=p,t[53]=h,t[54]=g,t[55]=D,t[56]=k,t[57]=A):A=t[57],A}function Zl(e){return e.revokedAt}function Ql(e){return!e.revokedAt}var $l=ft.oneDark,eu=ft.oneLight;function tu(e,t){let n=e.split(`
|
|
12
|
+
`);n.length>0&&n[n.length-1]===``&&n.pop();let r=[],i=0;for(let e of t){let t=e.newStart-1;for(;i<t&&i<n.length;)r.push({type:`context`,content:n[i],newLineNumber:i+1}),i++;for(let t of e.changes)r.push({type:t.type,content:t.content,newLineNumber:t.type===`removed`?void 0:t.newLineNumber}),t.type!==`removed`&&i++}for(;i<n.length;)r.push({type:`context`,content:n[i],newLineNumber:i+1}),i++;return r}function nu(e){let t=(0,$.c)(15),{content:n,type:r,newLineNumber:i,language:a,codeTheme:o,isDark:s}=e,c,l;if(t[0]!==s||t[1]!==r){let e=Rn(r===`added`&&(s?`bg-green-500/15`:`bg-green-500/10`),r===`removed`&&(s?`bg-red-500/15`:`bg-red-500/10`)),n=Rn(r===`added`&&(s?`bg-green-500/25 text-green-400`:`bg-green-500/15 text-green-600`),r===`removed`&&(s?`bg-red-500/25 text-red-400`:`bg-red-500/15 text-red-600`),r===`context`&&`opacity-50`);l=Rn(`table-row`,e),c=Rn(`table-cell pr-4 text-right select-none text-xs w-12 border-r`,s?`border-white/5`:`border-border`,n),t[0]=s,t[1]=r,t[2]=c,t[3]=l}else c=t[2],l=t[3];let u=i??``,d;t[4]!==c||t[5]!==u?(d=(0,Q.jsx)(`span`,{className:c,children:u}),t[4]=c,t[5]=u,t[6]=d):d=t[6];let f;t[7]!==o||t[8]!==n||t[9]!==a?(f=(0,Q.jsx)(`span`,{className:`table-cell pl-4 whitespace-pre`,children:(0,Q.jsx)(yt,{theme:o,code:n,language:a,children:ru})}),t[7]=o,t[8]=n,t[9]=a,t[10]=f):f=t[10];let p;return t[11]!==l||t[12]!==d||t[13]!==f?(p=(0,Q.jsxs)(`div`,{className:l,children:[d,f]}),t[11]=l,t[12]=d,t[13]=f,t[14]=p):p=t[14],p}function ru(e){let{tokens:t,getTokenProps:n}=e;return(0,Q.jsx)(Q.Fragment,{children:t.map((e,t)=>(0,Q.jsx)(`span`,{children:e.map((e,t)=>(0,Q.jsx)(`span`,{...n({token:e})},t))},t))})}function iu(e){let t=(0,$.c)(34),{content:n,language:r,diff:i}=e,{resolvedMode:a}=c(),o=a===`dark`,s=o?$l:eu,l=r||`plaintext`,u;bb0:{if(!i||i.hunks.length===0){u=null;break bb0}let e;t[0]!==n||t[1]!==i.hunks?(e=tu(n,i.hunks),t[0]=n,t[1]=i.hunks,t[2]=e):e=t[2],u=e}let d=u,f=s.plain.backgroundColor||(o?`#282c34`:`#fafafa`);if(d){let e;t[3]===f?e=t[4]:(e={WebkitOverflowScrolling:`touch`,backgroundColor:f},t[3]=f,t[4]=e);let n;t[5]===s.plain.color?n=t[6]:(n={color:s.plain.color},t[5]=s.plain.color,t[6]=n);let r;if(t[7]!==s||t[8]!==o||t[9]!==l||t[10]!==d){let e;t[12]!==s||t[13]!==o||t[14]!==l?(e=(e,t)=>(0,Q.jsx)(nu,{content:e.content,type:e.type,newLineNumber:e.newLineNumber,language:l,codeTheme:s,isDark:o},t),t[12]=s,t[13]=o,t[14]=l,t[15]=e):e=t[15],r=d.map(e),t[7]=s,t[8]=o,t[9]=l,t[10]=d,t[11]=r}else r=t[11];let i;t[16]!==n||t[17]!==r?(i=(0,Q.jsx)(`pre`,{className:`text-sm p-4 min-h-full font-mono`,style:n,children:r}),t[16]=n,t[17]=r,t[18]=i):i=t[18];let a;return t[19]!==e||t[20]!==i?(a=(0,Q.jsx)(`div`,{className:`h-full overflow-auto chat-transcript-scrollbar`,style:e,children:i}),t[19]=e,t[20]=i,t[21]=a):a=t[21],a}let p;t[22]===f?p=t[23]:(p={WebkitOverflowScrolling:`touch`,backgroundColor:f},t[22]=f,t[23]=p);let m;t[24]===o?m=t[25]:(m=e=>{let{style:t,tokens:n,getLineProps:r,getTokenProps:i}=e;return(0,Q.jsx)(`pre`,{className:`text-sm p-4 min-h-full font-mono`,style:t,children:n.map((e,t)=>{if(t===n.length-1&&e.length===1&&e[0].content===``)return null;let{className:a,...s}=r({line:e});return(0,Q.jsxs)(`div`,{...s,className:`table-row`,children:[(0,Q.jsx)(`span`,{className:Rn(`table-cell pr-4 text-right select-none opacity-50 text-xs w-12 border-r`,o?`border-white/5`:`border-border`),children:t+1}),(0,Q.jsx)(`span`,{className:`table-cell pl-4`,children:e.map((e,t)=>(0,Q.jsx)(`span`,{...i({token:e})},t))})]},t)})})},t[24]=o,t[25]=m);let h;t[26]!==s||t[27]!==n||t[28]!==l||t[29]!==m?(h=(0,Q.jsx)(yt,{theme:s,code:n,language:l,children:m}),t[26]=s,t[27]=n,t[28]=l,t[29]=m,t[30]=h):h=t[30];let g;return t[31]!==p||t[32]!==h?(g=(0,Q.jsx)(`div`,{className:`h-full overflow-auto chat-transcript-scrollbar`,style:p,children:h}),t[31]=p,t[32]=h,t[33]=g):g=t[33],g}var au=(0,Z.memo)(iu);function ou(e){let t=(0,$.c)(7),{workspaceId:n,path:r,sdkClient:i,enabled:a}=e,{data:o,isLoading:s,isFetching:c,error:l,refetch:u}=ye(i,n,r,a),d=o??null,f=s||c,p=l?.message??null,m;t[0]===u?m=t[1]:(m=()=>{u()},t[0]=u,t[1]=m);let h;return t[2]!==d||t[3]!==f||t[4]!==p||t[5]!==m?(h={data:d,loading:f,error:p,reload:m},t[2]=d,t[3]=f,t[4]=p,t[5]=m,t[6]=h):h=t[6],h}function su(e){return e.kind===`code`||e.kind===`text`||e.kind===`markdown`}function cu(e){let t=(0,$.c)(40),{workspaceId:n,target:r,sdkClient:i,open:a,onOpenChange:o}=e,s=r?.path,c=a&&!!r&&!!n,l;t[0]!==i||t[1]!==s||t[2]!==c||t[3]!==n?(l={workspaceId:n,path:s,sdkClient:i,enabled:c},t[0]=i,t[1]=s,t[2]=c,t[3]=n,t[4]=l):l=t[4];let{data:u,loading:d,error:f,reload:p}=ou(l),m=Oe(i,n,r?.path,a&&!!r&&!!n),h=m.data?.diffAvailable?m.data:void 0,g;t[5]!==m||t[6]!==p?(g=()=>{p(),m.refetch()},t[5]=m,t[6]=p,t[7]=g):g=t[7];let _=g;if(!r)return null;let v=lu,y;t[8]!==u||t[9]!==h||t[10]!==f||t[11]!==d||t[12]!==p?(y=()=>d?(0,Q.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,Q.jsx)(x,{className:`size-5 animate-spin text-muted-foreground`})}):f?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full text-center p-8`,children:[(0,Q.jsx)(ut,{className:`size-8 text-muted-foreground mb-3`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground mb-3`,children:f}),(0,Q.jsxs)(X,{variant:`outline`,size:`sm`,onClick:p,children:[(0,Q.jsx)(Un,{className:`size-3.5 mr-1.5`}),`Retry`]})]}):u?u.kind===`markdown`?(0,Q.jsxs)(cc,{defaultValue:`preview`,className:`h-full flex flex-col`,children:[(0,Q.jsxs)(uc,{className:`mx-4 mt-3 shrink-0 w-fit`,children:[(0,Q.jsx)(dc,{value:`preview`,children:`Preview`}),(0,Q.jsx)(dc,{value:`source`,children:`Source`})]}),(0,Q.jsx)(fc,{value:`preview`,className:`flex-1 min-h-0 mt-0 overflow-auto p-6 chat-transcript-scrollbar`,children:(0,Q.jsx)(wt,{children:u.content})}),(0,Q.jsx)(fc,{value:`source`,className:`flex-1 min-h-0 mt-0`,children:(0,Q.jsx)(au,{content:u.content,language:u.language,diff:h?{hunks:h.hunks,additions:h.additions,deletions:h.deletions}:void 0})})]}):su(u)?(0,Q.jsx)(au,{content:u.content,language:u.language,diff:h?{hunks:h.hunks,additions:h.additions,deletions:h.deletions}:void 0}):(0,Q.jsx)(ec,{preview:u}):null,t[8]=u,t[9]=h,t[10]=f,t[11]=d,t[12]=p,t[13]=y):y=t[13];let b=y,S;t[14]===r.name?S=t[15]:(S=(0,Q.jsx)(In,{className:`text-base font-semibold truncate`,children:r.name}),t[14]=r.name,t[15]=S);let C;t[16]===r.path?C=t[17]:(C=(0,Q.jsx)(An,{className:`text-xs text-muted-foreground truncate`,children:r.path}),t[16]=r.path,t[17]=C);let w;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Q.jsx)(Un,{className:`size-4`}),t[18]=w):w=t[18];let T;t[19]===_?T=t[20]:(T=(0,Q.jsx)(X,{variant:`ghost`,size:`icon-sm`,onClick:_,className:`absolute right-12 top-4`,children:w}),t[19]=_,t[20]=T);let E;t[21]!==u||t[22]!==h?(E=u&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mt-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-muted text-muted-foreground capitalize`,children:u.kind}),(0,Q.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-muted text-muted-foreground`,children:`read-only`}),(0,Q.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[v(u.size),u.language&&` · ${u.language}`]}),h&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-green-500/10 text-green-600`,children:[`+`,h.additions]}),(0,Q.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-red-500/10 text-red-600`,children:[`-`,h.deletions]})]})]}),t[21]=u,t[22]=h,t[23]=E):E=t[23];let D;t[24]!==E||t[25]!==S||t[26]!==C||t[27]!==T?(D=(0,Q.jsxs)(Pn,{className:`px-6 pt-5 pb-3 border-b border-border shrink-0`,children:[S,C,T,E]}),t[24]=E,t[25]=S,t[26]=C,t[27]=T,t[28]=D):D=t[28];let O;t[29]===b?O=t[30]:(O=b(),t[29]=b,t[30]=O);let k;t[31]===O?k=t[32]:(k=(0,Q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden`,children:O}),t[31]=O,t[32]=k);let A;t[33]!==D||t[34]!==k?(A=(0,Q.jsxs)(Fn,{showCloseButton:!0,className:`sm:max-w-5xl w-[min(92vw,1100px)] h-[85vh] flex flex-col p-0 gap-0`,children:[D,k]}),t[33]=D,t[34]=k,t[35]=A):A=t[35];let j;return t[36]!==o||t[37]!==a||t[38]!==A?(j=(0,Q.jsx)(Ln,{open:a,onOpenChange:o,children:A}),t[36]=o,t[37]=a,t[38]=A,t[39]=j):j=t[39],j}function lu(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function uu(e){let t=(0,$.c)(50),{apiToken:n,isConnected:r,sdkClient:i,permissions:a,onLogout:o,onRefreshPermissions:c,onRevokePermission:l,onRevokeAllPermissions:u,onConfigurationClose:d}=e,f=s(pu),{showSettings:p,showMCPDialog:m,showConfiguration:h,showTools:g,showWorkspacePermissions:_,setShowSettings:v,setShowMCPDialog:y,setShowConfiguration:b,setShowTools:x,setShowWorkspacePermissions:S}=Ue($a(fu)),{filePreviewTarget:C,closeFilePreview:w}=Ue($a(du)),T;t[0]!==n||t[1]!==r||t[2]!==o||t[3]!==i||t[4]!==v||t[5]!==p?(T=(0,Q.jsx)(Gc,{open:p,onOpenChange:v,apiToken:n,isConnected:r,onLogout:o,sdkClient:i}),t[0]=n,t[1]=r,t[2]=o,t[3]=i,t[4]=v,t[5]=p,t[6]=T):T=t[6];let E=f?.id,D=f?.path,O;t[7]!==i||t[8]!==y||t[9]!==m||t[10]!==E||t[11]!==D?(O=(0,Q.jsx)(Zc,{open:m,onOpenChange:y,workspaceId:E,workspacePath:D,sdkClient:i}),t[7]=i,t[8]=y,t[9]=m,t[10]=E,t[11]=D,t[12]=O):O=t[12];let k;t[13]!==f||t[14]!==u?(k=()=>{f?.id&&u(f.id)},t[13]=f,t[14]=u,t[15]=k):k=t[15];let A=f?.name,j;t[16]!==c||t[17]!==l||t[18]!==a||t[19]!==S||t[20]!==_||t[21]!==k||t[22]!==A?(j=(0,Q.jsx)(Xl,{open:_,onOpenChange:S,permissions:a,onRefreshPermissions:c,onRevokePermission:l,onRevokeAllPermissions:k,workspaceName:A}),t[16]=c,t[17]=l,t[18]=a,t[19]=S,t[20]=_,t[21]=k,t[22]=A,t[23]=j):j=t[23];let M;t[24]!==d||t[25]!==b?(M=e=>{b(e),e||d()},t[24]=d,t[25]=b,t[26]=M):M=t[26];let N;t[27]!==i||t[28]!==h||t[29]!==M?(N=(0,Q.jsx)(Il,{open:h,onOpenChange:M,sdkClient:i}),t[27]=i,t[28]=h,t[29]=M,t[30]=N):N=t[30];let P;t[31]!==i||t[32]!==x||t[33]!==g?(P=(0,Q.jsx)(Hl,{open:g,onOpenChange:x,sdkClient:i}),t[31]=i,t[32]=x,t[33]=g,t[34]=P):P=t[34];let F=f?.id,I=C!==null,L;t[35]===w?L=t[36]:(L=e=>{e||w()},t[35]=w,t[36]=L);let R;t[37]!==C||t[38]!==i||t[39]!==F||t[40]!==I||t[41]!==L?(R=(0,Q.jsx)(cu,{workspaceId:F,target:C,sdkClient:i,open:I,onOpenChange:L}),t[37]=C,t[38]=i,t[39]=F,t[40]=I,t[41]=L,t[42]=R):R=t[42];let z;return t[43]!==T||t[44]!==P||t[45]!==R||t[46]!==O||t[47]!==j||t[48]!==N?(z=(0,Q.jsxs)(Q.Fragment,{children:[T,O,j,N,P,R]}),t[43]=T,t[44]=P,t[45]=R,t[46]=O,t[47]=j,t[48]=N,t[49]=z):z=t[49],z}function du(e){return{filePreviewTarget:e.filePreviewTarget,closeFilePreview:e.closeFilePreview}}function fu(e){return{showSettings:e.showSettings,showMCPDialog:e.showMCPDialog,showConfiguration:e.showConfiguration,showTools:e.showTools,showWorkspacePermissions:e.showWorkspacePermissions,setShowSettings:e.setShowSettings,setShowMCPDialog:e.setShowMCPDialog,setShowConfiguration:e.setShowConfiguration,setShowTools:e.setShowTools,setShowWorkspacePermissions:e.setShowWorkspacePermissions}}function pu(e){return e.activeWorkspace}function mu(){let e=(0,$.c)(52),t=at(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={from:`/server/$serverId`,strict:!1},e[0]=n):n=e[0];let r=nt(n).serverId,{servers:i,removeFromQuickConnectionsByWorkspace:a,quickConnections:s}=et(),c;e[1]!==r||e[2]!==i?(c=i.find(e=>e.id===r)??null,e[1]=r,e[2]=i,e[3]=c):c=e[3];let l=c,u;e[4]===t?u=e[5]:(u=e=>t.navigate({to:e.to,params:e.params}),e[4]=t,e[5]=u);let d;e[6]!==l||e[7]!==s||e[8]!==a||e[9]!==r||e[10]!==u?(d={serverId:r,activeServer:l,navigate:u,removeFromQuickConnectionsByWorkspace:a,quickConnections:s},e[6]=l,e[7]=s,e[8]=a,e[9]=r,e[10]=u,e[11]=d):d=e[11];let f=Ss(d),p=(0,Z.useRef)(null),h=(0,Z.useRef)(null),g=(0,Z.useRef)(null),_=(0,Z.useRef)(null),v=(0,Z.useRef)(null),y=(0,Z.useRef)(null),{showFilesPanel:b,filesPanelWidth:x,sessionsPanelWidth:S}=$t($a(hu)),C;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(C={sidebarRef:_,chatInputRef:p,terminalPanelRef:h,filesPanelRef:g,scrollToBottomRef:v,autoFollowToggleRef:y},e[12]=C):C=e[12];let w=C,T=`${S}px`,E;e[13]===T?E=e[14]:(E={"--sidebar-width":T,"--header-height":o.id===`electron`?`4.625rem`:`2.75rem`},e[13]=T,e[14]=E);let D=E,O;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,Q.jsx)(`div`,{className:`bg-background`,children:(0,Q.jsx)(ws,{})}),e[15]=O):O=e[15];let k;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Q.jsx)(ee.Provider,{value:w,children:(0,Q.jsx)(rt,{})}),e[16]=k):k=e[16];let A;e[17]===f?A=e[18]:(A=(0,Q.jsx)(m.Provider,{value:f,children:k}),e[17]=f,e[18]=A);let j;e[19]===f.sdkClient?j=e[20]:(j=(0,Q.jsx)(tc,{ref:g,sdkClient:f.sdkClient}),e[19]=f.sdkClient,e[20]=j);let M=`relative bg-transparent transition-[width] duration-200 ease-linear shrink-0 ${b?``:`w-0`}`,N=b?x:0,P;e[21]===N?P=e[22]:(P={width:N},e[21]=N,e[22]=P);let F;e[23]!==M||e[24]!==P?(F=(0,Q.jsx)(`div`,{"data-panel-gap":`files`,className:M,style:P}),e[23]=M,e[24]=P,e[25]=F):F=e[25];let I;e[26]!==A||e[27]!==j||e[28]!==F?(I=(0,Q.jsxs)(`div`,{className:`flex flex-1 min-h-0`,children:[A,j,F]}),e[26]=A,e[27]=j,e[28]=F,e[29]=I):I=e[29];let L;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(L=()=>y.current?.toggle(),e[30]=L):L=e[30];let R;e[31]!==r||e[32]!==f.createSession||e[33]!==f.handleInterruptSession?(R=(0,Q.jsx)(Bs,{sidebarRef:_,terminalPanelRef:h,filesPanelRef:g,chatInputRef:p,handleInterruptSession:f.handleInterruptSession,serverId:r,createSession:f.createSession,onToggleAutoFollow:L}),e[31]=r,e[32]=f.createSession,e[33]=f.handleInterruptSession,e[34]=R):R=e[34];let z;e[35]===t?z=e[36]:(z=()=>t.invalidate(),e[35]=t,e[36]=z);let B;e[37]!==f.apiToken||e[38]!==f.connected||e[39]!==f.handleLogout||e[40]!==f.permissions||e[41]!==f.refreshPermissions||e[42]!==f.revokeAllPermissions||e[43]!==f.revokePermission||e[44]!==f.sdkClient||e[45]!==z?(B=(0,Q.jsx)(uu,{apiToken:f.apiToken,isConnected:f.connected,sdkClient:f.sdkClient,permissions:f.permissions,onLogout:f.handleLogout,onRefreshPermissions:f.refreshPermissions,onRevokePermission:f.revokePermission,onRevokeAllPermissions:f.revokeAllPermissions,onConfigurationClose:z}),e[37]=f.apiToken,e[38]=f.connected,e[39]=f.handleLogout,e[40]=f.permissions,e[41]=f.refreshPermissions,e[42]=f.revokeAllPermissions,e[43]=f.revokePermission,e[44]=f.sdkClient,e[45]=z,e[46]=B):B=e[46];let V;return e[47]!==I||e[48]!==R||e[49]!==B||e[50]!==D?(V=(0,Q.jsxs)(Bt,{panelId:`sessions`,defaultOpen:!0,className:`flex-col`,style:D,children:[O,I,R,B]}),e[47]=I,e[48]=R,e[49]=B,e[50]=D,e[51]=V):V=e[51],V}function hu(e){return{showFilesPanel:e.showFilesPanel,filesPanelWidth:e.filesPanelWidth,sessionsPanelWidth:e.sessionsPanelWidth}}var gu=()=>{let e=(0,$.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(Wa,{children:(0,Q.jsx)(mu,{})}),e[0]=t):t=e[0],t};export{gu as component};
|