@wrongstack/webui 0.306.2 → 0.306.3
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/{AgentRosterView-w4W3kv5U.js → AgentRosterView-X4NWBm16.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-DKkhZ8uy.js → AnalyticsDashboard-CvEY3lEY.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-C2-zeTwK.js → AudienceMemoryPanel-ChhQVsbD.js} +1 -1
- package/dist/assets/{ChangesView-B5G6Yjur.js → ChangesView-DplR2Twb.js} +1 -1
- package/dist/assets/{ChronicleDashboard-CtkbnwnE.js → ChronicleDashboard-BpykJceZ.js} +1 -1
- package/dist/assets/{CodeEditor-Cnn5KXCJ.js → CodeEditor-DQDKQlAo.js} +1 -1
- package/dist/assets/{CronJobsPanel-BAtU6jjZ.js → CronJobsPanel-Dp9xc7vb.js} +1 -1
- package/dist/assets/{DebugDashboard-oHU64ZqM.js → DebugDashboard-d4ETqxOe.js} +1 -1
- package/dist/assets/{DesignGalleryView-DKUP0p_v.js → DesignGalleryView-3jRTmgzx.js} +1 -1
- package/dist/assets/{GoalView-dj7g7W7O.js → GoalView-CoMRM0Vo.js} +1 -1
- package/dist/assets/{KanbanView-B26rNiBN.js → KanbanView-BMHq13vg.js} +2 -2
- package/dist/assets/{MailboxDetailView-C02ZH9l0.js → MailboxDetailView-C0n5fMGN.js} +1 -1
- package/dist/assets/{MemoryDrawer-BHRJzA_C.js → MemoryDrawer-DIrEAQNI.js} +1 -1
- package/dist/assets/{MemoryManager-B7QN9iOW.js → MemoryManager-CEfDQuV9.js} +1 -1
- package/dist/assets/{OfficeMapPanel-Bzrrn7kn.js → OfficeMapPanel-TIRw1a9O.js} +1 -1
- package/dist/assets/{RequirementIntakeView-DoUHdXsF.js → RequirementIntakeView-CN7Yympd.js} +1 -1
- package/dist/assets/{SageTabs-DSExPkoe.js → SageTabs-BR09lBUK.js} +2 -2
- package/dist/assets/{SddHub-Clyhck4C.js → SddHub-CkjrCykN.js} +1 -1
- package/dist/assets/{SessionInspectView-DSWNlpTz.js → SessionInspectView-Bf3X0qK8.js} +1 -1
- package/dist/assets/{SessionList-_EaW7qJP.js → SessionList-cAmzxd3Z.js} +1 -1
- package/dist/assets/{SessionsDashboard-CxYr2UKF.js → SessionsDashboard-CwuOKWQc.js} +1 -1
- package/dist/assets/{SetupScreen-DdDQeLsL.js → SetupScreen-DZUvrhr0.js} +1 -1
- package/dist/assets/{SkillDetailView-wNORS-Dz.js → SkillDetailView-CULufBnT.js} +1 -1
- package/dist/assets/{TechStackView-Cl9lrcap.js → TechStackView-B2v5LoJp.js} +1 -1
- package/dist/assets/{index-BEaJiEt2.js → index-eK0iH6jY.js} +2 -2
- package/dist/index.html +1 -1
- package/package.json +8 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ws-client-B7j8isQb.js","assets/rolldown-runtime-QTnfLwEv.js","assets/vendor-AeHpGMaG.js","assets/monaco-BLUV5g0U.js","assets/monaco-Bowa0-zp.css","assets/markdown-sSmz-Ua_.js","assets/vendor-BMdWcCR4.css","assets/utils-D1fGupR8.js","assets/session-store-DkPaOIhe.js","assets/ProcessMonitor-SLnEEbRY.js","assets/i18n-nlW2iAya.js","assets/activity-Dg9Q9kwt.js","assets/chat-CdiY7G6Z.js","assets/commandPalette-DpaemFux.js","assets/common-COVxQ0FV.js","assets/settings-t7_uBgp_.js","assets/setup-BFcmn89w.js","assets/toasts-BL_8kH4B.js","assets/useWebSocket-Dh-clEvj.js","assets/chat-store-BgCgMMd0.js","assets/codemap-activity-store-DBdfN0ix.js","assets/stores-BpVw7ENx.js","assets/mailbox-store-BuLRsYu3.js","assets/ui-store-FVcXVdRC.js","assets/view-navigation-D-afwlSZ.js","assets/codemap-index-store-45CkVCxN.js","assets/Toaster-Dic3369l.js","assets/dialog-jbs7gu-q.js","assets/AnalyticsDashboard-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ws-client-B7j8isQb.js","assets/rolldown-runtime-QTnfLwEv.js","assets/vendor-AeHpGMaG.js","assets/monaco-BLUV5g0U.js","assets/monaco-Bowa0-zp.css","assets/markdown-sSmz-Ua_.js","assets/vendor-BMdWcCR4.css","assets/utils-D1fGupR8.js","assets/session-store-DkPaOIhe.js","assets/ProcessMonitor-SLnEEbRY.js","assets/i18n-nlW2iAya.js","assets/activity-Dg9Q9kwt.js","assets/chat-CdiY7G6Z.js","assets/commandPalette-DpaemFux.js","assets/common-COVxQ0FV.js","assets/settings-t7_uBgp_.js","assets/setup-BFcmn89w.js","assets/toasts-BL_8kH4B.js","assets/useWebSocket-Dh-clEvj.js","assets/chat-store-BgCgMMd0.js","assets/codemap-activity-store-DBdfN0ix.js","assets/stores-BpVw7ENx.js","assets/mailbox-store-BuLRsYu3.js","assets/ui-store-FVcXVdRC.js","assets/view-navigation-D-afwlSZ.js","assets/codemap-index-store-45CkVCxN.js","assets/Toaster-Dic3369l.js","assets/dialog-jbs7gu-q.js","assets/AnalyticsDashboard-CvEY3lEY.js","assets/AgentRosterView-X4NWBm16.js","assets/ModelPicker-OSfUtS6_.js","assets/roster-ws-DobwmzEj.js","assets/ChangesView-DplR2Twb.js","assets/empty-state-D-ojp6Gp.js","assets/monaco-theme-DSeCDzQy.js","assets/ChronicleDashboard-BpykJceZ.js","assets/CodeEditor-DQDKQlAo.js","assets/MemoryDrawer-DIrEAQNI.js","assets/button-DvHe5h9X.js","assets/shared-CiaNczO0.js","assets/CodeMap-CnlnHM8P.js","assets/DebugDashboard-d4ETqxOe.js","assets/DesignGalleryView-3jRTmgzx.js","assets/GoalView-CoMRM0Vo.js","assets/ConfirmModal-BD6pUkAB.js","assets/input-oJ0Gehqp.js","assets/KanbanView-BMHq13vg.js","assets/SddFlowGraph-B-5J7zOV.js","assets/MailboxDetailView-C0n5fMGN.js","assets/OfficeMapPanel-TIRw1a9O.js","assets/OfficeMapPanel-D6yTfGIT.css","assets/RefreshDebugView-DA6cPIhw.js","assets/SageTabs-BR09lBUK.js","assets/RequirementIntakeView-CN7Yympd.js","assets/SddHub-CkjrCykN.js","assets/SpecsView-Do8eQuTN.js","assets/SessionsDashboard-CwuOKWQc.js","assets/SessionList-cAmzxd3Z.js","assets/SessionInspectView-Bf3X0qK8.js","assets/SkillDetailView-CULufBnT.js","assets/TechStackView-B2v5LoJp.js","assets/DeadCodeScanPanel-Dp6vW6pV.js","assets/SetupScreen-DZUvrhr0.js","assets/TerminalPanel-Pq97A882.js","assets/xterm-DUBp1lnG.js","assets/xterm-BrP-ENHg.css","assets/CronJobsPanel-Dp9xc7vb.js","assets/QueuePanel-BszNSrlq.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,r as n,t as r}from"./chat-store-BgCgMMd0.js";import{$ as i,$i as a,$n as o,$r as s,$t as c,A as l,Aa as u,An as d,Ar as f,At as p,B as m,Ba as h,Bn as g,Bt as _,C as v,Ca as y,Ci as b,Cn as x,Cr as S,D as C,Dn as w,Dr as T,Dt as E,E as D,Ea as O,Ei as k,En as A,F as j,Fa as ee,Fi as M,Fn as te,Ft as N,G as P,Gi as ne,Gn as F,Gr as I,Gt as re,H as ie,Hn as ae,Hr as oe,Ht as se,I as L,Ia as R,Ii as ce,In as le,It as ue,J as de,Ji as fe,Jn as pe,Jr as me,Jt as he,K as ge,Ki as _e,Kn as ve,Kr as ye,Kt as be,L as xe,Li as Se,Ln as Ce,Lr as we,Lt as Te,M as Ee,Mi as De,Mr as Oe,Mt as ke,N as Ae,Na as je,Nn as Me,Nr as Ne,Nt as Pe,O as Fe,Oi as Ie,On as Le,Or as Re,Ot as ze,P as Be,Pi as Ve,Pn as He,Pr as Ue,Pt as We,Q as Ge,Qi as Ke,Qn as qe,Qr as Je,Qt as Ye,R as Xe,Rn as Ze,Rr as Qe,Rt as $e,Sa as et,Si as tt,Sn as nt,St as rt,T as it,Ta as at,Ti as ot,Tn as st,Tr as ct,U as lt,Un as ut,Ur as dt,V as ft,Va as pt,Vi as mt,Vr as ht,W as gt,Wi as _t,Wn as vt,Wt as yt,X as bt,Xi as xt,Xn as St,Xr as Ct,Y as wt,Yi as Tt,Yn as Et,Yr as Dt,Z as Ot,Zi as kt,Zn as At,Zr as jt,Zt as Mt,_a as Nt,_i as Pt,_r as Ft,_t as It,aa as Lt,ai as Rt,an as zt,ar as Bt,at as Vt,ba as Ht,bi as Ut,br as Wt,ca as Gt,cr as Kt,da as qt,di as Jt,dr as Yt,dt as Xt,ea as Zt,er as Qt,et as $t,fi as en,ft as tn,gn as nn,gr as rn,gt as an,ha as on,hi as sn,hn as cn,ht as ln,ia as un,in as dn,ir as fn,it as pn,j as mn,ji as hn,jr as gn,jt as _n,k as vn,ka as yn,kn as bn,kr as xn,kt as Sn,la as Cn,li as wn,ln as Tn,lt as En,mi as Dn,mn as On,mt as kn,na as An,ni as jn,nn as Mn,nr as Nn,nt as Pn,oa as Fn,oi as In,ot as Ln,pa as Rn,pn as zn,pr as Bn,pt as Vn,q as Hn,qi as Un,qn as Wn,ra as Gn,rn as Kn,rr as qn,rt as Jn,sa as Yn,si as Xn,sn as Zn,sr as Qn,st as $n,ta as er,ti as tr,tn as nr,tr as rr,tt as ir,ui as ar,ur as or,ut as sr,vi as cr,vn as lr,vr as ur,vt as dr,w as fr,wa as pr,wn as mr,wr as hr,wt as gr,xa as _r,xi as vr,xn as yr,xr as br,xt as xr,ya as Sr,yi as Cr,yn as wr,yr as Tr,yt as Er,z as Dr,za as z,zr as Or,zt as kr}from"./vendor-AeHpGMaG.js";import{n as Ar,t as B}from"./i18n-nlW2iAya.js";import{s as V}from"./monaco-BLUV5g0U.js";import{a as jr,c as Mr,i as Nr,l as Pr,n as Fr,o as Ir,r as Lr,s as Rr,t as zr,u as Br}from"./useWebSocket-Dh-clEvj.js";import{l as Vr,t as H}from"./ws-client-B7j8isQb.js";import{t as U}from"./utils-D1fGupR8.js";import{t as W}from"./session-store-DkPaOIhe.js";import{A as Hr,B as Ur,C as Wr,D as Gr,E as Kr,H as qr,I as G,L as Jr,M as Yr,N as Xr,O as Zr,P as Qr,R as $r,S as ei,T as ti,U as ni,V as ri,_ as ii,b as ai,d as oi,f as si,g as ci,h as li,j as ui,k as di,l as fi,n as pi,o as mi,r as hi,t as gi,u as _i,w as vi,x as yi,y as bi,z as xi}from"./stores-BpVw7ENx.js";import{n as Si,r as Ci,t as wi}from"./mailbox-store-BuLRsYu3.js";import{n as K,t as Ti}from"./ui-store-FVcXVdRC.js";import{a as Ei,i as Di,n as Oi,o as q,r as ki,t as Ai}from"./view-navigation-D-afwlSZ.js";import{n as J,t as ji}from"./Toaster-Dic3369l.js";import{a as Mi,i as Ni,n as Pi,o as Fi,r as Ii,t as Li}from"./dialog-jbs7gu-q.js";import{t as Y}from"./button-DvHe5h9X.js";import{t as Ri}from"./input-oJ0Gehqp.js";import{i as zi,n as Bi,o as Vi,r as Hi,t as Ui}from"./ConfirmModal-BD6pUkAB.js";import{d as Wi,p as Gi}from"./markdown-sSmz-Ua_.js";import{n as Ki,t as qi}from"./ModelPicker-OSfUtS6_.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var X=e(pt(),1),Ji=e(h(),1),Yi=new Set([`chat`,`settings`,`goal`,`kanban`,`sddhub`,`files`,`changes`,`sessions`,`setup`,`skill`,`officemap`,`mailbox`,`debug`,`design-gallery`,`refresh-debug`,`analytics`]),Xi=new Set([`goal`,`fleet`,`work`,`worktrees`,`collab`]),Zi=new Set([`todos`,`tasks`,`plan`]);function Qi(){if(typeof window>`u`)return;let e=window.wrongstackDesktopHost;if(!e?.setPrefs)return;let t=B.getState();e.setPrefs({yolo:t.yolo,nextPrediction:t.nextPrediction,contextAutoCompact:t.contextAutoCompact})}function $i(e){typeof window>`u`||window.wrongstackDesktopHost?.setReady?.(e)}function ea(e,t,n){typeof window>`u`||typeof e!=`string`||window.wrongstackDesktopHost?.ackCommand?.(e,t,n)}var Z=En(),ta=Jn,na=$n,ra=X.forwardRef(({className:e,inset:t,children:n,...r},i)=>(0,Z.jsxs)(Ln,{ref:i,className:U(`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent`,t&&`pl-8`,e),...r,children:[n,(0,Z.jsx)(Ke,{className:`ml-auto h-4 w-4`})]}));ra.displayName=Ln.displayName;var ia=X.forwardRef(({className:e,...t},n)=>(0,Z.jsx)(Vt,{ref:n,className:U(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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`,e),...t}));ia.displayName=Vt.displayName;var aa=X.forwardRef(({className:e,sideOffset:t=4,...n},r)=>(0,Z.jsx)(ir,{children:(0,Z.jsx)(Ot,{ref:r,sideOffset:t,className:U(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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`,e),...n})}));aa.displayName=Ot.displayName;var oa=X.forwardRef(({className:e,inset:t,...n},r)=>(0,Z.jsx)(Ge,{ref:r,className:U(`relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0`,t&&`pl-8`,e),...n}));oa.displayName=Ge.displayName;var sa=X.forwardRef(({className:e,children:t,checked:n,...r},a)=>(0,Z.jsxs)(bt,{ref:a,className:U(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),checked:n,...r,children:[(0,Z.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,Z.jsx)(i,{children:(0,Z.jsx)(er,{className:`h-4 w-4`})})}),t]}));sa.displayName=bt.displayName;var ca=X.forwardRef(({className:e,children:t,...n},r)=>(0,Z.jsxs)(Pn,{ref:r,className:U(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,Z.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,Z.jsx)(i,{children:(0,Z.jsx)(ce,{className:`h-2 w-2 fill-current`})})}),t]}));ca.displayName=Pn.displayName;var la=X.forwardRef(({className:e,inset:t,...n},r)=>(0,Z.jsx)($t,{ref:r,className:U(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));la.displayName=$t.displayName;var ua=X.forwardRef(({className:e,...t},n)=>(0,Z.jsx)(pn,{ref:n,className:U(`-mx-1 my-1 h-px bg-muted`,e),...t}));ua.displayName=pn.displayName;var da=({className:e,...t})=>(0,Z.jsx)(`span`,{className:U(`ml-auto text-xs tracking-widest opacity-60`,e),...t});da.displayName=`DropdownMenuShortcut`;var fa=[{id:`chat`,icon:(0,Z.jsx)(pe,{size:16}),label:`Session`},{id:`files`,icon:(0,Z.jsx)(I,{size:16}),label:`Files`},{id:`changes`,icon:(0,Z.jsx)(Ne,{size:16}),label:`Changes`},{id:`mailbox`,icon:(0,Z.jsx)(o,{size:16}),label:`Mailbox`},{id:`skills`,icon:(0,Z.jsx)(yt,{size:16}),label:`Skills`},{id:`worktrees`,icon:(0,Z.jsx)(Ue,{size:16}),label:`Worktrees`},{id:`design`,icon:(0,Z.jsx)(Ce,{size:16}),label:`Design Studio`},{id:`officemap`,icon:(0,Z.jsx)(Fn,{size:16}),label:`Office Map`}],pa=[{id:`settings`,icon:(0,Z.jsx)(nr,{size:16}),label:`Settings`},{id:`roster`,icon:(0,Z.jsx)(qt,{size:16}),label:`Agent Roster`},{id:`sddhub`,icon:(0,Z.jsx)(ln,{size:16}),label:`SDD`},{id:`kanban`,icon:(0,Z.jsx)(k,{size:16}),label:`Kanban`},{id:`goal`,icon:(0,Z.jsx)(cn,{size:16}),label:`Goal`},{id:`codemap`,icon:(0,Z.jsx)(g,{size:16}),label:`CodeMap`},{id:`techstack`,icon:(0,Z.jsx)(Cn,{size:16}),label:`TechStack`},{id:`chronicle`,icon:(0,Z.jsx)(An,{size:16}),label:`Chronicle`},{id:`intake`,icon:(0,Z.jsx)(Ve,{size:16}),label:`Requirements`},{id:`memory`,icon:(0,Z.jsx)(Gt,{size:16}),label:`Memory`}],ma=[`chat`,`files`,`changes`,`mailbox`],ha=[...ma,`skills`,`worktrees`,`officemap`,`design`],ga=132,_a=38,va=165,ya=46;function ba(e,t){let n=fa.length+pa.length,r=Number.isFinite(e)?e:720,i=t?ga:va,a=t?_a:ya,o=Math.floor((r-i)/a);return Math.max(ma.length,Math.min(n,o))}function xa(e){let t=fa.length+pa.length,n=Math.max(ma.length,Math.min(t,Math.floor(e))),r=Math.min(fa.length,n),i=new Set(ha.slice(0,r)),a=fa.map(e=>e.id).filter(e=>i.has(e)),o=fa.map(e=>e.id).filter(e=>!i.has(e)),s=Math.max(0,n-a.length),c=pa.slice(0,s).map(e=>e.id),l=new Set(c);return{visiblePanelIds:a,overflowPanelIds:o,visibleViewIds:c,overflowViewIds:pa.map(e=>e.id).filter(e=>!l.has(e))}}var Sa=fa.map(e=>e.id);function Ca(){return typeof window>`u`?720:window.visualViewport?.height??window.innerHeight}function wa(e){let[t,n]=(0,X.useState)(Ca);return(0,X.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>n(Ca());return e(),window.addEventListener(`resize`,e),window.visualViewport?.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e),window.visualViewport?.removeEventListener(`resize`,e)}},[]),ba(t,e)}function Ta({desktopShell:e=!1}){let t=K(e=>e.activeActivity),n=K(e=>e.sidebarOpen),r=K(e=>e.currentView),i=W(e=>e.projectName),a=G(e=>e.wsConnected),{t:o}=R(),s=(e,t)=>o(`activity:nav.${e}`,t),c=Ci(Si),l=K(e=>e.inspectorOpen),u=wa(e),d=(0,X.useMemo)(()=>xa(u),[u]),f=(0,X.useMemo)(()=>new Set(d.visiblePanelIds),[d.visiblePanelIds]),p=(0,X.useMemo)(()=>new Set(d.overflowPanelIds),[d.overflowPanelIds]),m=(0,X.useMemo)(()=>new Set(d.visibleViewIds),[d.visibleViewIds]),h=(0,X.useMemo)(()=>new Set(d.overflowViewIds),[d.overflowViewIds]),g=fa.filter(e=>f.has(e.id)),_=fa.filter(e=>p.has(e.id)),v=pa.filter(e=>m.has(e.id)),y=pa.filter(e=>h.has(e.id)),b=e=>{if(e===`mailbox`)return c||void 0};return(0,Z.jsxs)(`div`,{className:U(`flex h-full min-h-0 shrink-0 flex-col border-r border-border/70 bg-card/75 backdrop-blur-xl`,e?`w-10`:`w-12`),children:[(0,Z.jsx)(`div`,{className:`flex flex-col items-center shrink-0 border-b border-border/60`,children:(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{q(`chat`)},title:i?o(`activity:brand.returnToChat`,{name:i}):o(`activity:brand.returnToChatDefault`),className:U(`relative flex items-center justify-center overflow-hidden bg-foreground transition-shadow hover:shadow-[0_3px_12px_-2px_hsl(var(--primary)/0.5)]`,e?`w-full h-8`:`w-full h-11`),children:(0,Z.jsx)(`img`,{src:`/wrongstack.svg`,alt:``,"aria-hidden":`true`,draggable:!1,className:`ws-brand-logo h-full w-full`})})}),(0,Z.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-hidden flex flex-col items-center pt-2 pb-1`,children:[g.map(r=>(0,Z.jsx)(Da,{compact:e,icon:r.icon,label:`${s(r.id,r.label)} (${Ei(r.id)})`,active:n&&t===r.id,badge:b(r.id),onClick:()=>Di(r.id)},r.id)),v.length>0&&(0,Z.jsx)(`div`,{className:`my-1.5 h-px w-6 shrink-0 bg-border/70`}),v.map(t=>(0,Z.jsx)(Da,{compact:e,icon:t.icon,label:s(t.id,t.label),active:r===t.id,onClick:()=>ki(t.id)},t.id))]}),(0,Z.jsx)(`div`,{role:`status`,"aria-label":a?o(`activity:connection.connected`,`Connected`):o(`activity:connection.disconnected`,`Disconnected`),className:`flex items-center justify-center py-1`,children:(0,Z.jsx)(`span`,{className:U(`h-1.5 w-1.5 rounded-full`,a?`bg-success`:`bg-muted-foreground/40`),title:a?o(`activity:connection.connected`,`Connected`):o(`activity:connection.disconnected`,`Disconnected`)})}),(0,Z.jsx)(`div`,{className:`flex flex-col items-center shrink-0 pt-1 pb-2 border-t border-border/60`,children:(0,Z.jsx)(Ea,{compact:e,monitorOpen:l,overflowPanels:_,overflowViews:y})})]})}function Ea({compact:e=!1,monitorOpen:t,overflowPanels:n,overflowViews:r}){let{t:i}=R(),a=K(e=>e.activeActivity),o=K(e=>e.sidebarOpen),s=K(e=>e.currentView),c=K(e=>e.inspectorOpen),l=K(e=>e.inspectorTab),u=n.length+r.length,d=n.some(e=>o&&a===e.id),f=r.some(e=>s===e.id),p=d||f,m=e=>{let t=K.getState();t.inspectorOpen&&t.inspectorTab===e?t.setInspectorOpen(!1):(t.setInspectorTab(e),t.setInspectorOpen(!0))};return(0,Z.jsxs)(ta,{children:[(0,Z.jsx)(na,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,"aria-label":u>0?i(`activity:menu.moreWithHidden`,{count:u}):i(`activity:menu.moreOptions`),title:e&&u>0?i(`activity:menu.moreCompactHidden`,{count:u}):i(e?`activity:menu.moreCompact`:`activity:menu.moreFull`),className:U(`ws-nav-button relative flex items-center justify-center rounded-md transition-colors`,e?`h-9 w-9`:`h-11 w-11`,`text-muted-foreground hover:border-border/70 hover:text-foreground hover:bg-muted/60`,`data-[state=open]:text-primary data-[state=open]:bg-primary/10 data-[state=open]:border-primary/30`,(t||p)&&`text-primary`),children:[(0,Z.jsx)(`span`,{className:`h-5 w-5 flex items-center justify-center`,children:(0,Z.jsx)(sn,{size:16})}),u>0&&(0,Z.jsx)(`span`,{className:U(`absolute -top-0.5 -right-0.5 min-w-[15px] h-[15px] flex items-center justify-center rounded px-1 text-[8px] font-bold leading-none tabular`,p?`bg-primary text-primary-foreground`:`bg-muted-foreground text-background`),children:u>9?`9+`:u}),t&&u===0&&(0,Z.jsx)(`span`,{className:`absolute top-1 right-1 h-1.5 w-1.5 rounded-full bg-primary`})]})}),(0,Z.jsxs)(aa,{side:`right`,align:`end`,sideOffset:8,className:`w-56`,children:[(0,Z.jsxs)(oa,{onSelect:()=>K.getState().setPaletteOpen(!0),children:[(0,Z.jsx)(ot,{size:16}),(0,Z.jsx)(`span`,{children:i(`activity:menu.commandPalette`)}),(0,Z.jsx)(da,{children:`⌘K`})]}),(0,Z.jsxs)(oa,{onSelect:()=>K.getState().setShortcutsOpen(!0),children:[(0,Z.jsx)(ur,{size:16}),(0,Z.jsx)(`span`,{children:i(`activity:menu.keyboardShortcuts`)}),(0,Z.jsx)(da,{children:`?`})]}),n.length>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(ua,{}),(0,Z.jsx)(la,{className:`text-[11px] uppercase text-muted-foreground`,children:i(`activity:menu.panels`)}),n.map(e=>(0,Z.jsxs)(oa,{onSelect:()=>q(e.id),children:[e.icon,(0,Z.jsx)(`span`,{children:i(`activity:nav.${e.id}`,e.label)}),o&&a===e.id?(0,Z.jsx)(`span`,{className:`ml-auto w-1.5 h-1.5 rounded-full bg-primary`}):(0,Z.jsx)(da,{children:Ei(e.id)})]},e.id))]}),r.length>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(ua,{}),(0,Z.jsx)(la,{className:`text-[11px] uppercase text-muted-foreground`,children:i(`activity:menu.views`)}),r.map(e=>(0,Z.jsxs)(oa,{onSelect:()=>ki(e.id),children:[e.icon,(0,Z.jsx)(`span`,{children:i(`activity:nav.${e.id}`,e.label)}),s===e.id&&(0,Z.jsx)(`span`,{className:`ml-auto w-1.5 h-1.5 rounded-full bg-primary`})]},e.id))]}),(0,Z.jsx)(ua,{}),(0,Z.jsx)(la,{className:`text-[11px] uppercase text-muted-foreground`,children:i(`activity:nav.settings`,`Settings`)}),(0,Z.jsxs)(oa,{onSelect:()=>ki(`settings`),children:[(0,Z.jsx)(nr,{size:16}),(0,Z.jsx)(`span`,{children:i(`activity:nav.settings`,`Settings`)}),(0,Z.jsx)(`span`,{className:`ml-auto text-[10px] text-muted-foreground`,children:i(`settings:tabs.general`,`overview`)})]}),[{icon:(0,Z.jsx)(Ce,{size:14}),label:`General`,tab:`general`},{icon:(0,Z.jsx)(g,{size:14}),label:`Provider`,tab:`provider`},{icon:(0,Z.jsx)(qt,{size:14}),label:`Agent`,tab:`agent`},{icon:(0,Z.jsx)(sr,{size:14}),label:`Execution`,tab:`execution`},{icon:(0,Z.jsx)(Ft,{size:14}),label:`Fallbacks`,tab:`fallbacks`}].map(({icon:e,label:t,tab:n})=>(0,Z.jsxs)(oa,{onSelect:()=>{K.getState().setSettingsActiveTab(n),ki(`settings`)},children:[e,(0,Z.jsx)(`span`,{children:i(`settings:tabs.${n}`,t)})]},n)),(0,Z.jsx)(ua,{}),(0,Z.jsx)(la,{className:`text-[11px] uppercase text-muted-foreground`,children:i(`activity:menu.monitors`)}),(0,Z.jsxs)(oa,{onSelect:()=>m(`fleet`),children:[(0,Z.jsx)(rn,{size:16}),(0,Z.jsx)(`span`,{children:i(`activity:menu.fleetMonitor`)}),c&&l===`fleet`?(0,Z.jsx)(`span`,{className:`ml-auto w-1.5 h-1.5 rounded-full bg-primary`}):(0,Z.jsx)(da,{children:`⇧⌘M`})]}),(0,Z.jsxs)(oa,{onSelect:()=>m(`sideEffects`),children:[(0,Z.jsx)(sr,{size:16}),(0,Z.jsx)(`span`,{children:i(`activity:inspector.tabAudit`)}),c&&l===`sideEffects`?(0,Z.jsx)(`span`,{className:`ml-auto h-1.5 w-1.5 rounded-full bg-primary`}):null]})]})]})}function Da({compact:e=!1,icon:t,label:n,active:r,badge:i,onClick:a}){return(0,Z.jsxs)(`button`,{type:`button`,onClick:a,"aria-label":n,title:n,className:U(`ws-nav-button relative flex shrink-0 items-center justify-center rounded-md transition-colors`,e?`h-9 w-9`:`h-11 w-11`,`text-muted-foreground hover:border-border/70 hover:text-foreground hover:bg-muted/60`,r&&`ws-nav-button-active`),children:[r&&(0,Z.jsx)(`span`,{className:`absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-6 rounded-r-full bg-primary`}),(0,Z.jsx)(`span`,{className:`h-5 w-5 shrink-0`,children:t}),i!==void 0&&i>0&&(0,Z.jsx)(`span`,{className:`absolute -top-0.5 -right-0.5 min-w-[15px] h-[15px] flex items-center justify-center rounded bg-primary text-[8px] font-bold text-primary-foreground leading-none px-1 tabular`,children:i>99?`99+`:i})]})}var Oa=[{name:`/new`,category:`Session`,description:`Start a brand-new session (fresh on disk and in memory)`},{name:`/clear`,category:`Session`,description:`Wipe current context (keeps session id, disk record stays)`},{name:`/compact`,category:`Session`,description:`Shrink context — elide ancient tool output`},{name:`/compact!`,category:`Session`,description:`Aggressively shrink context now`},{name:`/repair`,category:`Session`,description:`Repair orphan tool-use / tool-result protocol blocks`},{name:`/save`,category:`Session`,description:`Force-flush the session (auto-saved already)`},{name:`/load`,category:`Session`,aliases:[`/resume`],description:`Resume a previous session from disk`},{name:`/export`,category:`Session`,description:`Download the current chat as markdown`},{name:`/debug`,category:`Inspect`,aliases:[`/context`],description:`Context size breakdown per section`},{name:`/tools`,category:`Inspect`,description:`List every registered tool the model can call`},{name:`/memory`,category:`Inspect`,description:`Manage memory: show, remember, forget, clear, stats`},{name:`/todos`,category:`Inspect`,description:`List current todos`},{name:`/stats`,category:`Inspect`,description:`Session stats: tokens, cost, elapsed`},{name:`/skill`,category:`Inspect`,aliases:[`/skills`],description:`List active skills`},{name:`/prompt`,category:`Inspect`,aliases:[`/prompts`],description:`Browse & insert prompts from the library`},{name:`/diag`,category:`Inspect`,description:`Runtime diagnostics (provider, tools, mode, usage)`},{name:`/agents`,category:`Inspect`,description:`Show status of spawned subagents`},{name:`/brain`,category:`Inspect`,description:`Brain status, risk ceiling (risk <level>), or decision support (ask <question>)`},{name:`/plan`,category:`Inspect`,description:`Strategic plan board: show, add, start, done, promote, clear`},{name:`/suggest`,category:`Inspect`,aliases:[`/next-steps`],description:`Ask the agent for concrete next steps`},{name:`/next`,category:`Inspect`,aliases:[`/enxt`],description:`Show or run numbered next-step suggestions`},{name:`/review`,category:`Agent`,aliases:[`/cr`],description:`Ask the agent to review the pending changes (optional focus)`},{name:`/fix`,category:`Agent`,description:`Diagnose and fix an error (paste it) or the latest failure`},{name:`/autonomy`,category:`Agent`,description:`Switch self-driving mode: off | suggest | auto | eternal | eternal-parallel`},{name:`/goal`,category:`Agent`,description:`Goal: start <title> | pause | resume | stop | status`},{name:`/goal-state`,category:`Agent`,description:`Show the current goal state (opens the Goal State dock chip)`},{name:`/fleet`,category:`Agent`,description:`Open the Fleet orchestration monitor`},{name:`/terminal`,category:`App`,aliases:[`/term`],description:"Open the integrated terminal (Ctrl+`)"},{name:`/collab`,category:`Agent`,description:`Open the live collaboration panel`},{name:`/worktree`,category:`Agent`,aliases:[`/worktrees`],description:`Open the worktree view`},{name:`/mode`,category:`Agent`,description:`Switch session mode (no arg lists available modes)`},{name:`/mcp`,category:`Agent`,description:`Open MCP server settings and refresh the server list`},{name:`/working-dir`,category:`Agent`,aliases:[`/cwd`],description:`Show or change the working directory`},{name:`/settings`,category:`Config`,aliases:[`/model`],description:`Open settings (provider/model/keys)`},{name:`/setup`,category:`Config`,description:`Open the provider setup screen to add or change API keys`},{name:`/doctor`,category:`Config`,description:`Check config defaults; use /doctor fix to repair and back up`},{name:`/enhance`,category:`Config`,description:`Toggle prompt refinement before sending`},{name:`/interrupt`,category:`Run`,aliases:[`/abort`,`/stop`,`/int`],description:`Stop the current run (abort the in-flight request)`},{name:`/help`,category:`App`,description:`Show every slash command and what it does`},{name:`/exit`,category:`App`,description:`Exit the session and close WebUI`},{name:`/f`,category:`App`,description:`Open F-key panels (F1–F12). Type /f for numbered options.`},{name:`/f1`,category:`App`,description:`Session panel`,hidden:!0},{name:`/f2`,category:`App`,description:`Fleet orchestration monitor`,hidden:!0},{name:`/f3`,category:`App`,description:`Agents live monitor`,hidden:!0},{name:`/f4`,category:`App`,description:`Worktree monitor`,hidden:!0},{name:`/f5`,category:`App`,description:`Plan panel`,hidden:!0},{name:`/f6`,category:`App`,description:`Todos monitor overlay`,hidden:!0},{name:`/f7`,category:`App`,description:`Queue panel`,hidden:!0},{name:`/f8`,category:`App`,description:`Process list overlay`,hidden:!0},{name:`/f9`,category:`App`,description:`Goal panel`,hidden:!0},{name:`/f10`,category:`App`,description:`Live sessions panel`,hidden:!0},{name:`/f11`,category:`App`,description:`Coordinator monitor`,hidden:!0},{name:`/f12`,category:`App`,description:`Status line picker`,hidden:!0}],ka=[`Run`,`Session`,`Inspect`,`Agent`,`Config`,`App`];function Aa(e){let t=e.toLowerCase();return t===`/`||t===``?Oa.filter(e=>!e.hidden):Oa.filter(e=>e.name.startsWith(t)||(e.aliases?.some(e=>e.startsWith(t))??!1))}function ja(e,n){let r=n-1;for(;r>=0;){let i=t(e[r]);if(i===`@`){let t=r>0?e[r-1]:``;return r===0||/\s/.test(t??``)?{start:r,query:e.slice(r+1,n)}:null}if(/\s/.test(i))return null;r--}return null}function Ma(e){let t=e.thinkingLog;if(!t)return``;if(t.replayed)return`replay`;let n=Math.max(.1,t.durationMs/1e3);return`${n.toFixed(+(n<10))}s`}function Na(e){let t=Math.max(3,...Array.from(e.matchAll(/`+/g),e=>e[0].length+1));return"`".repeat(t)}function Pa(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function Fa(){let e=r.getState().messages,t=[],n=new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`),i=W.getState().projectName||`chat`,a=W.getState().session?.title||i;t.push(`# ${a} — chat export`),t.push(`*Exported: ${new Date().toISOString()}*`),t.push(``);for(let n of e)if(n.thinkingLog){let e=Na(n.thinkingLog.text),r=n.thinkingLog.text.split(`
|
|
3
3
|
`).length;t.push(`### 🧠 Thinking process — iteration ${n.thinkingLog.iteration}`),t.push(``),t.push(`_${Ma(n)} · ${r} line${r===1?``:`s`}_`),t.push(``),t.push(`<details><summary>Log</summary>`),t.push(``),t.push(`${e}text`),t.push(n.thinkingLog.text),t.push(e),t.push(``),t.push(`</details>`),t.push(``)}else if(n.role===`user`)t.push(`## 👤 User`),t.push(``),t.push(n.content),t.push(``);else if(n.role===`assistant`)t.push(`## 🤖 Assistant`),t.push(``),t.push(n.content),t.push(``);else if(n.role===`tool`){let e=n.isError?`❌`:n.toolResult===void 0?`⏳`:`✅`;t.push(`### 🔧 Tool: \`${n.toolName??`unknown`}\` ${e}`),n.toolInput!==void 0&&(t.push("```json"),t.push(JSON.stringify(n.toolInput,null,2)),t.push("```")),n.toolResult&&(t.push(`<details><summary>Output</summary>`),t.push(``),t.push("```"),t.push(n.toolResult),t.push("```"),t.push(`</details>`)),t.push(``)}let o=new Blob([t.join(`
|
|
4
4
|
`)],{type:`text/markdown`}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=`${i.toLowerCase().replace(/[^a-z0-9]+/g,`-`)}-chat-${n}.md`,document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(s)}function Ia(){let e=r.getState().messages,t=W.getState(),n=t.projectName||`chat`,i=Pa(t.session?.title||n),a=new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`),o=e.map(e=>{if(e.thinkingLog){let t=e.thinkingLog.text.split(`
|
|
@@ -130,4 +130,4 @@ Type while the agent is running to queue messages; they are sent automatically w
|
|
|
130
130
|
`):``),y(n.url??``)):i?(s(i.name),l(i.transport),d(i.description??``),x(!0),C(i.lazy??!1),p(i.command??``),h(i.args?.join(` `)??``),_(i.env?Object.entries(i.env).map(([e,t])=>`${e}=${t}`).join(`
|
|
131
131
|
`):``),y(i.url??``)):(s(``),l(`stdio`),d(``),x(!0),C(!1),p(``),h(``),_(``),y(``)))},[n,i,e]);let w=()=>{if(!o.trim()){J.error(a(`settings:mcp.serverNameRequired`));return}let e={};if(g.trim())for(let t of g.trim().split(`
|
|
132
132
|
`)){let n=t.indexOf(`=`);n>0&&(e[t.slice(0,n).trim()]=t.slice(n+1).trim())}r({name:o.trim(),transport:c,description:u.trim()||void 0,enabled:b,command:f.trim()||void 0,args:m.trim()?m.trim().split(/\s+/):void 0,env:Object.keys(e).length>0?e:void 0,url:v.trim()||void 0,lazy:S}),t(!1)},T=!!n,E=!!i;return(0,Z.jsx)(Li,{open:e,onOpenChange:t,children:(0,Z.jsxs)(Pi,{children:[(0,Z.jsx)(Mi,{children:(0,Z.jsx)(Fi,{children:a(T?`settings:mcp.dialogTitleEdit`:E?`settings:mcp.dialogTitleAdd`:`settings:mcp.dialogTitleAddCustom`)})}),(0,Z.jsxs)(`div`,{className:`space-y-4 py-4`,children:[(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:a(`settings:mcp.fieldName`)}),(0,Z.jsx)(Ri,{value:o,onChange:e=>s(e.target.value),placeholder:a(`settings:mcp.fieldNamePlaceholder`),disabled:T||E})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:a(`settings:mcp.fieldTransport`)}),(0,Z.jsxs)(`select`,{className:`w-full h-10 px-3 rounded-md border border-input bg-background text-sm`,value:c,onChange:e=>l(e.target.value),disabled:E,children:[(0,Z.jsx)(`option`,{value:`stdio`,children:`stdio`}),(0,Z.jsx)(`option`,{value:`sse`,children:`sse`}),(0,Z.jsx)(`option`,{value:`streamable-http`,children:`streamable-http`}),(0,Z.jsx)(`option`,{value:`http`,children:`http`})]})]}),(c===`streamable-http`||c===`sse`||c===`http`)&&(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:a(`settings:mcp.fieldUrl`)}),(0,Z.jsx)(Ri,{value:v,onChange:e=>y(e.target.value),placeholder:a(`activity:mCPSection.httpsMcpExampleComMcp`),disabled:E})]}),c===`stdio`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:a(`settings:mcp.fieldCommand`)}),(0,Z.jsx)(Ri,{value:f,onChange:e=>p(e.target.value),placeholder:a(`settings:mcp.fieldCommandPlaceholder`),disabled:E})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`span`,{className:`text-sm font-medium`,children:[a(`settings:mcp.fieldArgs`),` `,(0,Z.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:a(`settings:mcp.fieldArgsHint`)})]}),(0,Z.jsx)(Ri,{value:m,onChange:e=>h(e.target.value),placeholder:a(`settings:mcp.fieldArgsPlaceholder`),disabled:E})]})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`span`,{className:`text-sm font-medium`,children:[a(`settings:mcp.fieldEnv`),` `,(0,Z.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:a(`settings:mcp.fieldEnvHint`)})]}),(0,Z.jsx)(`textarea`,{className:`w-full h-20 px-3 py-2 rounded-md border border-input bg-background text-sm font-mono resize-none`,value:g,onChange:e=>_(e.target.value),placeholder:`GITHUB_TOKEN=ghp_...
|
|
133
|
-
AWS_REGION=us-east-1`})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:a(`settings:mcp.fieldDescription`)}),(0,Z.jsx)(Ri,{value:u,onChange:e=>d(e.target.value),placeholder:a(`settings:mcp.fieldDescriptionPlaceholder`)})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,id:`server-enabled`,checked:b,onChange:e=>x(e.target.checked),className:`rounded`}),(0,Z.jsx)(`label`,{htmlFor:`server-enabled`,className:`text-sm`,children:a(`settings:mcp.enableServer`)})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,id:`server-lazy`,checked:S,onChange:e=>C(e.target.checked),className:`rounded`}),(0,Z.jsxs)(`label`,{htmlFor:`server-lazy`,className:`text-sm`,children:[a(`settings:mcp.lazyConnect`),` `,(0,Z.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:a(`settings:mcp.lazyConnectHint`)})]})]})]}),(0,Z.jsxs)(Ni,{children:[(0,Z.jsx)(Y,{variant:`outline`,onClick:()=>t(!1),children:a(`common:action.cancel`)}),(0,Z.jsx)(Y,{onClick:w,children:a(T?`settings:mcp.saveChanges`:`settings:mcp.addServer`)})]})]})})}function rp({server:e,isAdded:t,onAdd:n}){let{t:r}=R();return(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3 rounded-md border border-border/70 bg-card/70 p-3 transition-colors hover:bg-card`,children:[(0,Z.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-sm`,children:e.name}),e.badge&&(0,Z.jsx)(Xf,{variant:`secondary`,className:`text-xs shrink-0`,children:e.badge}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-xs shrink-0`,children:e.transport})]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description}),e.requiresEnvVars&&e.requiresEnvVars.length>0&&(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-warning`,children:r(`settings:mcp.requires`,{vars:e.requiresEnvVars.join(`, `)})})]}),(0,Z.jsx)(`div`,{className:`shrink-0`,children:t?(0,Z.jsxs)(Y,{variant:`ghost`,size:`sm`,disabled:!0,children:[(0,Z.jsx)(er,{className:`w-4 h-4 mr-1`}),r(`settings:mcp.added`)]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:n,children:[(0,Z.jsx)(mr,{className:`w-4 h-4 mr-1`}),r(`common:action.add`)]})})]})}function ip(){let e=zr(),{t}=R(),[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(`list`),[c,l]=(0,X.useState)(),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(),[g,_]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!e.client)return;let t=e=>{if(e.type===`mcp.list`){let t=e.payload;r(t.servers??[]),a(!1)}},n=e=>{if(e.type===`mcp.server.added`){let t=e.payload;r(e=>[...e.filter(e=>e.name!==t.server.name),t.server]),J.success(z.t(`settings:mcp.toastAdded`,{name:t.server.name}))}},i=e=>{if(e.type===`mcp.server.removed`){let t=e.payload;r(e=>e.filter(e=>e.name!==t.name)),J.success(z.t(`settings:mcp.toastRemoved`,{name:t.name}))}},o=e=>{if(e.type===`mcp.server.updated`){let t=e.payload;r(e=>e.map(e=>e.name===t.server.name?t.server:e))}},s=e=>{if(e.type===`mcp.server.discovered`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`sleeping`,tools:t.tools}:e)),_(null),J.success(z.t(`settings:mcp.toastDiscovered`,{count:t.tools.length,name:t.name}))}},c=e=>{if(e.type===`mcp.server.sleeping`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`sleeping`}:e)),_(null),J.info(z.t(`settings:mcp.toastSleeping`,{name:t.name}))}},l=e=>{if(e.type===`mcp.server.waking`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`connecting`}:e))}},u=e=>{if(e.type===`mcp.server.connected`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`connected`,pid:t.pid,error:void 0,lastError:void 0}:e)),_(null),J.success(z.t(`settings:mcp.toastConnected`,{name:t.name}))}},d=e=>{if(e.type===`mcp.server.reconnected`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`connected`,error:void 0,lastError:void 0}:e)),_(null),J.success(z.t(`settings:mcp.toastReconnected`,{name:t.name}))}},f=e=>{if(e.type===`mcp.server.disconnected`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`error`,error:t.reason,lastError:t.reason,pid:void 0}:e)),_(null),J.warn(z.t(`settings:mcp.toastDisconnected`,{name:t.name,reason:t.reason}))}},p=e=>{if(e.type===`mcp.server.error`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`error`,error:t.error}:e)),_(null),J.error(z.t(`settings:mcp.toastError`,{name:t.name,error:t.error}))}},m=e=>{if(e.type===`mcp.operation_result`){let t=e.payload;t.success||J.error(t.message),_(null)}},h=e.client.on(`mcp.list`,t),g=e.client.on(`mcp.server.added`,n),v=e.client.on(`mcp.server.removed`,i),y=e.client.on(`mcp.server.updated`,o),b=e.client.on(`mcp.server.discovered`,s),x=e.client.on(`mcp.server.sleeping`,c),S=e.client.on(`mcp.server.waking`,l),C=e.client.on(`mcp.server.connected`,u),w=e.client.on(`mcp.server.error`,p),T=e.client.on(`mcp.operation_result`,m),E=e.client.on(`mcp.server.reconnected`,d),D=e.client.on(`mcp.server.disconnected`,f);return a(!0),e.client?.listMcpServers(),()=>{h?.(),g?.(),v?.(),y?.(),b?.(),x?.(),S?.(),C?.(),w?.(),T?.(),E?.(),D?.()}},[e.client]);let v=(0,X.useCallback)(t=>{e.client?.addMcpServer(t)},[e]),y=(0,X.useCallback)(e=>{h(Qf(e,!1)),p(!0)},[]),b=(0,X.useCallback)(n=>{Hi({title:t(`settings:mcp.removeConfirmTitle`,{name:n}),message:t(`settings:mcp.removeConfirmBody`),confirmLabel:t(`common:action.remove`),danger:!0}).then(t=>{t&&e.client?.removeMcpServer(n)})},[e]),x=(0,X.useCallback)(e=>{l(e),h(void 0),d(!0)},[]),S=(0,X.useCallback)(t=>{e.client?.updateMcpServer(t)},[e]),C=(0,X.useCallback)(t=>{_(t),e.client?.wakeMcpServer(t)},[e]),w=(0,X.useCallback)(t=>{_(t),e.client?.sleepMcpServer(t)},[e]),T=(0,X.useCallback)(t=>{_(t),e.client?.discoverMcpServer(t)},[e]),E=(0,X.useCallback)(()=>{a(!0),e.client?.listMcpServers()},[e]),D=n.filter(e=>e.status===`connected`).length,O=n.filter(e=>e.status===`sleeping`).length,k=new Set(n.map(e=>e.name));return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Kn,{className:`h-5 w-5`})}),(0,Z.jsx)(`h2`,{className:`text-base font-semibold`,children:t(`settings:mcp.heading`)}),n.length>0&&(0,Z.jsx)(`span`,{className:`rounded-md border border-border/60 bg-muted/30 px-2 py-1 text-xs text-muted-foreground`,children:t(`settings:mcp.summary`,{connected:D,sleeping:O,total:n.length})})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:E,disabled:i,children:[i?(0,Z.jsx)(Bt,{className:`w-4 h-4 animate-spin`}):null,t(`common:action.refresh`)]}),(0,Z.jsxs)(Y,{size:`sm`,onClick:()=>{h(void 0),p(!0)},children:[(0,Z.jsx)(mr,{className:`w-4 h-4 mr-1`}),t(`settings:mcp.addCustom`)]})]})]}),(0,Z.jsxs)(Ya,{value:o,onValueChange:e=>s(e),children:[(0,Z.jsxs)(Xa,{children:[(0,Z.jsxs)(Za,{value:`recommended`,children:[(0,Z.jsx)(kr,{className:`w-3.5 h-3.5 mr-1`}),t(`settings:mcp.tabRecommended`)]}),(0,Z.jsx)(Za,{value:`list`,children:t(`settings:mcp.tabServers`)}),(0,Z.jsx)(Za,{value:`add`,children:t(`settings:mcp.tabAddCustom`)})]}),(0,Z.jsxs)(Qa,{value:`recommended`,className:`space-y-3`,children:[(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`settings:mcp.recommendedBody`)}),(0,Z.jsx)(`div`,{className:`grid gap-2`,children:Zf.map(e=>(0,Z.jsx)(rp,{server:e,isAdded:k.has(e.name),onAdd:()=>y(e)},e.name))})]}),(0,Z.jsx)(Qa,{value:`list`,className:`space-y-3`,children:i&&n.length===0?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(Bt,{className:`w-5 h-5 animate-spin mr-2`}),t(`settings:mcp.loadingServers`)]}):n.length===0?(0,Z.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(Kn,{className:`w-10 h-10 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{children:t(`settings:mcp.noServers`)}),(0,Z.jsx)(`p`,{className:`text-sm`,children:t(`settings:mcp.noServersHint`)})]}):n.map(e=>(0,Z.jsx)(tp,{server:e,onWake:()=>C(e.name),onSleep:()=>w(e.name),onDiscover:()=>T(e.name),onEdit:()=>x(e),onRemove:()=>b(e.name)},e.name))}),(0,Z.jsx)(Qa,{value:`add`,children:(0,Z.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[(0,Z.jsx)(`p`,{children:t(`settings:mcp.addCustomBody`)}),(0,Z.jsx)(`p`,{className:`mt-1`,children:t(`settings:mcp.addCustomBodyHint`)})]})})]}),(0,Z.jsx)(np,{open:f,onOpenChange:e=>{e||(p(!1),h(void 0))},prefillConfig:m,onSave:v}),(0,Z.jsx)(np,{open:u,onOpenChange:d,server:c,onSave:S})]})}function ap({syncPref:e}){let{t}=R(),n=B();return(0,Z.jsxs)(`div`,{className:`space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Kn,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:t(`settings:integrations.hqHeading`)})})]}),(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)($,{label:t(`settings:integrations.hqPublishingLabel`),hint:t(`settings:integrations.hqPublishingHint`),value:n.hqEnabled,onChange:()=>e(`hqEnabled`,!n.hqEnabled)}),(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:t(`settings:integrations.hqUrlLabel`)}),(0,Z.jsx)(Ri,{value:n.hqUrl,placeholder:t(`activity:integrationsSection.httpHost3499`),onChange:t=>e(`hqUrl`,t.target.value)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`settings:integrations.hqUrlHint`)})]}),(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:t(`settings:integrations.hqTokenLabel`)}),(0,Z.jsx)(Ri,{type:`password`,value:n.hqToken,placeholder:t(`activity:integrationsSection.clientTokenFromWstackHq`),onChange:t=>e(`hqToken`,t.target.value)})]}),(0,Z.jsx)($,{label:t(`settings:integrations.hqRawContentLabel`),hint:t(`settings:integrations.hqRawContentHint`),value:n.hqRawContent,onChange:()=>e(`hqRawContent`,!n.hqRawContent)})]})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Kn,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:t(`activity:integrationsSection.mcpServers`)})})]}),n.featureMcp?(0,Z.jsx)(ip,{}):(0,Z.jsxs)(`div`,{className:`text-center py-6 text-muted-foreground`,children:[(0,Z.jsx)(Kn,{className:`w-8 h-8 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{className:`text-sm`,children:t(`settings:mcp.disabled`)}),(0,Z.jsx)(`p`,{className:`text-xs mt-1`,children:t(`settings:integrations.disabledHint`)})]})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(dn,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:t(`settings:integrations.telegramHeading`)})})]}),n.tgConfigured?(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)($,{label:t(`settings:integrations.telegramSessionEndLabel`),hint:t(`settings:integrations.telegramSessionEndHint`),value:n.tgSessionEnd,onChange:()=>e(`tgSessionEnd`,!n.tgSessionEnd)}),(0,Z.jsx)($,{label:t(`settings:integrations.telegramDelegateLabel`),hint:t(`settings:integrations.telegramDelegateHint`),value:n.tgDelegate,onChange:()=>e(`tgDelegate`,!n.tgDelegate)}),(0,Z.jsx)($,{label:t(`settings:integrations.telegramLongToolLabel`),hint:t(`settings:integrations.telegramLongToolHint`,{ms:n.tgLongToolMs}),value:n.tgLongToolMs>0,onChange:()=>e(`tgLongToolMs`,n.tgLongToolMs>0?0:3e4)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`settings:integrations.telegramChangesApply`)})]}):(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`settings:integrations.telegramNotConfigured`)})]})]})}function op({provider:e,catalogModels:t,currentCatalogProvider:n,isLoadingModels:r,isSwitching:i,setIsLoadingModels:a,onModelSelect:o,refreshModels:s}){let c=G(e=>e.model),{t:l}=R();return(0,Z.jsx)(`div`,{className:`space-y-4`,children:e?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium`,children:n?.name||e}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e})]}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:()=>{a(!0),s(e)},children:(0,Z.jsx)(lr,{className:U(`h-4 w-4`,r&&`animate-spin`)})})]}),r&&!t[e]?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8`,children:[(0,Z.jsx)(Bt,{className:`h-6 w-6 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:l(`settings:model.loading`)})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Cf,{options:(t[e]||[]).map(e=>({id:e.id,label:e.name||e.id,badges:e.capabilities,detail:[e.contextWindow?`${Math.round(e.contextWindow/1e3)}k`:``,e.inputCost==null?``:`${e.inputCost}/${e.outputCost}`].filter(Boolean).join(` · `),detailHighlight:!0})),selectedId:c,onSelect:o,disabled:i,emptyMessage:l(`settings:model.notFound`)}),i?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`settings:toast.switching`)}):null]})]}):(0,Z.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(vr,{className:`h-8 w-8 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{children:l(`settings:model.selectProviderFirst`)})]})})}var sp=Object.freeze([{name:`wstack-prompts`,risk:`medium`,summary:`Prompt library and prompt authoring commands.`,defaultState:`active`,canDisable:!0},{name:`wstack-sync`,risk:`medium`,summary:`Cloud sync commands for prompts, skills, settings, memory, and history.`,defaultState:`active`,canDisable:!0},{name:`wstack-cloud-config-sync`,risk:`medium`,summary:`my.wrongstack.com config synchronization over the namespaced sync API.`,defaultState:`active`,canDisable:!0},{name:`wstack-chimera`,risk:`medium`,summary:`Spawns a post-session code review subagent when explicitly enabled.`,defaultState:`inactive`,canDisable:!0},{name:`wstack-auto-review`,risk:`medium`,summary:`Tracks changed files and requests bounded mid-session Chimera reviews.`,defaultState:`inactive`,canDisable:!0},{name:`wstack-skills`,risk:`medium`,summary:`Skill library, authoring, install, update, and uninstall commands.`,defaultState:`active`,canDisable:!0},{name:`@wrongstack/plug-lsp`,risk:`medium`,summary:`Language Server Protocol tools and slash commands.`,defaultState:`inactive`,canDisable:!0},{name:`telegram`,risk:`medium`,summary:`Telegram bridge for messages, approvals, and notifications.`,defaultState:`inactive`,canDisable:!0},{name:`agent-handoff`,risk:`medium`,summary:`Listens for subagent.done events and posts structured handoff notes to the project mailbox`,defaultState:`inactive`,canDisable:!0},{name:`cost-tracker`,risk:`low`,summary:`Tracks LLM token usage and estimated cost per session with per-model breakdown`,defaultState:`active`,canDisable:!0},{name:`file-watcher`,risk:`medium`,summary:`Watches project files and emits events when changes occur (add, change, delete)`,defaultState:`inactive`,canDisable:!0},{name:`git-autocommit`,risk:`high`,summary:`AI-powered git staging and conventional commit message generation`,defaultState:`inactive`,canDisable:!0},{name:`auto-doc`,risk:`medium`,summary:`Auto-generates JSDoc/TSDoc comments for functions, classes, types, and interfaces`,defaultState:`inactive`,canDisable:!0},{name:`shell-check`,risk:`low`,summary:`Runs shellcheck analysis on bash/shell scripts and surfaces issues with severity levels`,defaultState:`inactive`,canDisable:!0},{name:`cron`,risk:`medium`,summary:`Schedules recurring tasks using beforeIteration/afterIteration extension hooks`,defaultState:`inactive`,canDisable:!0},{name:`template-engine`,risk:`medium`,summary:`Expands file templates with variable substitution, conditionals, and loops`,defaultState:`inactive`,canDisable:!0},{name:`semver-bump`,risk:`high`,summary:`Conventional-commit-driven semver version bumps with changelog generation`,defaultState:`inactive`,canDisable:!0},{name:`secret-scanner`,risk:`high`,summary:`Pre-tool hook that blocks (or optionally redacts) tools whose arguments contain plaintext credentials`,defaultState:`active`,canDisable:!0},{name:`todo-tracker`,risk:`low`,summary:`Persistent, project-scoped todo backlog that survives across sessions`,defaultState:`active`,canDisable:!0},{name:`token-budget`,risk:`medium`,summary:`Enforces a per-session token budget — warns at a threshold and stops the agent loop when the limit is hit`,defaultState:`active`,canDisable:!0},{name:`lint-gate`,risk:`medium`,summary:`Pre-tool hook that runs biome/eslint on would-be file content before write or edit commits`,defaultState:`inactive`,canDisable:!0},{name:`branch-guard`,risk:`high`,summary:`Pre-tool hook that blocks commits, pushes, and merges to protected branches (default: main, master)`,defaultState:`inactive`,canDisable:!0},{name:`diff-summary`,risk:`low`,summary:`PostToolUse hook that injects a compact git diff into the LLM context after every write or edit`,defaultState:`active`,canDisable:!0},{name:`commit-validator`,risk:`medium`,summary:`PreToolUse hook that validates conventional-commit format before git_autocommit or bash git commit runs`,defaultState:`inactive`,canDisable:!0},{name:`format-on-save`,risk:`medium`,summary:`PostToolUse hook that runs biome format --write on the file after every write or edit`,defaultState:`inactive`,canDisable:!0},{name:`test-runner-gate`,risk:`medium`,summary:`PostToolUse hook that runs the relevant test file after every write or edit to a source file`,defaultState:`inactive`,canDisable:!0},{name:`import-organizer`,risk:`medium`,summary:`PostToolUse hook that re-sorts and de-duplicates imports in a file after every write or edit`,defaultState:`inactive`,canDisable:!0},{name:`knowledge-graph`,risk:`low`,summary:`Accumulates structured (subject, relation, object) facts about the project and queries them across sessions`,defaultState:`active`,canDisable:!0},{name:`todo-listener`,risk:`low`,summary:"PostToolUse hook on `todo` tool — broadcasts a status update to the project mailbox so other agents can see what this one is working on",defaultState:`inactive`,canDisable:!0},{name:`session-recap`,risk:`low`,summary:`Stop hook that posts a one-page session summary (tokens, tools, commits, last activity) to the project mailbox`,defaultState:`inactive`,canDisable:!0},{name:`spec-linker`,risk:`low`,summary:"Markdown link auditor for plugin references. PostToolUse surfaces unlinked references; PreToolUse on `write` (autoFix) wraps them in markdown links via modifiedInput.",defaultState:`inactive`,canDisable:!0},{name:`loop-breaker`,risk:`low`,summary:`Detects runaway tool-call loops (identical repeats and A-B-A-B oscillation) — warns the model, then blocks`,defaultState:`active`,canDisable:!0},{name:`gitignore-guard`,risk:`low`,summary:`PostToolUse hook that suggests or appends .gitignore entries for build-artifact-looking files after every write or edit`,defaultState:`inactive`,canDisable:!0},{name:`path-guard`,risk:`medium`,summary:`Blocks or warns about writes, edits, and destructive shell commands touching protected paths (lockfiles, .env, .git, migrations)`,defaultState:`inactive`,canDisable:!0},{name:`process-guard`,risk:`high`,summary:`Blocks kill commands (taskkill, Stop-Process, kill, pkill, wmic) that target active WrongStack processes or their host terminals.`,defaultState:`active`,canDisable:!0},{name:`context-pins`,risk:`low`,summary:`Pin durable facts into the system prompt (pin_add/pin_remove/pin_list) — pins survive compaction and persist across sessions`,defaultState:`active`,canDisable:!0},{name:`checkpoint`,risk:`medium`,summary:`In-session file snapshots: auto-captures content before every write/edit and restores any pre-edit state on demand`,defaultState:`inactive`,canDisable:!0},{name:`error-lens`,risk:`low`,summary:`Distills failed command output into a compact digest (error line + project stack frames) and flags repeated failures`,defaultState:`active`,canDisable:!0},{name:`dep-guard`,risk:`medium`,summary:`Supervises dependency installs: blocks deny-listed packages, flags typosquat lookalikes, and optionally warns on unpinned versions`,defaultState:`active`,canDisable:!0},{name:`config-validator`,risk:`low`,summary:`Validates JSON/JSONC/YAML/TOML files right after write/edit and reports syntax problems in the same turn`,defaultState:`active`,canDisable:!0},{name:`notify-hub`,risk:`medium`,summary:`POSTs session events (stop, tool errors, budget thresholds) and ad-hoc notify_send messages to a configurable webhook`,defaultState:`inactive`,canDisable:!0},{name:`changelog-writer`,risk:`low`,summary:`Collects session work (commits, edits, manual notes) and writes Keep-a-Changelog entries under [Unreleased] on demand`,defaultState:`inactive`,canDisable:!0},{name:`injection-shield`,risk:`low`,summary:`Scans tool output (fetched pages, files) for prompt-injection patterns and warns the model that content is data, not instructions`,defaultState:`active`,canDisable:!0},{name:`llm-cache`,risk:`medium`,summary:`Caches identical provider requests and short-circuits the provider call on a hit (wrapProviderRunner). Opt-in; deterministic-only by default.`,defaultState:`inactive`,canDisable:!0},{name:`model-router`,risk:`medium`,summary:`Routes each provider call to a different model by declarative size/tool rules (wrapProviderRunner). Opt-in; dry-run by default; routes within the active provider only.`,defaultState:`inactive`,canDisable:!0},{name:`pr-drafter`,risk:`low`,summary:`Collects session work (commits, edited files, diff) and drafts a pull-request description`,defaultState:`inactive`,canDisable:!0},{name:`prompt-firewall`,risk:`high`,summary:`Scans the provider wire for credential leaks before context reaches the LLM API (wrapProviderRunner); redact/warn/block. Opt-in; redact by default.`,defaultState:`inactive`,canDisable:!0},{name:`auto-escalate`,risk:`medium`,summary:`On retryable provider errors, retries the turn with the next model in an escalation ladder (onError). Opt-in; defers to default recovery otherwise.`,defaultState:`inactive`,canDisable:!0},{name:`test-coverage-gate`,risk:`medium`,summary:`PostToolUse hook that detects test coverage regressions after source-file edits`,defaultState:`inactive`,canDisable:!0},{name:`type-gate`,risk:`medium`,summary:`PostToolUse hook that runs TypeScript type-checking after every write or edit to a source file`,defaultState:`inactive`,canDisable:!0},{name:`token-throttle`,risk:`medium`,summary:`Rolling-window tokens/min budget that delays provider calls to stay under a rate limit (wrapProviderRunner). Opt-in; delay capped by maxDelayMs.`,defaultState:`inactive`,canDisable:!0},{name:`plugin-stack-observer`,risk:`low`,summary:`Observes the wrapProviderRunner stack and exposes it to operators (plugin_stack_status) and, optionally, to the LLM (system-prompt contributor).`,defaultState:`inactive`,canDisable:!0},{name:`dependency-vulnerability-gate`,risk:`high`,summary:`PostToolUse hook that runs npm/pnpm audit after dependency installs and blocks or warns on vulnerabilities above a severity threshold`,defaultState:`inactive`,canDisable:!0},{name:`migration-planner`,risk:`low`,summary:`Builds evidence-backed migration checklists with optional Council-reviewed risk analysis`,defaultState:`inactive`,canDisable:!0},{name:`semantic-search-indexer`,risk:`low`,summary:`Builds an in-memory keyword index over project source files and answers ranked search queries`,defaultState:`inactive`,canDisable:!0},{name:`auto-i18n-extractor`,risk:`low`,summary:`Detects hardcoded user-facing strings in UI source files and suggests translation keys`,defaultState:`inactive`,canDisable:!0},{name:`doc-sync-guard`,risk:`low`,summary:`PostToolUse hook that tracks changed public source files and warns when README/docs edits omit them`,defaultState:`inactive`,canDisable:!0},{name:`api-compatibility-gate`,risk:`medium`,summary:`PostToolUse hook that detects breaking API changes (removed exports) in entry-point files after writes or edits`,defaultState:`inactive`,canDisable:!0},{name:`performance-regression-gate`,risk:`medium`,summary:`Compares benchmark results to detect performance regressions and reports metrics that increased beyond the configured threshold`,defaultState:`inactive`,canDisable:!0},{name:`test-flake-detector`,risk:`medium`,summary:`Runs a test command multiple times and reports tests that fail non-deterministically`,defaultState:`inactive`,canDisable:!0},{name:`schema-evolution-guard`,risk:`high`,summary:`PostToolUse hook that guards database/API schema changes by detecting destructive patterns in schema files`,defaultState:`inactive`,canDisable:!0},{name:`license-audit-gate`,risk:`high`,summary:`PostToolUse hook that audits dependency licenses after package-manager install/add commands and blocks disallowed licenses`,defaultState:`inactive`,canDisable:!0},{name:`accessibility-auditor`,risk:`medium`,summary:`Audits .tsx/.jsx/.html/.vue files for common accessibility issues and reports findings after writes/edits`,defaultState:`inactive`,canDisable:!0},{name:`security-hotspot-scanner`,risk:`high`,summary:`Scans source code for security anti-patterns and warns after writes/edits that introduce new hotspots`,defaultState:`inactive`,canDisable:!0},{name:`dead-code-detector`,risk:`low`,summary:`Lightweight regex-based scan for exported identifiers that appear unused anywhere in the project`,defaultState:`inactive`,canDisable:!0},{name:`duplicate-code-detector`,risk:`low`,summary:`Finds duplicated code blocks across source files using normalized-line fingerprinting`,defaultState:`inactive`,canDisable:!0},{name:`code-metrics`,risk:`low`,summary:`Computes per-file line counts, function counts, and cyclomatic-complexity-like scores`,defaultState:`inactive`,canDisable:!0},{name:`refactor-suggester`,risk:`low`,summary:`Suggests refactoring opportunities using regex-based smell detection`,defaultState:`inactive`,canDisable:!0},{name:`test-generator`,risk:`low`,summary:`Generates framework-correct test skeletons with optional host-routed LLM test authoring`,defaultState:`inactive`,canDisable:!0},{name:`release-notes-generator`,risk:`low`,summary:`Generates traceable release notes from conventional commits with optional LLM polishing`,defaultState:`inactive`,canDisable:!0},{name:`smart-rename`,risk:`medium`,summary:`Whole-word identifier rename inside a single source file`,defaultState:`inactive`,canDisable:!0},{name:`feature-flag-tracker`,risk:`low`,summary:`Scans source files for feature-flag-like expressions and reports usages`,defaultState:`inactive`,canDisable:!0},{name:`interface-contract-guard`,risk:`medium`,summary:`Checks TypeScript interfaces for visible implementers and warns about contract drift`,defaultState:`inactive`,canDisable:!0}]),cp={"wstack-chimera":`settings:context.pluginChimera`,"wstack-skills":`settings:context.pluginSkills`,"wstack-prompts":`settings:context.pluginPrompts`,"cost-tracker":`settings:context.pluginCostTracker`,telegram:`settings:context.pluginTelegram`,"knowledge-graph":`settings:context.pluginKnowledgeGraph`,"error-lens":`settings:context.pluginErrorLens`,"todo-tracker":`settings:context.pluginTodoTracker`,"secret-scanner":`settings:context.pluginSecretScanner`,"lint-gate":`settings:context.pluginLintGate`,"diff-summary":`settings:context.pluginDiffSummary`,"dep-guard":`settings:context.pluginDepGuard`,"type-gate":`settings:context.pluginTypeGate`,"injection-shield":`settings:context.pluginInjectionShield`,"prompt-firewall":`settings:context.pluginPromptFirewall`,"token-budget":`settings:context.pluginTokenBudget`,"loop-breaker":`settings:context.pluginLoopBreaker`};function lp(e){return e.replace(/^@wrongstack\//,``).replace(/^wstack-/,``).split(`-`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}var up=[...sp].sort((e,t)=>lp(e.name).localeCompare(lp(t.name)));function dp(){let{t:e}=R(),t=B();return(0,Z.jsxs)(`div`,{className:`pt-2 border-t`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-3 mt-3 flex items-center gap-2`,children:[(0,Z.jsx)(yr,{className:`h-4 w-4 text-muted-foreground`}),e(`settings:context.pluginsPerPluginHeading`)]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mb-2`,children:e(`settings:context.pluginsPerPluginHint`)}),up.map(n=>{let r=cp[n.name],i=r?e(r):lp(n.name),a=t.pluginsEnabled?.[n.name]??n.defaultState===`active`;return(0,Z.jsx)($,{label:i,hint:n.summary,value:a,disabled:!n.canDisable,onChange:()=>{let e={...t.pluginsEnabled,[n.name]:!a};t.set({pluginsEnabled:e})}},n.name)})]})}function fp({maskedKey:e,className:t}){let{t:n}=R(),[r,i]=(0,X.useState)(!1),a=(0,X.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},[e]);return(0,Z.jsxs)(`div`,{className:U(`group flex items-center gap-1.5 rounded-md border border-border/50 bg-background/50 px-2 py-1 font-mono text-xs text-muted-foreground`,t),children:[(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate tracking-wide`,children:e}),(0,Z.jsx)(`button`,{type:`button`,onClick:a,className:`shrink-0 rounded p-0.5 text-muted-foreground/50 opacity-0 transition-all hover:text-foreground group-hover:opacity-100 focus:opacity-100`,title:r?`Copied`:`Copy key preview`,"aria-label":n(`activity:apikeydisplay.copyApiKeyToClipboard`),children:r?(0,Z.jsx)(er,{className:`h-3 w-3 text-success`}):(0,Z.jsx)(b,{className:`h-3 w-3`})})]})}function pp(){let e=(0,X.useRef)([]);return{setFieldRef:(0,X.useCallback)(t=>n=>{e.current[t]=n},[]),handleKeyDown:(0,X.useCallback)((t,n,r)=>{if(t.key===`ArrowDown`){t.preventDefault();for(let t=n+1;t<e.current.length;t++){let n=e.current[t];if(n&&!n.hasAttribute(`disabled`)&&n.getAttribute(`aria-disabled`)!==`true`){if(n.focus(),n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement){let e=n.value.length;n.setSelectionRange(e,e)}return}}return}if(t.key===`ArrowUp`){t.preventDefault();for(let t=n-1;t>=0;t--){let n=e.current[t];if(n&&!n.hasAttribute(`disabled`)&&n.getAttribute(`aria-disabled`)!==`true`){n.focus(),(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement)&&n.setSelectionRange(n.value.length,n.value.length);return}}return}t.key===`Enter`&&r&&(t.preventDefault(),r())},[])}}var mp={openrouter:{id:`openrouter`,name:`OpenRouter (Metered)`,family:`openai-compatible`,baseUrl:`https://openrouter.ai/api/v1`,envVars:[`OPENROUTER_API_KEY`],models:[`openai/gpt-4o`,`openai/gpt-4o-mini`,`anthropic/claude-sonnet-4-20250514`,`google/gemini-2.0-flash-001`,`meta-llama/llama-4-scout`,`deepseek/deepseek-chat`],usage:`metered-api`,docsUrl:`https://openrouter.ai/docs/quickstart`,autoDiscover:!0,requestPolicy:`openrouter`,catalog:{description:`All models via one key`,icon:`🔀`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`sk-or-...`}},"kimi-for-coding":{id:`kimi-for-coding`,name:`Kimi Code (Subscription)`,family:`openai-compatible`,baseUrl:`https://api.kimi.com/coding/v1`,envVars:[`KIMI_API_KEY`],models:[`kimi-for-coding`,`kimi-for-coding-highspeed`],quirks:{thinkingParam:`kimi-toggle`},usage:`subscription-interactive`,docsUrl:`https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html`,requestPolicy:`kimi`,catalog:{description:`Personal interactive coding with the Kimi Code subscription key. Generate the API key at kimi.com/code/console.`,icon:`🌙`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`sk-...`}},moonshotai:{id:`moonshotai`,name:`Moonshot Platform (Metered)`,family:`openai-compatible`,baseUrl:`https://api.moonshot.ai/v1`,envVars:[`MOONSHOT_API_KEY`],models:[`kimi-k2.7-code`,`kimi-k2.7-code-highspeed`],quirks:{thinkingParam:`always-on`},usage:`metered-api`,docsUrl:`https://platform.kimi.ai/docs/api/overview`,requestPolicy:`kimi`,catalog:{description:`Metered Moonshot Platform API — pay-as-you-go for automation, background work, and commercial use.`,icon:`🌑`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`sk-...`}},"zai-coding-plan":{id:`zai-coding-plan`,name:`Z.AI Coding Plan (Subscription)`,family:`openai-compatible`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,envVars:[`ZHIPU_API_KEY`],models:[`glm-5.2`,`glm-5-turbo`,`glm-4.7`],quirks:{thinkingParam:`zai-glm`},usage:`subscription-interactive`,docsUrl:`https://docs.z.ai/devpack/quick-start`,requestPolicy:`zai`,catalog:{description:`Use your Z.AI Coding Plan subscription. Generate an API key from your Z.AI dashboard.`,icon:`🔷`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`...`}},zai:{id:`zai`,name:`Z.AI API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.z.ai/api/paas/v4`,envVars:[`ZHIPU_API_KEY`],models:[`glm-4.7`,`glm-5-turbo`,`glm-5.2`],quirks:{thinkingParam:`zai-glm`},usage:`metered-api`,docsUrl:`https://docs.z.ai/guides/overview/quick-start`,requestPolicy:`zai`,catalog:{description:`Pay-as-you-go Z.AI GLM access for automation and commercial use.`,icon:`🔷`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`...`,referral:{code:`JQZ7TPPRA6`,reward:`Limited-time deal for GLM Coding Plan subscription`,url:`https://z.ai/subscribe?ic=JQZ7TPPRA6`}}},minimax:{id:`minimax`,name:`MiniMax Token Plan (Subscription)`,family:`openai-compatible`,baseUrl:`https://api.minimax.io/v1`,envVars:[`MINIMAX_API_KEY`],models:[`MiniMax-M3`,`MiniMax-M2.7`,`MiniMax-M2.5`,`MiniMax-M2`],usage:`subscription-interactive`,docsUrl:`https://platform.minimax.io/docs/api-reference/text-chat-openai`,catalog:{description:`Subscribe to one plan and unlock frontier coding, 1M context, and native multimodality.`,icon:`🔮`,color:`from-destructive/10 to-destructive/5 border-destructive/25 hover:border-destructive/45`,keyPlaceholder:`eyJ...`,referral:{code:`JrA4R9QAEn`,reward:`Friends get 10% off + Builder benefits. Referrers earn 10% cashback + community perks.`,url:`https://platform.minimax.io/subscribe/token-plan?code=JrA4R9QAEn&source=link`}}},mistral:{id:`mistral`,name:`Mistral AI API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.mistral.ai/v1`,envVars:[`MISTRAL_API_KEY`],models:[`mistral-large-latest`,`codestral-latest`,`ministral-8b-latest`],usage:`metered-api`,docsUrl:`https://docs.mistral.ai/`,catalog:{description:`Mistral Large, Codestral, and Ministral — open-weight frontier models.`,icon:`🌬️`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`Vz8d...`}},deepseek:{id:`deepseek`,name:`DeepSeek API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.deepseek.com`,envVars:[`DEEPSEEK_API_KEY`],models:[`deepseek-v4-flash`,`deepseek-v4-pro`],usage:`metered-api`,docsUrl:`https://api-docs.deepseek.com/`,requestPolicy:`deepseek`,catalog:{description:`High-performance reasoning at low cost`,icon:`🐋`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`sk-...`}},groq:{id:`groq`,name:`GroqCloud (Metered)`,family:`openai-compatible`,baseUrl:`https://api.groq.com/openai/v1`,envVars:[`GROQ_API_KEY`],models:[`llama-3.3-70b-versatile`,`llama-3.1-8b-instant`,`mixtral-8x7b-32768`,`gemma2-9b-it`],usage:`metered-api`,docsUrl:`https://console.groq.com/docs/api-reference`,requestPolicy:`groq`,catalog:{description:`Ultra-fast inference via LPU hardware — Llama, Mixtral, Gemma, and Qwen models.`,icon:`⚡`,color:`from-warning/12 to-warning/5 border-warning/30 hover:border-warning/50`,keyPlaceholder:`gsk_...`}},perplexity:{id:`perplexity`,name:`Perplexity Sonar API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.perplexity.ai`,envVars:[`PERPLEXITY_API_KEY`],models:[`sonar-pro`,`sonar`,`sonar-reasoning-pro`,`sonar-reasoning`],usage:`metered-api`,docsUrl:`https://docs.perplexity.ai/`,requestPolicy:`perplexity`,catalog:{description:`Web-augmented chat models with built-in search and citations.`,icon:`🔍`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`pplx-...`}},"alibaba-token-plan":{id:`alibaba-token-plan`,name:`Alibaba Token Plan (Personal Edition)`,family:`openai-compatible`,baseUrl:`https://dashscope.aliyuncs.com/compatible-mode/v1`,envVars:[`ALIBABA_API_KEY`,`DASHSCOPE_API_KEY`],models:[`qwen3.8-max-preview`,`qwen3.7-max`,`qwen3.7-plus`,`qwen3.6-flash`,`glm-5.2`,`deepseek-v4-pro`,`wan2.7-image`,`wan2.7-image-pro`,`happyhorse-1.1-t2v`,`happyhorse-1.1-i2v`,`happyhorse-1.1-r2v`],customModels:{"qwen3.8-max-preview":{capabilities:{tools:!0,vision:!0,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"qwen3.7-max":{capabilities:{tools:!0,vision:!1,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"qwen3.7-plus":{capabilities:{tools:!0,vision:!0,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"qwen3.6-flash":{capabilities:{tools:!0,vision:!0,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"glm-5.2":{capabilities:{tools:!0,vision:!1,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"deepseek-v4-pro":{capabilities:{tools:!0,vision:!1,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!1,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"wan2.7-image":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"wan2.7-image-pro":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"happyhorse-1.1-t2v":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"happyhorse-1.1-i2v":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"happyhorse-1.1-r2v":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}}},usage:`subscription-interactive`,docsUrl:`https://www.alibabacloud.com/help/en/model-studio/token-plan-personal-overview`,requestPolicy:`alibaba`,catalog:{description:`Monthly Credits subscription for Qwen, DeepSeek, GLM, Wanx image, and HappyHorse video models.`,icon:`☁️`,color:`from-warning/12 to-warning/5 border-warning/30 hover:border-warning/50`,keyPlaceholder:`sk-...`}}};Object.keys(mp);var hp=[{id:`openai`,name:`OpenAI`,family:`openai`,envVars:[`OPENAI_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://platform.openai.com/api-keys`,catalog:{description:`GPT, o-series, and Codex models`,icon:`🤖`,color:`from-success/12 to-success/5 border-success/30 hover:border-success/50`,keyPlaceholder:`sk-...`}},{id:`anthropic`,name:`Anthropic`,family:`anthropic`,envVars:[`ANTHROPIC_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://console.anthropic.com/settings/keys`,catalog:{description:`Claude model access`,icon:`🧠`,color:`from-warning/12 to-warning/5 border-warning/30 hover:border-warning/50`,keyPlaceholder:`sk-ant-...`}},{id:`google`,name:`Google`,family:`google`,envVars:[`GOOGLE_GENERATIVE_AI_API_KEY`,`GEMINI_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://aistudio.google.com/apikey`,catalog:{description:`Gemini Pro, Flash, and Nano`,icon:`✨`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`AIza...`}},{id:`openai-codex`,name:`OpenAI Codex OAuth`,family:`openai-codex`,envVars:[],models:[],usage:`subscription-interactive`,docsUrl:`https://developers.openai.com/codex/`},{id:`anthropic-oauth`,name:`Anthropic OAuth`,family:`anthropic-oauth`,envVars:[],models:[],usage:`subscription-interactive`,docsUrl:`https://docs.anthropic.com/`},{id:`github-copilot`,name:`GitHub Copilot`,family:`github-copilot`,envVars:[],models:[],usage:`subscription-interactive`,docsUrl:`https://docs.github.com/en/copilot`},{id:`opencode-go`,name:`OpenCode Go`,family:`openai-compatible`,baseUrl:`https://opencode.ai/zen/go/v1`,envVars:[`OPENCODE_API_KEY`],models:[],usage:`subscription-interactive`,docsUrl:`https://opencode.ai/go?ref=6VZAER87H4`,catalog:{description:`Global hosted API for 75+ LLM providers — stable access from US, EU, and Singapore`,icon:`🌍`,color:`from-success/12 to-success/5 border-success/30 hover:border-success/50`,keyPlaceholder:`oc-...`,referral:{code:`6VZAER87H4`,reward:`Support the project by signing up with this referral link`,url:`https://opencode.ai/go?ref=6VZAER87H4`}}},{id:`xai`,name:`xAI`,family:`openai-compatible`,baseUrl:`https://api.x.ai/v1`,envVars:[`XAI_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://docs.x.ai/`,requestPolicy:`xai`},{id:`ai-gateway`,name:`Vercel AI Gateway`,family:`openai-compatible`,baseUrl:`https://ai-gateway.vercel.sh/v1`,discoveryOnlyBaseUrl:!0,envVars:[`AI_GATEWAY_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://vercel.com/docs/ai-gateway`,autoDiscover:!0,catalog:{description:`Every model behind one key — routed by Vercel AI Gateway`,icon:`▲`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`vck_...`}}],gp=[{id:`omniroute`,name:`OmniRoute`,family:`openai-compatible`,baseUrl:`http://localhost:20128/v1`,envVars:[],models:[],usage:`local`,quirks:{stripThinkTags:!0},autoDiscover:!0,local:{noAuth:!0,hint:`WrongStack local gateway · port 20128 · no key · auto-discovers models`}},{id:`ollama`,name:`Ollama`,family:`openai-compatible`,baseUrl:`http://localhost:11434/v1`,envVars:[],models:[],usage:`local`,docsUrl:`https://ollama.com`,local:{noAuth:!0,hint:`ollama.com · port 11434 · no key`}},{id:`vllm`,name:`vLLM`,family:`openai-compatible`,baseUrl:`http://localhost:8000/v1`,envVars:[],models:[],usage:`local`,docsUrl:`https://docs.vllm.ai`,local:{noAuth:!1,hint:`docs.vllm.ai · port 8000 · optional key`}},{id:`lmstudio`,name:`LM Studio`,family:`openai-compatible`,baseUrl:`http://localhost:1234/v1`,envVars:[],models:[],usage:`local`,docsUrl:`https://lmstudio.ai`,local:{noAuth:!1,hint:`lmstudio.ai · port 1234 · optional key`}}],_p=Object.fromEntries([...hp,...Object.values(mp),...gp].map(e=>[e.id,e]));function vp(){return gp.map(e=>{if(!e.baseUrl||!e.local)throw Error(`Local provider definition is incomplete: ${e.id}`);return{id:e.id,label:e.name,defaultBaseUrl:e.baseUrl,noAuth:e.local.noAuth,hint:e.local.hint}})}function yp(){return Object.values(_p).filter(e=>e.catalog!==void 0).map(e=>({id:e.id,name:e.name,family:e.family,description:e.catalog.description,icon:e.catalog.icon,color:e.catalog.color,keyPlaceholder:e.catalog.keyPlaceholder,...e.docsUrl?{docsUrl:e.docsUrl}:{},...e.catalog.referral?{referral:{...e.catalog.referral}}:{}}))}var bp=`openai-compatible`,xp=vp();function Sp({models:e,onChange:t}){let{t:n}=R(),[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)([]),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(``),h=(0,X.useRef)(void 0),g=(0,X.useRef)(null),_=G(e=>e.wsUrl),v=(0,X.useCallback)(e=>{if(!e.trim()){c([]);return}u(!0);let t=H(_),n=t.on(`provider.models.search_result`,t=>{let n=t.payload;!n||n.query!==e.trim()||(c(n.matches??[]),u(!1))});t.searchProviderModels(e.trim(),8),setTimeout(()=>{n?.(),u(!1)},5e3)},[_]);(0,X.useEffect)(()=>{if(h.current&&clearTimeout(h.current),!a.trim()){c([]);return}return h.current=setTimeout(()=>v(a),250),()=>{h.current&&clearTimeout(h.current)}},[a,v]);let y=(0,X.useCallback)((n,r)=>{if(!n||e.some(e=>e.id===n))return;let a={id:n,name:r?.name??r?.modelId??n,...r?.maxOutput?{maxOutput:r.maxOutput}:{},capabilities:{...r?.contextWindow?{maxContext:r.contextWindow}:{},...r?.capabilities.includes(`tools`)?{tools:!0}:{},...r?.capabilities.includes(`vision`)?{vision:!0}:{},...r?.capabilities.includes(`reasoning`)?{reasoning:!0}:{}}};t([...e,a]),o(``),c([]),i(!1)},[e,t]),b=(0,X.useCallback)(n=>{t(e.filter(e=>e.id!==n))},[e,t]),x=(0,X.useCallback)(()=>{let e=p.trim();e&&(y(e),m(``),f(!1))},[p,y]);return(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-[11px] font-medium text-muted-foreground block`,children:n(`setup:screen.custom.models`)}),e.length>0&&(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>(0,Z.jsxs)(`div`,{className:U(`group inline-flex items-center gap-1 px-2 py-1 text-xs rounded`,`bg-accent/10 text-accent border border-accent/20`),title:e.name&&e.name!==e.id?`${e.name}\n${e.capabilities?.maxContext?`maxContext: ${e.capabilities.maxContext}`:``}${e.maxOutput?`\nmaxOutput: ${e.maxOutput}`:``}`:void 0,children:[(0,Z.jsx)(`span`,{className:`truncate max-w-[120px]`,children:e.name&&e.name!==e.id?e.name:e.id}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>b(e.id),className:`opacity-0 group-hover:opacity-100 transition-opacity text-muted-foreground hover:text-destructive`,children:(0,Z.jsx)(Xt,{className:`h-3 w-3`})})]},e.id))}),r?(0,Z.jsxs)(`div`,{className:`space-y-2 p-3 rounded border border-border/60 bg-muted/20`,children:[(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(zt,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,Z.jsx)(Ri,{placeholder:n(`setup:screen.custom.modelSearchPlaceholder`),value:a,onChange:e=>o(e.target.value),className:`text-sm pl-8`,autoFocus:!0}),l&&(0,Z.jsx)(Bt,{className:`absolute right-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 animate-spin text-muted-foreground`})]}),s.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1 max-h-40 overflow-y-auto`,children:s.map(e=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>y(e.modelId,e),className:U(`w-full flex items-start gap-2 p-2 text-left text-xs rounded transition-colors`,`hover:bg-accent/10 border border-transparent hover:border-accent/30`),children:[(0,Z.jsx)(er,{className:`h-3.5 w-3.5 mt-0.5 shrink-0 text-muted-foreground`}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`font-medium block truncate`,children:e.name}),(0,Z.jsxs)(`span`,{className:`text-muted-foreground block`,children:[e.providerName,` · `,e.modelId,e.contextWindow?` · ${(e.contextWindow/1e3).toFixed(0)}K ctx`:``,e.maxOutput?` · ${e.maxOutput.toLocaleString()} out`:``]})]})]},`${e.providerId}\u0000${e.modelId}`))}),!l&&a.trim()&&s.length===0&&(0,Z.jsxs)(`div`,{className:`text-xs text-muted-foreground text-center py-2`,children:[n(`setup:screen.custom.noCatalogMatch`),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{f(!0),setTimeout(()=>g.current?.focus(),50)},className:`ml-1 text-accent underline underline-offset-2 hover:text-accent/80`,children:n(`setup:screen.custom.useCustomId`)})]}),d&&(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(Ri,{ref:g,placeholder:n(`setup:screen.custom.customModelIdPlaceholder`),value:p,onChange:e=>m(e.target.value),className:`text-sm flex-1`,onKeyDown:e=>{e.key===`Enter`&&x()}}),(0,Z.jsxs)(Y,{type:`button`,size:`sm`,onClick:x,disabled:!p.trim(),children:[(0,Z.jsx)(er,{className:`h-3.5 w-3.5 mr-1`}),n(`setup:screen.custom.add`)]})]}),(0,Z.jsx)(`div`,{className:`flex items-center gap-2 pt-1`,children:(0,Z.jsx)(Y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>{i(!1),o(``),c([]),f(!1),m(``)},className:`text-xs`,children:n(`setup:screen.custom.cancel`)})})]}):(0,Z.jsxs)(Y,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>i(!0),className:`text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5 mr-1`}),n(`setup:screen.custom.addModel`)]}),e.length>0&&(0,Z.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.length,` `,e.length===1?n(`setup:screen.custom.modelSingular`):n(`setup:screen.custom.modelPlural`)]})]})}var Cp=[{kind:`chatgpt`,label:`ChatGPT`,subtitle:`Plus / Pro / Team → openai-codex`,icon:(0,Z.jsx)(yt,{className:`h-5 w-5`})},{kind:`claude`,label:`Claude`,subtitle:`Pro / Max → anthropic-oauth`,icon:(0,Z.jsx)(qt,{className:`h-5 w-5`})},{kind:`copilot`,label:`GitHub Copilot`,subtitle:`Copilot → github-copilot`,icon:(0,Z.jsx)(Ie,{className:`h-5 w-5`})}],wp=[`awaiting_browser`,`awaiting_code`,`exchanging`,`fetching_models`];function Tp({ws:e,savedByKind:t}){let{t:n}=R(),[r,i]=(0,X.useState)({chatgpt:{phase:`idle`},claude:{phase:`idle`},copilot:{phase:`idle`}}),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(``),[p,m]=(0,X.useState)(null);(0,X.useEffect)(()=>{let t=e.on(`auth.oauth.status`,e=>{if(e.type!==`auth.oauth.status`)return;let t=e.payload;i(e=>({...e,[t.kind]:{...t}})),t.phase===`success`?(J.success(t.message??z.t(`settings:oauth.signedInToast`,{provider:t.providerId??t.kind})),c(null),o(``),u(null),f(``)):t.phase===`error`&&J.error(t.message??z.t(`settings:oauth.signInFailed`))});return()=>t?.()},[e]);let h=(0,X.useCallback)(t=>{i(e=>({...e,[t]:{phase:t===`copilot`?`awaiting_code`:`awaiting_browser`}})),e.startOAuth(t)},[e]),g=(0,X.useCallback)((t,n)=>{i(e=>({...e,[t]:{phase:t===`copilot`?`awaiting_code`:`awaiting_browser`}})),e.startOAuth(t,n)},[e]),_=(0,X.useCallback)(t=>{let n=d.trim();n&&(i(e=>({...e,[t]:{phase:t===`copilot`?`awaiting_code`:`awaiting_browser`}})),e.startOAuth(t,n),u(null),f(``))},[e,d]),v=(0,X.useCallback)(t=>{e.cancelOAuth(t),i(e=>({...e,[t]:{phase:`idle`}})),c(null)},[e]),y=(0,X.useCallback)(t=>{let n=a.trim();n&&(e.submitOAuthCode(t,n),i(e=>({...e,[t]:{...e[t],phase:`exchanging`}})))},[a,e]),b=t??{};return(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)(`div`,{className:`rounded-md border border-warning/30 bg-warning/5 p-3`,children:(0,Z.jsx)(`p`,{className:`text-xs leading-5 text-warning`,children:n(`settings:oauth.termsWarning`)})}),(0,Z.jsx)(`div`,{className:`grid grid-cols-1 gap-2 lg:grid-cols-3`,children:Cp.map(e=>{let t=r[e.kind],i=wp.includes(t.phase),x=b[e.kind],S=x?.length??0,C=p===e.kind;return(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/70 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 lg:flex-col lg:items-stretch`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`font-medium`,children:e.label}),(0,Z.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.subtitle})]})]}),i?(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>v(e.kind),className:`shrink-0 lg:w-full`,children:n(`common:action.cancel`)}):(0,Z.jsx)(Y,{size:`sm`,onClick:()=>h(e.kind),className:`shrink-0 lg:w-full`,children:n(`settings:oauth.signIn`)})]}),t.phase===`awaiting_browser`&&(0,Z.jsxs)(`div`,{className:`mt-3 space-y-2 border-t pt-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(Bt,{className:`h-4 w-4 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{children:n(`settings:oauth.waitingBrowser`)})]}),t.authorizeUrl&&(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>window.open(t.authorizeUrl,`_blank`,`noopener,noreferrer`),children:[(0,Z.jsx)(en,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.openSignIn`)]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`button`,{type:`button`,className:`text-xs text-muted-foreground underline`,onClick:()=>c(s===e.kind?null:e.kind),children:t.bound===!1?n(`settings:oauth.pasteLoopbackBusy`):n(`settings:oauth.pasteCantReach`)}),s===e.kind&&(0,Z.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[(0,Z.jsx)(Ri,{placeholder:n(`activity:oauth.httpLocalhostCallbackCode`),value:a,onChange:e=>o(e.target.value),className:`font-mono text-xs`,onKeyDown:t=>{t.key===`Enter`&&y(e.kind)}}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>y(e.kind),disabled:!a.trim(),children:n(`settings:oauth.submit`)})]})]})]}),t.phase===`awaiting_code`&&(0,Z.jsxs)(`div`,{className:`mt-3 space-y-2 border-t pt-3`,children:[(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`settings:oauth.enterCode`)}),(0,Z.jsx)(`div`,{className:`font-mono text-2xl font-bold tracking-widest`,children:t.userCode??`…`}),t.verificationUri&&(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>window.open(t.verificationUri,`_blank`,`noopener,noreferrer`),children:[(0,Z.jsx)(en,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.openVerification`)]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,Z.jsx)(Bt,{className:`h-3.5 w-3.5 animate-spin`}),(0,Z.jsx)(`span`,{children:n(`settings:oauth.waitingCode`)})]})]}),(t.phase===`exchanging`||t.phase===`fetching_models`)&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t pt-3 text-sm`,children:[(0,Z.jsx)(Bt,{className:`h-4 w-4 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{children:t.phase===`exchanging`?n(`settings:oauth.exchanging`):n(`settings:oauth.fetchingModels`)})]}),t.phase===`success`&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t pt-3 text-sm text-success`,children:[(0,Z.jsx)(_e,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{children:t.message??n(`settings:oauth.signedIn`)})]}),t.phase===`error`&&t.message&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t pt-3 text-sm text-destructive`,children:[(0,Z.jsx)(Se,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{children:t.message})]}),S>0&&!i&&(0,Z.jsxs)(`div`,{className:`mt-3 border-t pt-3`,children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>m(C?null:e.kind),className:`flex w-full items-center justify-between text-xs text-muted-foreground hover:text-foreground transition-colors`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Z.jsx)(xr,{className:`h-3.5 w-3.5`}),(0,Z.jsx)(`span`,{children:n(`settings:oauth.accountCount`,{count:S})})]}),(0,Z.jsx)(`span`,{className:`text-[10px]`,children:C?`▲`:`▼`})]}),C&&x&&(0,Z.jsxs)(`div`,{className:`mt-2 space-y-1.5`,children:[x.map(t=>(0,Z.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border border-border/60 bg-muted/20 px-2.5 py-1.5`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate font-mono text-xs`,children:t.id}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[t.hasActiveKey?(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[11px] text-success`,children:[(0,Z.jsx)(_e,{className:`h-3 w-3`}),n(`settings:oauth.active`)]}):(0,Z.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:n(`settings:oauth.inactive`)}),(0,Z.jsxs)(Y,{size:`sm`,variant:`ghost`,onClick:()=>g(e.kind,t.id),className:`h-6 px-1.5 text-[11px]`,title:n(`settings:oauth.retryLogin`),children:[(0,Z.jsx)(lr,{className:`h-3 w-3 mr-0.5`}),n(`settings:oauth.retry`)]})]})]},t.id)),(0,Z.jsx)(`div`,{className:`pt-1`,children:l===e.kind?(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{autoFocus:!0,placeholder:n(`settings:oauth.aliasPlaceholder`,{default:e.kind===`chatgpt`?`openai-codex-1`:`${e.kind}-2`}),value:d,onChange:e=>f(e.target.value),className:`text-xs font-mono`,onKeyDown:t=>{t.key===`Enter`&&_(e.kind)}}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>_(e.kind),disabled:!d.trim(),children:n(`settings:oauth.signIn`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>{u(null),f(``)},children:n(`common:action.cancel`)})]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>u(e.kind),className:`w-full text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.newAccount`)]})})]})]}),S===0&&!i&&(0,Z.jsx)(`div`,{className:`mt-3 border-t pt-3`,children:l===e.kind?(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{autoFocus:!0,placeholder:n(`settings:oauth.aliasPlaceholder`,{default:e.kind===`chatgpt`?`openai-codex-1`:`${e.kind}-2`}),value:d,onChange:e=>f(e.target.value),className:`text-xs font-mono`,onKeyDown:t=>{t.key===`Enter`&&_(e.kind)}}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>_(e.kind),disabled:!d.trim(),children:n(`settings:oauth.signIn`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>{u(null),f(``)},children:n(`common:action.cancel`)})]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>u(e.kind),className:`w-full text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.newAccount`)]})})]},e.kind)})})]})}function Ep({open:e,providerId:t,modelCount:n,onConfirm:r,onCancel:i}){let a=(0,X.useRef)(null),{t:o}=R();return(0,X.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Enter`?(e.preventDefault(),r()):e.key===`Escape`&&(e.preventDefault(),i())};return window.addEventListener(`keydown`,t),a.current?.focus(),()=>window.removeEventListener(`keydown`,t)},[e,r,i]),(0,Z.jsx)(Li,{open:e,onOpenChange:e=>{e||i()},children:(0,Z.jsxs)(Pi,{className:`sm:max-w-md border-warning/50`,ref:a,tabIndex:-1,"data-clear-allowlist-dialog":!0,children:[(0,Z.jsxs)(Mi,{children:[(0,Z.jsxs)(Fi,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(ze,{className:`h-5 w-5 text-warning`}),o(`settings:allowlist.title`)]}),(0,Z.jsx)(Ii,{children:o(`settings:allowlist.body`,{count:n,provider:t})})]}),(0,Z.jsx)(`div`,{className:`rounded-md bg-muted/50 border border-border/60 px-3 py-2 text-xs text-muted-foreground`,children:o(`settings:allowlist.undoHint`)}),(0,Z.jsxs)(Ni,{className:`gap-2 sm:gap-2 flex-wrap`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:i,title:o(`settings:allowlist.keepTitle`),"data-action":`cancel`,children:[o(`common:action.cancel`),` `,(0,Z.jsx)(`kbd`,{className:`ml-1 text-[10px] border rounded px-1 bg-background`,children:`Esc`})]}),(0,Z.jsxs)(Y,{variant:`destructive`,size:`sm`,onClick:r,title:o(`settings:allowlist.clearTitle`),"data-action":`confirm`,children:[o(`settings:allowlist.clear`),` `,(0,Z.jsx)(`kbd`,{className:`ml-1 text-[10px] border rounded px-1 bg-background/80`,children:`↵`})]})]})]})})}function Dp(){return{inFlight:!1,last:null,picked:null}}function Op(e){return{providerId:e.providerId,ok:e.ok,status:e.status,...e.httpStatus===void 0?{}:{httpStatus:e.httpStatus},...e.elapsedMs===void 0?{}:{elapsedMs:e.elapsedMs},...e.modelCount===void 0?{}:{modelCount:e.modelCount},...e.modelIds===void 0?{}:{modelIds:e.modelIds},...e.detail===void 0?{}:{detail:e.detail}}}function kp(e){if(e.inFlight)return{text:`Checking model endpoint...`,tone:`muted`};let t=e.last;if(!t)return{text:`Saved model list shown`,tone:`muted`};let n=t.elapsedMs===void 0?``:` (${t.elapsedMs}ms)`;switch(t.status){case`ok`:{let e=t.modelCount??t.modelIds?.length??0;return{text:`Server returned ${e} model${e===1?``:`s`}${n}`,tone:`success`}}case`unreachable`:return{text:`server unreachable${t.detail?` — ${t.detail}`:``}`,tone:`error`};case`timeout`:return{text:`timed out${t.detail?` — ${t.detail}`:``}`,tone:`error`};case`http_error`:return{text:`got${t.httpStatus===void 0?``:` HTTP ${t.httpStatus}`}${t.detail?` — ${t.detail}`:``}`,tone:`warning`};case`invalid_response`:return{text:t.detail?`unexpected response — ${t.detail}`:`unexpected response shape`,tone:`warning`};case`no_provider`:return{text:`Provider is no longer saved`,tone:`error`};case`no_base_url`:return{text:`No model endpoint configured`,tone:`warning`}}}function Ap(e){return(e?.length??0)>0}function jp(e,t){return`Allowlist cleared for ${e} — ${t} model${t===1?``:`s`} removed`}function Mp(e){return e.length>0}function Np({ws:e,onSelect:t,onClose:n}){let{t:r}=R(),[i,a]=(0,X.useState)(``),[o,s]=(0,X.useState)([]),[c,l]=(0,X.useState)(!1),u=(0,X.useRef)(null),d=(0,X.useRef)(``);(0,X.useEffect)(()=>e.on(`provider.models.search_result`,e=>{if(e.type!==`provider.models.search_result`)return;let t=e.payload;t.query!==void 0&&t.query!==d.current||(s(t.matches??[]),l(!1))}),[e]);let f=(0,X.useCallback)(t=>{if(!t.trim()){s([]),d.current=``;return}d.current=t,l(!0),e.searchProviderModels(t,8)},[e]);(0,X.useEffect)(()=>(u.current&&clearTimeout(u.current),u.current=setTimeout(()=>f(i),300),()=>{u.current&&clearTimeout(u.current)}),[i,f]);let p=(0,X.useCallback)(e=>{let n={name:e.name,...e.description?{description:e.description}:{},...e.releaseDate?{release_date:e.releaseDate}:{},...e.contextWindow||e.maxOutput?{limit:{...e.contextWindow?{context:e.contextWindow}:{},...e.maxOutput?{output:e.maxOutput}:{}}}:{},...e.inputCost||e.outputCost?{cost:{...e.inputCost?{input:e.inputCost}:{},...e.outputCost?{output:e.outputCost}:{}}}:{},...e.capabilities.length>0?{tool_call:e.capabilities.includes(`tools`),reasoning:e.capabilities.includes(`reasoning`),...e.capabilities.includes(`vision`)?{modalities:{input:[`text`,`image`]}}:{}}:{}};t(e.modelId,n)},[t]);return(0,Z.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`absolute inset-0 bg-black/50`,onClick:n,"aria-label":r(`common:action.close`)}),(0,Z.jsxs)(`div`,{className:`relative max-h-[80vh] w-full max-w-xl overflow-y-auto rounded-lg border border-border bg-background p-4 shadow-lg`,children:[(0,Z.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:r(`settings:providerModels.catalogSearchTitle`)}),(0,Z.jsx)(`button`,{type:`button`,onClick:n,className:`text-muted-foreground hover:text-foreground`,children:(0,Z.jsx)(Xt,{className:`h-4 w-4`})})]}),(0,Z.jsxs)(`div`,{className:`relative mb-3`,children:[(0,Z.jsx)(zt,{className:`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground/60`}),(0,Z.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:r(`settings:providerModels.catalogSearchPlaceholder`),className:`h-10 w-full rounded-md border border-border bg-background pl-9 pr-3 text-sm focus:outline-none focus:ring-1 focus:ring-ring`})]}),c?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(Bt,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):o.length>0?(0,Z.jsx)(`div`,{className:`space-y-1.5`,children:o.map(e=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>p(e),className:`block w-full rounded-md border border-border/60 p-2.5 text-left transition-colors hover:border-primary/40 hover:bg-primary/5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`font-mono text-sm font-medium text-foreground`,children:e.modelId}),e.name!==e.modelId&&(0,Z.jsx)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:e.name})]}),(0,Z.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground`,children:e.providerName})]}),e.description&&(0,Z.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`,children:e.description}),(0,Z.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-1.5`,children:[e.contextWindow?(0,Z.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:e.contextWindow>=1e6?`${(e.contextWindow/1e6).toFixed(1)}M ctx`:`${Math.round(e.contextWindow/1e3)}K ctx`}):null,e.capabilities.map(e=>(0,Z.jsx)(`span`,{className:`rounded bg-primary/10 px-1.5 py-0.5 text-[10px] text-primary`,children:e},e))]})]},`${e.providerId}:${e.modelId}`))}):i.trim()?(0,Z.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r(`settings:providerModels.noResults`)}):(0,Z.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r(`settings:providerModels.typeToSearch`)})]})]})}var Pp=new Set([`__proto__`,`constructor`,`prototype`,`__defineGetter__`,`__defineSetter__`,`__lookupGetter__`,`__lookupSetter__`]),Fp=[`text`,`image`,`audio`,`video`,`pdf`],Ip=[`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`],Lp=Fe().int().nonnegative(),Rp=Fe().finite(),zp=C({context:Lp.optional(),output:Lp.optional(),input:Lp.optional()}),Bp=C({input:Rp.optional(),output:Rp.optional(),cache_read:Rp.optional(),cache_write:Rp.optional(),cache_write_5m:Rp.optional(),cache_write_1h:Rp.optional(),context_over_200k:Rp.optional(),reasoning:Rp.optional(),input_audio:Rp.optional(),output_audio:Rp.optional()}),Vp=C({input:fr(l().min(1)).optional(),output:fr(l().min(1)).optional()}),Hp=mn([C({type:D(`toggle`)}),C({type:D(`effort`),values:fr(v(Ip)).optional()}),C({type:D(`budget_tokens`),min:Fe().optional(),max:Fe().optional()})]),Up=e=>({message:`${e} id is a forbidden prototype-pollution key`}),Wp=C({id:l().min(1).refine(e=>!Pp.has(e),Up(`Model`)),name:l().min(1),description:l().optional(),family:l().optional(),attachment:it().optional(),reasoning:it().optional(),reasoning_options:mn([Hp,fr(Hp)]).optional(),interleaved:mn([it(),C({field:l().optional()})]).optional(),tool_call:it().optional(),structured_output:it().optional(),temperature:it().optional(),knowledge:l().optional(),release_date:l().optional(),last_updated:l().optional(),open_weights:it().optional(),modalities:Vp.optional(),cost:Bp.optional(),limit:zp.optional(),status:l().optional(),experimental:it().optional()}),Gp=C({id:l().min(1).refine(e=>!Pp.has(e),Up(`Provider`)),name:l().min(1),env:fr(l()).optional(),npm:l().optional(),api:l().optional(),doc:l().optional(),models:vn(l(),Wp)});vn(l(),Gp);function Kp(e,t){let n=t.limit,r=t.cost,i=t.modalities;return{id:e,name:t.name??``,description:t.description??``,family:t.family??``,limitContext:n?.context==null?``:String(n.context),limitOutput:n?.output==null?``:String(n.output),limitInput:n?.input==null?``:String(n.input),costInput:r?.input==null?``:String(r.input),costOutput:r?.output==null?``:String(r.output),inputModalities:Array.isArray(i?.input)?i.input:[],outputModalities:Array.isArray(i?.output)?i.output:[],toolCall:t.tool_call===!0,reasoning:t.reasoning===!0,temperature:t.temperature===!0,attachment:t.attachment===!0,structuredOutput:t.structured_output===!0,openWeights:t.open_weights===!0,releaseDate:t.release_date??``,lastUpdated:t.last_updated??``,knowledge:t.knowledge??``}}function qp(e,t){let n={...t};e.name&&(n.name=e.name),e.description&&(n.description=e.description),e.family&&(n.family=e.family),e.knowledge&&(n.knowledge=e.knowledge);let r={};if(e.limitContext){let t=Number(e.limitContext);Number.isFinite(t)&&t>=0&&(r.context=t)}if(e.limitOutput){let t=Number(e.limitOutput);Number.isFinite(t)&&t>=0&&(r.output=t)}if(e.limitInput){let t=Number(e.limitInput);Number.isFinite(t)&&t>=0&&(r.input=t)}Object.keys(r).length>0&&(n.limit={...t.limit??{},...r});let i={};if(e.costInput){let t=Number(e.costInput);Number.isFinite(t)&&t>=0&&(i.input=t)}if(e.costOutput){let t=Number(e.costOutput);Number.isFinite(t)&&t>=0&&(i.output=t)}Object.keys(i).length>0&&(n.cost={...t.cost??{},...i});let a={};e.inputModalities.length>0&&(a.input=e.inputModalities),e.outputModalities.length>0&&(a.output=e.outputModalities),Object.keys(a).length>0&&(n.modalities={...t.modalities??{},...a});for(let[r,i]of[[`toolCall`,`tool_call`],[`reasoning`,`reasoning`],[`temperature`,`temperature`],[`attachment`,`attachment`],[`structuredOutput`,`structured_output`],[`openWeights`,`open_weights`]]){let a=t[i]===!0;e[r]!==a&&(n[i]=e[r])}return e.releaseDate&&(n.release_date=e.releaseDate),e.lastUpdated&&(n.last_updated=e.lastUpdated),n}var Jp=[{key:`toolCall`,labelKey:`settings:modelSchema.capToolCall`},{key:`reasoning`,labelKey:`settings:modelSchema.capReasoning`},{key:`temperature`,labelKey:`settings:modelSchema.capTemperature`},{key:`attachment`,labelKey:`settings:modelSchema.capAttachment`},{key:`structuredOutput`,labelKey:`settings:modelSchema.capStructuredOutput`},{key:`openWeights`,labelKey:`settings:modelSchema.capOpenWeights`}];function Yp({providerId:e,modelId:t,initialModelsDev:n,onSave:r,onCancel:i}){let{t:a}=R(),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(()=>Kp(t,n)),[u,d]=(0,X.useState)([]),[f,p]=(0,X.useState)(JSON.stringify({...n,...t?{id:t}:{}},null,2)),[m,h]=(0,X.useState)(null),g=(0,X.useCallback)((e,t)=>{l(n=>({...n,[e]:t}))},[]),_=(0,X.useCallback)((e,t)=>{l(n=>{let r=n[e];return{...n,[e]:r.includes(t)?r.filter(e=>e!==t):[...r,t]}})},[]),v=(0,X.useCallback)(()=>{let e=qp(c,n),i=Wp.safeParse({...e,id:c.id||t});if(!i.success){d(i.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`));return}d([]),r(c.id||t,e)},[c,n,t,r]),y=(0,X.useCallback)(()=>{try{let e=JSON.parse(f),n=Wp.safeParse({...e,id:t||e.id});if(!n.success){h(n.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`; `));return}let{id:i,...a}=n.data;h(null),r(t||n.data.id,a)}catch(e){h(e instanceof Error?e.message:String(e))}},[f,t,r]),b=`h-8 w-full rounded-md border border-border bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`,x=`mb-1 block text-[11px] font-medium uppercase tracking-wide text-muted-foreground`;return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex gap-1 border-b border-border/50`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>s(!1),className:U(`border-b-2 px-3 py-1 text-xs font-medium transition-colors`,o?`border-transparent text-muted-foreground hover:text-foreground`:`border-primary text-primary`),children:a(`settings:providerModels.tabForm`)}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>s(!0),className:U(`border-b-2 px-3 py-1 text-xs font-medium transition-colors`,o?`border-primary text-primary`:`border-transparent text-muted-foreground hover:text-foreground`),children:a(`settings:providerModels.tabRawJson`)})]}),o?(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`textarea`,{value:f,onChange:e=>p(e.target.value),rows:16,className:`w-full rounded-md border border-border bg-muted/20 p-2 font-mono text-xs`,spellCheck:!1}),m&&(0,Z.jsx)(`p`,{className:`text-xs text-destructive`,children:m})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionIdentity`)}),!t&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-id`,children:`ID`}),(0,Z.jsx)(`input`,{id:`mse-id`,className:b,value:c.id,onChange:e=>g(`id`,e.target.value),placeholder:a(`activity:modelSchema.modelId`)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-name`,children:a(`settings:providerModels.fieldName`)}),(0,Z.jsx)(`input`,{id:`mse-name`,className:b,value:c.name,onChange:e=>g(`name`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-desc`,children:a(`settings:providerModels.fieldDescription`)}),(0,Z.jsx)(`input`,{id:`mse-desc`,className:b,value:c.description,onChange:e=>g(`description`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-family`,children:a(`settings:providerModels.fieldFamily`)}),(0,Z.jsx)(`input`,{id:`mse-family`,className:b,value:c.family,onChange:e=>g(`family`,e.target.value)})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionLimits`)}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-3 gap-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-ctx`,children:a(`settings:providerModels.fieldContext`)}),(0,Z.jsx)(`input`,{id:`mse-ctx`,type:`number`,className:b,value:c.limitContext,onChange:e=>g(`limitContext`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-out`,children:a(`settings:providerModels.fieldOutput`)}),(0,Z.jsx)(`input`,{id:`mse-out`,type:`number`,className:b,value:c.limitOutput,onChange:e=>g(`limitOutput`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-inlim`,children:a(`settings:providerModels.fieldInputLimit`)}),(0,Z.jsx)(`input`,{id:`mse-inlim`,type:`number`,className:b,value:c.limitInput,onChange:e=>g(`limitInput`,e.target.value)})]})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionPricing`)}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-costin`,children:a(`settings:providerModels.fieldCostInput`)}),(0,Z.jsx)(`input`,{id:`mse-costin`,type:`number`,step:`0.01`,className:b,value:c.costInput,onChange:e=>g(`costInput`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-costout`,children:a(`settings:providerModels.fieldCostOutput`)}),(0,Z.jsx)(`input`,{id:`mse-costout`,type:`number`,step:`0.01`,className:b,value:c.costOutput,onChange:e=>g(`costOutput`,e.target.value)})]})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionModalities`)}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:x,children:a(`settings:providerModels.fieldInputModalities`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Fp.map(e=>(0,Z.jsx)(`button`,{type:`button`,onClick:()=>_(`inputModalities`,e),className:U(`rounded-md border px-2 py-1 text-xs transition-colors`,c.inputModalities.includes(e)?`border-primary bg-primary/10 text-primary`:`border-border text-muted-foreground hover:border-primary/30`),children:e},`in-mod-${e}`))})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:x,children:a(`settings:providerModels.fieldOutputModalities`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Fp.map(e=>(0,Z.jsx)(`button`,{type:`button`,onClick:()=>_(`outputModalities`,e),className:U(`rounded-md border px-2 py-1 text-xs transition-colors`,c.outputModalities.includes(e)?`border-primary bg-primary/10 text-primary`:`border-border text-muted-foreground hover:border-primary/30`),children:e},`out-mod-${e}`))})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionCapabilities`)}),(0,Z.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:Jp.map(({key:e,labelKey:t})=>(0,Z.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 rounded border-border`,checked:c[e],onChange:t=>g(e,t.target.checked)}),a(t)]},String(e)))})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionDates`)}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-release`,children:a(`settings:providerModels.fieldReleaseDate`)}),(0,Z.jsx)(`input`,{id:`mse-release`,type:`date`,className:b,value:c.releaseDate,onChange:e=>g(`releaseDate`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-updated`,children:a(`settings:providerModels.fieldLastUpdated`)}),(0,Z.jsx)(`input`,{id:`mse-updated`,type:`date`,className:b,value:c.lastUpdated,onChange:e=>g(`lastUpdated`,e.target.value)})]})]})]}),u.length>0&&(0,Z.jsx)(`div`,{className:`rounded-md border border-destructive/30 bg-destructive/5 p-2`,children:(0,Z.jsx)(`ul`,{className:`space-y-0.5 text-xs text-destructive`,children:u.map((e,t)=>(0,Z.jsx)(`li`,{children:e},t))})})]}),(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-border/50 pt-3`,children:[(0,Z.jsxs)(Y,{type:`button`,variant:`ghost`,size:`sm`,onClick:i,className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(Xt,{className:`h-3.5 w-3.5`}),a(`common:action.cancel`)]}),(0,Z.jsxs)(Y,{type:`button`,size:`sm`,onClick:o?y:v,className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(er,{className:`h-3.5 w-3.5`}),a(`common:action.save`)]})]})]})}function Xp(e,t){return e.map(e=>{let n=t?.[e],r=n?.modelsDev,i=!!(n&&(n.name||n.maxOutput||n.capabilities||r));return{modelId:e,name:r?.name??n?.name??e,modelsDev:r,maxOutput:n?.maxOutput??r?.limit?.output,capabilities:n?.capabilities,source:i?`overridden`:`catalog`}})}function Zp(e){let t=e?.limit?.context;if(typeof t==`number`&&t>0)return t>=1e6?`${(t/1e6).toFixed(1)}M`:`${Math.round(t/1e3)}K`}function Qp(e){let t=e?.cost,n=e=>typeof e==`number`&&e>=0?`$${e}`:void 0;return{input:n(t?.input),output:n(t?.output)}}function $p(e){let t=e?.modalities;return{input:Array.isArray(t?.input)?t.input:[],output:Array.isArray(t?.output)?t.output:[]}}var em={text:jt,image:S,audio:Wn,video:dr,pdf:jt};function tm({providerId:e,models:t,customModels:n,ws:r,pickedModelId:i,onPickModel:a}){let{t:o}=R(),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(``),h=(0,X.useMemo)(()=>Xp(t,n),[t,n]),g=(0,X.useMemo)(()=>{let e=p.trim().toLowerCase();return e?h.filter(t=>t.modelId.toLowerCase().includes(e)||(t.name?.toLowerCase().includes(e)??!1)):h},[h,p]),_=(0,X.useCallback)(t=>{r.removeCustomModel(e,t),J.success(o(`settings:providerModels.modelRemoved`,{model:t}))},[r,e,o]),v=(0,X.useCallback)((t,n)=>{r.setCustomModel(e,t,{modelsDev:n}),c(null),J.success(o(`settings:providerModels.modelSaved`,{model:t}))},[r,e,o]),y=(0,X.useCallback)((t,n)=>{r.setCustomModel(e,t,{modelsDev:n}),u(!1),J.success(o(`settings:providerModels.modelAdded`,{model:t}))},[r,e,o]);return(0,Z.jsxs)(`div`,{className:`space-y-3`,"data-model-list-editor":e,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:()=>u(!0),className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),o(`settings:providerModels.addFromCatalog`)]}),(0,Z.jsxs)(Y,{variant:`ghost`,size:`sm`,onClick:()=>f(!0),className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),o(`settings:providerModels.addCustom`)]})]}),h.length>0&&(0,Z.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border/70`,children:[h.length>8&&(0,Z.jsxs)(`div`,{className:`relative border-b border-border/40 bg-muted/10`,children:[(0,Z.jsx)(zt,{className:`pointer-events-none absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/60`}),(0,Z.jsx)(`input`,{type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:o(`settings:providerModels.filterPlaceholder`),"aria-label":o(`settings:providerModels.filterPlaceholder`),className:`h-8 w-full bg-transparent pl-9 pr-3 text-xs text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-1 focus:ring-ring`})]}),(0,Z.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:(0,Z.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{className:`border-b border-border/70 bg-muted/30 text-left text-[11px] uppercase tracking-wide text-muted-foreground`,children:[(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colModel`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colContext`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colOutput`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colCost`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colModalities`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colCaps`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colSource`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2`,"aria-label":o(`settings:providerModels.colActions`)})]})}),(0,Z.jsx)(`tbody`,{children:g.map(t=>{let n=Zp(t.modelsDev),r=t.maxOutput??t.modelsDev?.limit?.output,l=typeof r==`number`?r.toLocaleString():void 0,u=Qp(t.modelsDev),d=$p(t.modelsDev),f=t.capabilities,p=s===t.modelId;return(0,Z.jsxs)(X.Fragment,{children:[(0,Z.jsxs)(`tr`,{className:`border-b border-border/40 transition-colors hover:bg-muted/20`,children:[(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{className:`font-mono text-xs font-medium text-foreground`,children:t.modelId}),t.name&&t.name!==t.modelId&&(0,Z.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:t.name})]})}),(0,Z.jsx)(`td`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:n?(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Z.jsx)(hn,{className:`h-3 w-3`}),n]}):(0,Z.jsx)(`span`,{className:`text-muted-foreground/40`,children:`—`})}),(0,Z.jsx)(`td`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:l?(0,Z.jsx)(`span`,{children:l}):(0,Z.jsx)(`span`,{className:`text-muted-foreground/40`,children:`—`})}),(0,Z.jsx)(`td`,{className:`px-3 py-2 text-xs`,children:u.input||u.output?(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-muted-foreground`,children:[(0,Z.jsx)(cr,{className:`h-3 w-3`}),u.input&&u.output?`${u.input}/${u.output}`:u.input??u.output]}):(0,Z.jsx)(`span`,{className:`text-muted-foreground/40`,children:`—`})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[d.input.map(e=>{let t=em[e]??jt;return(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 rounded bg-primary/10 px-1 py-0.5 text-[10px] text-primary`,title:`input: ${e}`,children:[(0,Z.jsx)(t,{className:`h-2.5 w-2.5`}),e]},`in-${e}`)}),d.output.map(e=>(0,Z.jsx)(`span`,{className:`inline-flex items-center gap-0.5 rounded bg-secondary/20 px-1 py-0.5 text-[10px] text-secondary-foreground`,title:`output: ${e}`,children:e},`out-${e}`))]})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex gap-1`,children:[f?.tools&&(0,Z.jsx)(tn,{className:`h-3.5 w-3.5 text-muted-foreground`,"aria-label":o(`activity:modelListEditor.tools`)}),f?.reasoning&&(0,Z.jsx)(Yn,{className:`h-3.5 w-3.5 text-muted-foreground`,"aria-label":o(`activity:modelListEditor.reasoning`)}),f?.vision&&(0,Z.jsx)(ar,{className:`h-3.5 w-3.5 text-muted-foreground`,"aria-label":o(`activity:modelListEditor.vision`)})]})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsx)(`span`,{className:U(`inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium`,t.source===`custom`&&`bg-warning/10 text-warning`,t.source===`catalog`&&`bg-info/10 text-info`,t.source===`overridden`&&`bg-primary/10 text-primary`),children:t.source})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[a&&(t.modelId===i?(0,Z.jsx)(`span`,{className:`inline-flex items-center rounded p-1 text-primary`,title:o(`settings:providerModels.usingModel`,{model:t.modelId}),role:`img`,"aria-label":o(`settings:providerModels.usingModel`,{model:t.modelId}),children:(0,Z.jsx)(er,{className:`h-3.5 w-3.5`})}):(0,Z.jsx)(`button`,{type:`button`,onClick:()=>a(e,t.modelId),className:`rounded p-1 text-muted-foreground transition-colors hover:bg-primary/10 hover:text-primary`,"aria-label":o(`settings:providerModels.useModel`,{model:t.modelId}),title:o(`settings:providerModels.useModel`,{model:t.modelId}),children:(0,Z.jsx)(er,{className:`h-3.5 w-3.5`})})),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>c(p?null:t.modelId),className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":o(`settings:providerModels.editModel`,{model:t.modelId}),children:(0,Z.jsx)(Le,{className:`h-3.5 w-3.5`})}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>_(t.modelId),className:`rounded p-1 text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":o(`settings:providerModels.removeModel`,{model:t.modelId}),children:(0,Z.jsx)(_n,{className:`h-3.5 w-3.5`})})]})})]}),p&&(0,Z.jsx)(`tr`,{className:`border-b border-border/40 bg-muted/10`,children:(0,Z.jsx)(`td`,{colSpan:8,className:`p-3`,children:(0,Z.jsx)(Yp,{providerId:e,modelId:t.modelId,initialModelsDev:t.modelsDev??{},onSave:v,onCancel:()=>c(null)})})},`${t.modelId}-edit`)]},t.modelId)})})]})})]}),h.length===0&&(0,Z.jsx)(`div`,{className:`rounded-lg border border-dashed border-border/50 p-8 text-center`,children:(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`settings:providerModels.emptyState`)})}),l&&(0,Z.jsx)(Np,{ws:r,onSelect:y,onClose:()=>u(!1)}),d&&(0,Z.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`absolute inset-0 bg-black/50`,onClick:()=>f(!1),"aria-label":o(`common:action.close`)}),(0,Z.jsxs)(`div`,{className:`relative max-h-[80vh] w-full max-w-2xl overflow-y-auto rounded-lg border border-border bg-background p-4 shadow-lg`,children:[(0,Z.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:o(`settings:providerModels.addCustomTitle`)}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>f(!1),className:`text-muted-foreground hover:text-foreground`,children:(0,Z.jsx)(Xt,{className:`h-4 w-4`})})]}),(0,Z.jsx)(Yp,{providerId:e,modelId:``,initialModelsDev:{},onSave:v,onCancel:()=>f(!1)})]})]})]})}function nm(e){return e.previousModels.length===0?{kind:`skip`}:e.onUndoClear?{kind:`callback`,providerId:e.providerId,previousModels:e.previousModels}:{kind:`ws-default`,providerId:e.providerId,previousModels:e.previousModels}}var rm=3e3;function im({providerId:e,savedPickedModelId:t,savedModels:n,savedCustomModels:r,ws:i,onPickModel:a,onClearModels:o,onUndoClear:s}){let[c,l]=(0,X.useState)(()=>Dp()),{t:u}=R(),[d,f]=(0,X.useState)(!1);(0,X.useEffect)(()=>i.on(`provider.probe`,t=>{t.type===`provider.probe`&&t.payload.providerId===e&&l(e=>({...e,inFlight:!1,last:Op(t.payload)}))}),[i,e]);let p=(0,X.useCallback)(()=>{l(e=>({...e,inFlight:!0})),i.probeProvider(e,rm)},[i,e]),m=(0,X.useCallback)((e,t)=>{l(e=>({...e,picked:t})),a?.(e,t)},[a]),h=(0,X.useCallback)(()=>{f(!0)},[]),g=(0,X.useCallback)(()=>{f(!1)},[]),_=(0,X.useCallback)(()=>{f(!1);let t=n?[...n]:[];l(e=>({...e,picked:null,last:null})),o?o(e):i.clearProviderModels(e),Mp(t)&&J.undoable(jp(e,t.length),()=>{let n=nm({providerId:e,previousModels:t,onUndoClear:s});switch(n.kind){case`skip`:return;case`callback`:s?.(n.providerId,n.previousModels);return;case`ws-default`:i.undoProviderClear(n.providerId,n.previousModels);return}})},[o,s,i,e,n]),v=(0,X.useMemo)(()=>c.picked??t??n?.[0]??``,[c.picked,t,n]),y=(0,X.useMemo)(()=>kp(c),[c]),b=(0,X.useMemo)(()=>Ap(n),[n]);return(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/75 p-3 shadow-sm shadow-black/[0.02]`,"data-provider-models-panel":e,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,Z.jsx)(Yt,{className:`h-3.5 w-3.5`}),u(`activity:providerModels.allowlistTitle`)]}),n&&n.length>0&&(0,Z.jsx)(`span`,{className:`rounded-full border border-border/70 bg-muted/40 px-2 py-0.5 text-[11px] text-muted-foreground`,children:u(`activity:providerModels.modelCount`,{count:n.length})})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:u(`activity:providerModels.using`)}),v?(0,Z.jsx)(`span`,{className:`max-w-full truncate rounded-md bg-primary/10 px-2 py-0.5 font-mono text-xs text-primary`,children:v}):(0,Z.jsx)(`span`,{className:`text-xs italic text-muted-foreground`,children:u(`activity:providerModels.noModelPicked`)})]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 sm:justify-end`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:p,disabled:c.inFlight,"aria-label":u(`activity:providerModels.refreshAria`,{provider:e}),className:`h-8 px-2 text-xs`,children:[c.inFlight?(0,Z.jsx)(Bt,{className:`h-3.5 w-3.5 animate-spin`}):(0,Z.jsx)(lr,{className:`h-3.5 w-3.5`}),c.inFlight?u(`activity:providerModels.probing`):u(`activity:providerModels.refresh`)]}),b&&(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:h,"aria-label":u(`activity:providerModels.clearAllowlistAria`,{provider:e}),"data-action":`clear-models`,className:`h-8 px-2 text-xs`,children:u(`activity:providerModels.clearAllowlist`)})]})]}),(0,Z.jsx)(am,{formatted:y}),(0,Z.jsx)(`div`,{className:`mt-3`,children:(0,Z.jsx)(tm,{providerId:e,models:n??[],customModels:r,ws:i,pickedModelId:v??void 0,onPickModel:m})}),(0,Z.jsx)(Ep,{open:d,providerId:e,modelCount:n?.length??0,onConfirm:_,onCancel:g})]})}function am({formatted:e}){let t=e.tone===`success`?`text-success`:e.tone===`warning`?`text-warning`:e.tone===`error`?`text-destructive`:`text-muted-foreground`,n=e.tone===`success`?`bg-success`:e.tone===`warning`?`bg-warning`:e.tone===`error`?`bg-destructive`:`bg-muted-foreground/60`;return(0,Z.jsxs)(`p`,{className:`mt-2 flex items-center gap-1.5 text-xs ${t}`,"data-probe-tone":e.tone,children:[(0,Z.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full ${n}`}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:e.text})]})}var om=[`anthropic`,`openai`,`google`,`openai-compatible`];function sm({activeProvider:e,catalogProviders:t,isLoadingCatalog:n,savedProviders:r,isLoadingSaved:i,providerTab:a,setProviderTab:o,onSelectProvider:s,onAddKey:c,onDeleteKey:l,onSetActiveKey:u,onAddProvider:d,onRemoveProvider:f,onPickProviderModel:p,ws:m,catalogQuery:h,setCatalogQuery:g}){let{t:_}=R(),[v,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(``),[S,C]=(0,X.useState)(``),[w,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(`openai-compatible`),[ee,M]=(0,X.useState)(``),[te,N]=(0,X.useState)(``),[P,ne]=(0,X.useState)([]),F=pp(),I=pp(),re=(0,X.useCallback)(e=>{!b.trim()||!S.trim()||(c(e,b.trim(),S.trim()),x(``),C(``),y(null))},[c,b,S]),ie=(0,X.useCallback)(()=>{O.trim()&&(d(O.trim(),A,ee||void 0,te||void 0,P.length>0?P.map(e=>e.id):void 0,P.length>0?Object.fromEntries(P.filter(e=>e.name||e.maxOutput||e.capabilities&&Object.keys(e.capabilities).length>0).map(e=>[e.id,{...e.name&&e.name!==e.id?{name:e.name}:{},...e.maxOutput?{maxOutput:e.maxOutput}:{},...e.capabilities&&Object.keys(e.capabilities).length>0?{capabilities:e.capabilities}:{}}])):void 0),k(``),j(`openai-compatible`),M(``),N(``),ne([]),D(!1))},[d,O,A,ee,te,P]),ae=(0,X.useCallback)(e=>{k(e.id),j(bp),M(e.defaultBaseUrl),e.noAuth&&N(``),ne([])},[]),[oe,se]=(0,X.useState)(null),[L,ce]=(0,X.useState)(``),[le,ue]=(0,X.useState)(!1),[de,fe]=(0,X.useState)({}),pe=(0,X.useMemo)(()=>new Set(r.map(e=>e.id)),[r]),me=(0,X.useMemo)(()=>({keys:r.reduce((e,t)=>e+t.apiKeys.length,0),activeKeys:r.reduce((e,t)=>e+t.apiKeys.filter(e=>e.isActive).length,0),models:r.reduce((e,t)=>e+(t.models?.length??0),0)}),[r]);(0,X.useEffect)(()=>{let e=m.on(`provider.probe`,e=>{if(e.type!==`provider.probe`)return;let t=e.payload;t.status===`no_base_url`||t.status===`no_provider`||fe(e=>({...e,[t.providerId]:{ok:t.ok,status:t.status,detail:t.detail}}))});return()=>e?.()},[m]);let he=(0,X.useCallback)(e=>{let t=L.trim();t&&(pe.has(e.id)?c(e.id,`default`,t):d(e.id,e.family,e.apiBase??void 0,t),ce(``),se(null),ue(!1),J.success(_(`settings:provider.savedToast`,{name:e.name})),e.apiBase&&setTimeout(()=>m.probeProvider(e.id,6e3),700))},[L,pe,c,d,m]),ge=h.trim()?t.filter(e=>{let t=h.trim().toLowerCase();return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.family.toLowerCase().includes(t)}):t,ve=ge.reduce((e,t)=>(e[t.family]||(e[t.family]=[]),e[t.family]?.push(t),e),{});return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold flex items-center gap-2`,children:[(0,Z.jsx)(Tr,{className:`h-4 w-4 text-muted-foreground`}),_(`settings:provider.subscriptionHeading`)]}),(0,Z.jsx)(Tp,{ws:m,savedByKind:{chatgpt:r.filter(e=>e.id===`openai-codex`||e.id.startsWith(`openai-codex-`)).map(e=>({id:e.id,hasActiveKey:e.apiKeys.some(e=>e.isActive)})),claude:r.filter(e=>e.id===`anthropic-oauth`||e.id.startsWith(`anthropic-oauth-`)).map(e=>({id:e.id,hasActiveKey:e.apiKeys.some(e=>e.isActive)})),copilot:r.filter(e=>e.id===`github-copilot`).map(e=>({id:e.id,hasActiveKey:e.apiKeys.some(e=>e.isActive)}))}})]}),(0,Z.jsxs)(`div`,{className:`pt-2 border-t`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-1 flex items-center gap-2`,children:[(0,Z.jsx)(gn,{className:`h-4 w-4 text-muted-foreground`}),_(`settings:provider.apiKeysHeading`)]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mb-3`,children:_(`settings:provider.apiKeysBody`)})]}),(0,Z.jsxs)(`div`,{className:`flex gap-2 mb-4`,children:[(0,Z.jsxs)(Y,{variant:a===`catalog`?`default`:`outline`,size:`sm`,onClick:()=>o(`catalog`),children:[(0,Z.jsx)(gn,{className:`h-4 w-4 mr-1`}),_(`settings:provider.tabCatalog`)]}),(0,Z.jsxs)(Y,{variant:a===`saved`?`default`:`outline`,size:`sm`,onClick:()=>o(`saved`),children:[(0,Z.jsx)(Tr,{className:`h-4 w-4 mr-1`}),_(`settings:provider.tabSaved`,{count:r.length})]})]}),a===`catalog`&&(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsx)(Ri,{placeholder:_(`settings:provider.searchPlaceholder`,{count:t.length}),value:h,onChange:e=>g(e.target.value),className:`text-sm`}),n&&t.length===0?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8`,children:[(0,Z.jsx)(Bt,{className:`h-6 w-6 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:_(`settings:provider.loadingCatalog`)})]}):ge.length===0&&h?(0,Z.jsx)(`div`,{className:`text-center py-8 text-muted-foreground text-sm`,children:_(`settings:provider.noMatch`,{query:h})}):om.map(t=>{let n=ve[t];return n?.length?(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-muted-foreground uppercase tracking-wider`,children:t}),(0,Z.jsx)(`div`,{className:`grid grid-cols-1 gap-2`,children:n.map(t=>{let n=de[t.id],r=e===t.id;return(0,Z.jsxs)(`div`,{className:U(`rounded-lg border transition-all`,r?`border-primary bg-primary/5 ring-2 ring-primary/20`:`border-border`),children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>s(t.id),className:U(`flex w-full flex-col items-start p-3 text-left rounded-lg`,!r&&`hover:bg-muted`),children:[(0,Z.jsxs)(`div`,{className:`flex w-full justify-between items-start`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:t.name}),(0,Z.jsxs)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:[`(`,t.id,`)`]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t.hasApiKey&&(0,Z.jsxs)(`span`,{className:`text-xs bg-success/10 text-success px-2 py-0.5 rounded`,children:[(0,Z.jsx)(Tr,{className:`h-3 w-3 inline mr-1`}),_(`settings:provider.configured`)]}),n&&(0,Z.jsxs)(`span`,{className:U(`text-xs px-2 py-0.5 rounded inline-flex items-center gap-1`,n.ok?`bg-success/10 text-success`:`bg-destructive/10 text-destructive`),title:n.detail??n.status,children:[n.ok?(0,Z.jsx)(_e,{className:`h-3 w-3`}):(0,Z.jsx)(Se,{className:`h-3 w-3`}),n.ok?_(`settings:provider.reachable`):n.status]}),t.envVars[0]&&(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:_(`settings:provider.envVar`,{var:t.envVars[0]})}),r&&(0,Z.jsx)(_e,{className:`h-4 w-4 text-primary`})]})]}),(0,Z.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:[_(`settings:provider.modelCount`,{count:t.modelCount}),t.apiBase&&` · ${t.apiBase}`]})]}),r&&!t.hasApiKey&&(0,Z.jsx)(`div`,{className:`px-3 pb-3 -mt-1 space-y-2`,children:oe===t.id?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{autoFocus:!0,type:le?`text`:`password`,placeholder:_(`settings:provider.keyPlaceholder`,{name:t.name}),value:L,onChange:e=>ce(e.target.value),className:`text-sm`,onKeyDown:e=>{e.key===`Enter`&&he(t)}}),(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>ue(e=>!e),children:le?(0,Z.jsx)(Jt,{className:`h-4 w-4`}):(0,Z.jsx)(ar,{className:`h-4 w-4`})}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>he(t),disabled:!L.trim(),children:_(`common:action.save`)})]}),t.envVars[0]&&(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:_(`settings:provider.orEnv`,{env:t.envVars[0]})})]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>{se(t.id),ce(``)},children:[(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5 mr-1`}),_(`settings:provider.addApiKey`)]})})]},t.id)})})]},t):null})]}),a===`saved`&&(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:_(`settings:provider.manageKeys`)}),(0,Z.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2 text-xs text-muted-foreground`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(Kn,{className:`h-3.5 w-3.5`}),_(`settings:provider.savedProviderCount`,{count:r.length})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5`}),_(`settings:provider.keyCount`,{count:me.keys})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(Mt,{className:`h-3.5 w-3.5`}),_(`settings:provider.activeKeyCount`,{count:me.activeKeys})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(vr,{className:`h-3.5 w-3.5`}),_(`settings:provider.modelCount`,{count:me.models})]})]})]}),(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>D(!E),children:[(0,Z.jsx)(mr,{className:`h-4 w-4 mr-1`}),_(`settings:provider.addProvider`)]})]}),E&&(0,Z.jsxs)(`div`,{className:`p-4 border rounded-lg space-y-3 bg-muted/50`,children:[(0,Z.jsx)(`h4`,{className:`font-medium`,children:_(`settings:provider.addCustomHeading`)}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:_(`settings:provider.localServers`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:xp.map(e=>(0,Z.jsx)(Y,{type:`button`,size:`sm`,variant:O===e.id?`default`:`outline`,onClick:()=>ae(e),title:e.hint,children:e.label},e.id))})]}),(0,Z.jsx)(Ri,{placeholder:_(`settings:provider.providerIdPlaceholder`),value:O,onChange:e=>k(e.target.value),ref:F.setFieldRef(0),onKeyDown:e=>F.handleKeyDown(e,0)}),(0,Z.jsxs)(`select`,{className:`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm`,value:A,onChange:e=>j(e.target.value),ref:F.setFieldRef(1),onKeyDown:e=>F.handleKeyDown(e,1),children:[(0,Z.jsx)(`option`,{value:`anthropic`,children:_(`activity:provider.anthropic`)}),(0,Z.jsx)(`option`,{value:`openai`,children:_(`activity:provider.openai`)}),(0,Z.jsx)(`option`,{value:`openai-compatible`,children:_(`activity:provider.openaiCompatible`)}),(0,Z.jsx)(`option`,{value:`google`,children:_(`activity:provider.google`)})]}),(0,Z.jsx)(Ri,{placeholder:_(`activity:provider.baseUrlOptionalEGHttpLocalhost11434V1`),value:ee,onChange:e=>M(e.target.value),ref:F.setFieldRef(2),onKeyDown:e=>F.handleKeyDown(e,2)}),(0,Z.jsx)(Ri,{type:`password`,placeholder:_(`settings:provider.apiKeyOptionalPlaceholder`),value:te,onChange:e=>N(e.target.value),ref:F.setFieldRef(3),onKeyDown:e=>F.handleKeyDown(e,3)}),(0,Z.jsx)(Sp,{models:P,onChange:ne}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Y,{size:`sm`,onClick:ie,disabled:!O.trim(),ref:F.setFieldRef(4),onKeyDown:e=>F.handleKeyDown(e,4,ie),children:_(`common:action.add`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>D(!1),ref:F.setFieldRef(5),onKeyDown:e=>F.handleKeyDown(e,5),children:_(`common:action.cancel`)})]})]}),i?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(Bt,{className:`h-6 w-6 animate-spin text-muted-foreground`})}):r.length===0?(0,Z.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(Tr,{className:`h-8 w-8 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{children:_(`settings:provider.noSaved`)}),(0,Z.jsx)(`p`,{className:`text-sm`,children:_(`settings:provider.noSavedHint`)})]}):r.map(e=>(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border/80 bg-card/70 p-4 shadow-sm shadow-black/[0.02]`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`h4`,{className:`min-w-0 truncate font-mono text-sm font-semibold text-foreground`,children:e.id}),e.family&&(0,Z.jsx)(`span`,{className:`rounded-full border border-border/70 bg-muted/40 px-2 py-0.5 text-[11px] font-medium text-muted-foreground`,children:e.family}),e.apiKeys.some(e=>e.isActive)&&(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-success/10 px-2 py-0.5 text-[11px] font-medium text-success`,children:[(0,Z.jsx)(Mt,{className:`h-3 w-3`}),_(`settings:provider.active`)]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-xs text-muted-foreground`,children:[e.baseUrl&&(0,Z.jsxs)(`span`,{className:`inline-flex max-w-full items-center gap-1 rounded-md border border-border/70 bg-background/60 px-2 py-1`,children:[(0,Z.jsx)(gn,{className:`h-3.5 w-3.5 shrink-0`}),(0,Z.jsx)(`span`,{className:`truncate`,children:e.baseUrl})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-background/60 px-2 py-1`,children:[(0,Z.jsx)(vr,{className:`h-3.5 w-3.5`}),_(`settings:provider.modelCount`,{count:e.models?.length??0})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-background/60 px-2 py-1`,children:[(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5`}),_(`settings:provider.keyCount`,{count:e.apiKeys.length})]})]})]}),(0,Z.jsx)(`div`,{className:`flex gap-2 sm:justify-end`,children:(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>f(e.id),"aria-label":`Remove provider ${e.id}`,title:`Remove provider ${e.id}`,className:`h-8 w-8 text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,Z.jsx)(_n,{className:`h-4 w-4 text-destructive`})})})]}),(0,Z.jsxs)(`div`,{className:`mt-4 grid gap-4 xl:grid-cols-[minmax(0,1.35fr)_minmax(280px,0.85fr)]`,children:[(0,Z.jsx)(im,{providerId:e.id,savedPickedModelId:e.pickedModelId,savedModels:e.models,savedCustomModels:e.customModels,ws:m,onPickModel:p}),(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/75 p-3 shadow-sm shadow-black/[0.02]`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-semibold`,children:_(`settings:provider.apiKeysLabel`)}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:_(`settings:provider.keyCount`,{count:e.apiKeys.length})})]}),(0,Z.jsxs)(Y,{size:`sm`,variant:`ghost`,onClick:()=>y(v===e.id?null:e.id),className:`h-8 px-2 text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),_(`settings:provider.addKey`)]})]}),e.apiKeys.length===0&&!v&&(0,Z.jsx)(`p`,{className:`mt-3 rounded-md border border-dashed border-border/70 bg-muted/20 px-3 py-2 text-xs text-muted-foreground`,children:_(`settings:provider.noKeys`)}),e.apiKeys.length>0&&(0,Z.jsx)(`div`,{className:`mt-3 space-y-2`,children:e.apiKeys.map(t=>(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-border/70 bg-muted/20 p-2.5 sm:flex-row sm:items-center sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-border/70 bg-background text-muted-foreground`,children:(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`truncate text-sm font-medium`,children:t.label}),t.isActive&&(0,Z.jsx)(`span`,{className:`rounded-full bg-success/10 px-2 py-0.5 text-[11px] font-medium text-success`,children:_(`settings:provider.active`)})]}),(0,Z.jsx)(`div`,{className:`mt-0.5`,children:(0,Z.jsx)(fp,{maskedKey:t.maskedKey})})]})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1`,children:[!t.isActive&&(0,Z.jsx)(Y,{size:`sm`,variant:`outline`,onClick:()=>u(e.id,t.label),className:`h-8 px-2 text-xs`,children:_(`settings:provider.setActive`)}),(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>l(e.id,t.label),"aria-label":`Delete key ${t.label}`,title:`Delete key ${t.label}`,className:`h-8 w-8 text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,Z.jsx)(_n,{className:`h-3.5 w-3.5 text-destructive`})})]})]},t.label))}),v===e.id&&(0,Z.jsxs)(`div`,{className:`mt-3 space-y-2 rounded-lg border border-border/70 bg-background p-3`,children:[(0,Z.jsx)(Ri,{placeholder:_(`settings:provider.keyLabelPlaceholder`),value:b,onChange:e=>x(e.target.value),ref:I.setFieldRef(0),onKeyDown:e=>I.handleKeyDown(e,0)}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{type:w?`text`:`password`,placeholder:_(`settings:provider.apiKeyPlaceholder`),value:S,onChange:e=>C(e.target.value),ref:I.setFieldRef(1),onKeyDown:e=>I.handleKeyDown(e,1)}),(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>T(!w),children:w?(0,Z.jsx)(Jt,{className:`h-4 w-4`}):(0,Z.jsx)(ar,{className:`h-4 w-4`})})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(Y,{size:`sm`,onClick:()=>re(e.id),disabled:!b.trim()||!S.trim(),ref:I.setFieldRef(2),onKeyDown:t=>I.handleKeyDown(t,2,()=>re(e.id)),children:_(`settings:provider.saveKey`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>{y(null),x(``),C(``)},ref:I.setFieldRef(3),onKeyDown:e=>I.handleKeyDown(e,3),children:_(`common:action.cancel`)})]})]})]})]})]},e.id))]})]})}var cm=Object.entries({discovery:[[`explore`,`Explore`],[`search`,`Search`],[`research`,`Research`]],planning:[[`analyst`,`Analyst`],[`planner`,`Planner`],[`architect`,`Architect`],[`critic`,`Critic`],[`refactor-planner`,`Refactor Planner`]],build:[[`executor`,`Executor`],[`refactor`,`Refactor`],[`simplifier`,`Simplifier`],[`migration`,`Migration`],[`vision`,`Vision`],[`debugger`,`Debugger`],[`tracer`,`Tracer`],[`concurrency`,`Concurrency`]],verify:[[`realtime`,`Realtime`],[`resilience-engineer`,`Resilience Engineer`],[`chaos-engineer`,`Chaos Engineer`],[`verifier`,`Verifier`],[`test`,`Test`],[`e2e`,`E2E`],[`browser`,`Browser`],[`performance`,`Performance`],[`chaos`,`Chaos`],[`security-scanner`,`Security Scanner`],[`bug-hunter`,`Bug Hunter`],[`audit-log`,`Audit Log`]],review:[[`threat-modeler`,`Threat Modeler`],[`secure-coding-coach`,`Secure Coding Coach`],[`compliance-auditor`,`Compliance Auditor`],[`privacy-engineer`,`Privacy Engineer`],[`reviewer`,`Reviewer`],[`code-reviewer`,`Code Reviewer`],[`security-reviewer`,`Security Reviewer`],[`accessibility`,`Accessibility`],[`compliance`,`Compliance`]],domain:[[`android`,`Android`],[`desktop`,`Desktop`],[`distributed-systems`,`Distributed Systems`],[`database`,`Database`],[`api`,`API`],[`auth`,`Auth`],[`data`,`Data`],[`frontend`,`Frontend`],[`backend`,`Backend`],[`designer`,`Designer`],[`ios`,`iOS`],[`payments`,`Payments`],[`messaging`,`Messaging`],[`search-relevance`,`Search Relevance`],[`storage`,`Storage`],[`ml-engineer`,`ML Engineer`],[`data-governance`,`Data Governance`]],knowledge:[[`document`,`Document`],[`uml`,`UML`],[`i18n`,`I18n`],[`prompt`,`Prompt`]],delivery:[[`platform-engineer`,`Platform Engineer`],[`git`,`Git`],[`release`,`Release`],[`devops`,`DevOps`],[`observability`,`Observability`],[`dependency`,`Dependency`]],meta:[[`skill-manage`,`Skill Manager`],[`self-improving`,`Self-Improving`],[`context`,`Context`],[`cost`,`Cost`],[`tech-stack`,`Tech Stack Validator`],[`plugin-author`,`Plugin Author`],[`tool-author`,`Tool Author`],[`prompt-evaluator`,`Prompt Evaluator`],[`benchmark-engineer`,`Benchmark Engineer`],[`memory-curator`,`Memory Curator`],[`fleet-coordinator`,`Fleet Coordinator`]]}).map(([e,t])=>({phase:e,label:`${e.charAt(0).toUpperCase()}${e.slice(1)}`,roles:t.map(([e,t])=>({role:e,name:t}))})),lm=cm.map(e=>e.phase),um=cm.flatMap(e=>[...e.roles]),dm=um.map(e=>e.role),fm=[`*`,...lm,...dm];function pm(e){if(e===`*`)return`Default (*)`;let t=cm.find(t=>t.phase===e);if(t)return`Phase: ${t.label} (${t.phase})`;let n=um.find(t=>t.role===e);return n?`${n.name} (${n.role})`:`Custom: ${e}`}var mm=[{value:``,label:`mode: inherit`},{value:`auto`,label:`mode: auto`},{value:`on`,label:`mode: on`},{value:`off`,label:`mode: off`}],hm=[{value:``,label:`effort: inherit`},{value:`none`,label:`effort: none`},{value:`minimal`,label:`effort: minimal`},{value:`low`,label:`effort: low`},{value:`medium`,label:`effort: medium`},{value:`high`,label:`effort: high`},{value:`xhigh`,label:`effort: xhigh`},{value:`max`,label:`effort: max`}],gm=[{value:``,label:`preserve: inherit`},{value:`on`,label:`preserve: on`},{value:`off`,label:`preserve: off`}],_m=new Set(fm);function vm(e,t,n){let r={};return e&&(r.mode=e),t&&(r.effort=t),n&&(r.preserve=n===`on`),Object.keys(r).length>0?{reasoning:r}:void 0}function ym(e){return e?[e.mode?`mode:${e.mode}`:``,e.effort?`effort:${e.effort}`:``,e.preserve===void 0?``:`preserve:${e.preserve?`on`:`off`}`].filter(Boolean):[]}function bm({syncPref:e,candidates:t}){let n=B(),{t:r}=R(),[i,a]=(0,X.useState)(`*`),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(``),m=(0,X.useCallback)(t=>e(`modelMatrix`,t),[e]),h=(0,X.useCallback)(()=>{let e=i.trim(),t=o.trim(),r=vm(c,u,f);if(!e||!t&&!r)return;let a=t?n.fallbackProfiles[t]?{fallbackProfile:t}:t.includes(`/`)?{provider:t.slice(0,t.indexOf(`/`)),model:t.slice(t.indexOf(`/`)+1)}:{model:t}:{},h=n.modelMatrix[e]?.modelRuntime;r?a.modelRuntime=r:h&&(a.modelRuntime=h),m({...n.modelMatrix,[e]:a}),s(``),l(``),d(``),p(``)},[n.fallbackProfiles,n.modelMatrix,i,f,u,c,o,m]),g=(0,X.useCallback)(e=>{let{[e]:t,...r}=n.modelMatrix;m(r)},[n.modelMatrix,m]),_=(0,X.useCallback)((e,t,r)=>{let i={...n.modelMatrix},a={...i[e]??{}},o={...a.modelRuntime??{}},s={...o.reasoning??{}};t===`mode`?r?s.mode=r:delete s.mode:t===`effort`?r?s.effort=r:delete s.effort:r?s.preserve=r===`on`:delete s.preserve,Object.keys(s).length>0?o.reasoning=s:delete o.reasoning,Object.keys(o).length>0?a.modelRuntime=o:delete a.modelRuntime,a.model||a.fallbackProfile||a.modelRuntime?i[e]=a:delete i[e],m(i)},[n.modelMatrix,m]),v=e=>{let t=e.provider&&e.model?`${e.provider}/${e.model}`:e.model,n=e.modelRuntime?.reasoning;return[t??(!e.fallbackProfile&&n?r(`settings:agent.leaderModel`):``),e.fallbackProfile?`profile:${e.fallbackProfile}`:``,...ym(n)].filter(Boolean).join(` + `)},y=Array.from(new Set([...Object.keys(n.modelMatrix),i].filter(e=>e&&!_m.has(e)))).sort((e,t)=>e.localeCompare(t));return(0,Z.jsxs)(`div`,{className:`pt-2 border-t`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-3 mt-3 flex items-center gap-2`,children:[(0,Z.jsx)(Ft,{className:`h-4 w-4 text-muted-foreground`}),r(`settings:agent.routingHeading`)]}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-[minmax(0,180px)_1fr_auto]`,children:[(0,Z.jsxs)(`select`,{"aria-label":r(`settings:agent.routingRouteKey`),value:i,onChange:e=>a(e.target.value),className:`h-9 min-w-0 rounded-md border bg-background px-3 font-mono text-sm`,children:[(0,Z.jsx)(`option`,{value:`*`,children:pm(`*`)}),(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingPhasesGroup`),children:cm.map(e=>(0,Z.jsx)(`option`,{value:e.phase,children:pm(e.phase)},e.phase))}),cm.map(e=>(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingRolesGroup`,{label:e.label}),children:e.roles.map(e=>(0,Z.jsx)(`option`,{value:e.role,children:pm(e.role)},e.role))},e.phase)),y.length>0?(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingCustomGroup`),children:y.map(e=>(0,Z.jsx)(`option`,{value:e,children:pm(e)},e))}):null]}),(0,Z.jsxs)(`select`,{"aria-label":r(`settings:agent.routingTargetAria`),value:o,onChange:e=>s(e.target.value),className:`h-9 min-w-0 rounded-md border bg-background px-3 font-mono text-sm`,children:[(0,Z.jsx)(`option`,{value:``,children:r(`settings:agent.routingTargetEmpty`)}),Object.keys(n.fallbackProfiles).length>0&&(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingTargetProfilesGroup`),children:Object.keys(n.fallbackProfiles).map(e=>(0,Z.jsx)(`option`,{value:e,children:e},e))}),t&&t.length>0&&(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingTargetModelsGroup`),children:t.map(e=>(0,Z.jsxs)(`option`,{value:`${e.provider}/${e.model}`,children:[e.provider,`/`,e.model]},`${e.provider}/${e.model}`))})]}),(0,Z.jsx)(Y,{type:`button`,variant:`outline`,onClick:h,children:r(`settings:agent.routingSet`)})]}),(0,Z.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 gap-2 sm:grid-cols-3`,children:[(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningModeAria`),value:c,onChange:e=>l(e.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:mm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningEffortAria`),value:u,onChange:e=>d(e.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:hm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningPreserveAria`),value:f,onChange:e=>p(e.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:gm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))})]}),(0,Z.jsx)(`div`,{className:`mt-3 space-y-1.5`,children:Object.keys(n.modelMatrix).length===0?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`settings:agent.noRoutes`)}):Object.entries(n.modelMatrix).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>(0,Z.jsxs)(`div`,{className:`rounded-md border border-border bg-muted px-2 py-1.5 text-xs`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`w-40 shrink-0 truncate font-mono text-muted-foreground`,title:e,children:pm(e)}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono`,children:v(t)}),(0,Z.jsx)(Y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>g(e),children:r(`common:action.remove`)})]}),(0,Z.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 gap-2 sm:grid-cols-3`,children:[(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningModeFor`,{key:e}),value:t.modelRuntime?.reasoning?.mode??``,onChange:t=>_(e,`mode`,t.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:mm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningEffortFor`,{key:e}),value:t.modelRuntime?.reasoning?.effort??``,onChange:t=>_(e,`effort`,t.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:hm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningPreserveFor`,{key:e}),value:t.modelRuntime?.reasoning?.preserve===void 0?``:t.modelRuntime.reasoning.preserve?`on`:`off`,onChange:t=>_(e,`preserve`,t.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:gm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))})]})]},e))})]})}var xm=[`off`,`low`,`medium`,`high`,`all`],Sm={off:`bg-muted-foreground`,low:`bg-success`,medium:`bg-warning`,high:`bg-warning ring-2 ring-warning/25`,all:`bg-destructive`},Cm={off:`settings:brain.riskCopy.off`,low:`settings:brain.riskCopy.low`,medium:`settings:brain.riskCopy.medium`,high:`settings:brain.riskCopy.high`,all:`settings:brain.riskCopy.all`},wm=[`executor`,`skeptic`,`auditor`];function Tm(e){return e&&e.length>0?e.map(e=>({id:e.id,name:e.name,description:e.description})):wm.map(e=>({id:e,name:e}))}var Em=[{value:`default`,labelKey:`settings:brainOpt.default15s`},{value:`5000`,label:`5s`},{value:`10000`,label:`10s`},{value:`20000`,label:`20s`},{value:`30000`,label:`30s`},{value:`60000`,label:`60s`}],Dm=[{value:`off`,labelKey:`settings:brainOpt.waitForever`},{value:`30000`,label:`30s`},{value:`60000`,label:`1m`},{value:`120000`,label:`2m`},{value:`300000`,label:`5m`}],Om=[{value:`default`,labelKey:`settings:brainOpt.defaultHalf`},{value:`0.34`,label:`1/3`},{value:`0.5`,label:`1/2`},{value:`0.67`,label:`2/3`},{value:`0.75`,label:`3/4`},{value:`1`,labelKey:`settings:brainOpt.all`}],km=[{value:`100`,label:`100`},{value:`200`,labelKey:`settings:brainOpt.n200Default`},{value:`400`,label:`400`},{value:`800`,label:`800`},{value:`1600`,label:`1600`}],Am=[{value:`0`,labelKey:`settings:brainOpt.offDefault`},{value:`0.3`,label:`0.3`},{value:`0.5`,label:`0.5`},{value:`0.7`,label:`0.7`},{value:`0.9`,label:`0.9`}],jm=[{value:`10`,label:`10`},{value:`20`,labelKey:`settings:brainOpt.n20Default`},{value:`50`,label:`50`},{value:`100`,label:`100`}],Mm=[{value:`60000`,label:`1m`},{value:`300000`,labelKey:`settings:brainOpt.m5Default`},{value:`900000`,label:`15m`},{value:`3600000`,label:`1h`}],Nm=[{value:`50`,label:`50`},{value:`200`,labelKey:`settings:brainOpt.n200Default`},{value:`500`,label:`500`},{value:`1000`,label:`1000`}],Pm=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`10000`,label:`10s`},{value:`20000`,label:`20s`},{value:`30000`,label:`30s`},{value:`60000`,label:`60s`}],Fm=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`1`,labelKey:`settings:brainOpt.oneSerial`},{value:`2`,label:`2`},{value:`3`,label:`3`},{value:`5`,label:`5`}],Im=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`500`,label:`500`},{value:`1000`,label:`1000`},{value:`2000`,label:`2000`},{value:`4000`,label:`4000`},{value:`8000`,label:`8000`}],Lm=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`200`,label:`200`},{value:`400`,label:`400`},{value:`800`,label:`800`},{value:`1600`,label:`1600`}],Rm=[{value:`default`,labelKey:`settings:brainOpt.default500`},{value:`100`,label:`100`},{value:`500`,label:`500`},{value:`1000`,label:`1000`},{value:`5000`,label:`5000`}],zm=[{value:`default`,labelKey:`settings:brainOpt.default10m`},{value:`120000`,label:`2m`},{value:`600000`,label:`10m`},{value:`1800000`,label:`30m`},{value:`3600000`,label:`1h`}];function Bm(e,t){return e.some(e=>e.value===t)?e:[...e,{value:t,label:t}]}function Vm(e,t){return e.map(e=>({value:e.value,label:e.labelKey?t(e.labelKey):e.label??e.value}))}function Hm(e){return e===void 0?`default`:String(e)}function Um({level:e}){return(0,Z.jsx)(`span`,{className:U(`inline-block h-2.5 w-2.5 rounded-full`,Sm[e])})}function Wm(e){return e.provider?`${e.provider}/${e.model}`:e.model}var Gm={pool:{title:`settings:brain.pickPoolTitle`,hint:`settings:brain.pickPoolHint`},voter:{title:`settings:brain.pickVoterTitle`,hint:`settings:brain.pickVoterHint`},judge:{title:`settings:brain.pickJudgeTitle`,hint:`settings:brain.pickJudgeHint`}};function Km(){let{t:e}=R(),{client:t}=zr(),[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)(!0),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(null);(0,X.useEffect)(()=>{t.send({type:`brain.status`}),t.send({type:`brain.config.get`})},[t]),(0,X.useEffect)(()=>{let n=t.on(`brain.status`,e=>{let t=e.payload,n=Date.now();a(t.log.slice(-10).map(e=>{let t=Math.max(0,Math.round((n-e.at)/1e3)),r=t<60?`${t}s`:t<3600?`${Math.round(t/60)}m`:`${Math.round(t/3600)}h`;return{kind:e.kind,question:e.question,outcome:e.outcome,age:r}})),s(!1)}),i=t.on(`brain.config`,t=>{let n=t.payload;r(n.config),d(n.persisted?null:n.error??e(`settings:brain.persistError`)),l(!1),s(!1)});return()=>{n(),i()}},[t,e]);let m=(0,X.useCallback)(e=>{l(!0),t.send({type:`brain.config.set`,payload:{patch:e}})},[t]),h=(0,X.useCallback)(e=>{r(t=>t&&{...t,maxAutoRisk:e}),m({maxAutoRisk:e})},[m]),g=(0,X.useMemo)(()=>n?.council.voters??[],[n]),_=(0,X.useCallback)(e=>{m({council:{voters:e.length>0?e:null}})},[m]),v=(0,X.useMemo)(()=>Tm(n?.personaCatalog),[n?.personaCatalog]),y=xm.includes(n?.maxAutoRisk??``)?n?.maxAutoRisk??`medium`:`medium`,b=(0,X.useCallback)(e=>{if(!n||!f)return;let t=`${e.provider}/${e.model}`;if(f===`pool`){m({models:[...n.models.map(Wm),t]});return}if(f===`judge`){m({council:{judge:t}});return}return _([...g,{provider:e.provider,model:e.model,persona:v[g.length%v.length]?.id??`executor`}]),!0},[n,v,f,m,_,g]);return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsx)(wf,{open:f!==null,mode:`provider-model`,title:f?e(Gm[f].title):``,hint:f?e(Gm[f].hint):void 0,onPick:e=>{if(e.type===`provider-model`)return b(e)},onClose:()=>p(null)}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Yn,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h3`,{className:`text-base font-semibold`,children:e(`settings:brain.heading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.headingHint`)})]}),(o||c)&&(0,Z.jsx)(Bt,{className:`ml-auto h-4 w-4 animate-spin text-muted-foreground`})]}),u&&(0,Z.jsx)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive`,children:u}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.riskHeading`)}),(0,Z.jsx)(`div`,{className:`flex gap-2 flex-wrap`,children:xm.map(e=>(0,Z.jsxs)(Y,{variant:y===e?`default`:`outline`,size:`sm`,className:U(`gap-1.5 text-xs`,y===e&&`shadow-sm`),disabled:c,onClick:()=>h(e),children:[(0,Z.jsx)(Um,{level:e}),e.toUpperCase()]},e))}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(Cm[y])})]}),n&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.escalationHeading`)}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationModeLabel`),hint:e(`settings:brain.escalationModeHint`),value:n.mode,options:[{value:`interactive`,label:e(`settings:brain.optInteractive`)},{value:`headless`,label:e(`settings:brain.optHeadless`)}],onChange:e=>m({mode:e}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationDecisionTimeoutLabel`),hint:e(`settings:brain.escalationDecisionTimeoutHint`),value:n.decisionTimeoutMs?String(n.decisionTimeoutMs):`default`,options:Vm(Em,e),onChange:e=>m({decisionTimeoutMs:e==="default"?null:Number(e)}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationHumanTimeoutLabel`),hint:e(`settings:brain.escalationHumanTimeoutHint`),value:n.humanTimeoutMs?String(n.humanTimeoutMs):`off`,options:Vm(Dm,e),onChange:e=>m({humanTimeoutMs:e===`off`?null:Number(e)}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationTerminalPolicyLabel`),hint:e(`settings:brain.escalationTerminalPolicyHint`),value:n.terminalPolicy,options:[{value:`conservative`,label:e(`settings:brain.optConservative`)},{value:`deny-all`,label:e(`settings:brain.optDenyAll`)},{value:`continue-on-recommended`,label:e(`settings:brain.optContinueRecommended`)}],onChange:e=>m({terminalPolicy:e}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationDecisionLogSizeLabel`),hint:e(`settings:brain.escalationDecisionLogSizeHint`),value:String(n.decisionLogMaxEntries),options:Vm(Bm(jm,String(n.decisionLogMaxEntries)),e),onChange:e=>m({decisionLogMaxEntries:Number(e)}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.rulesHeading`)}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px]`,children:e(`settings:brain.rulesConfigured`,{count:n.rules.length})})]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.rulesBody`)}),n.rules.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1`,children:n.rules.map((t,n)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsxs)(`span`,{className:`text-muted-foreground w-4 shrink-0`,children:[n+1,`.`]}),(0,Z.jsx)(`span`,{className:`flex-1 truncate font-mono`,children:t.id}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px] shrink-0`,children:t.then.action}),t.enabled===!1&&(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px] shrink-0`,children:e(`settings:brain.rulesOff`)})]},`${t.id}-${n}`))}),n.ruleErrors.length>0&&(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-warning/40 bg-warning/10 px-2 py-1.5`,children:[(0,Z.jsx)(`span`,{className:`text-xs font-medium text-warning`,children:e(`settings:brain.rulesDropped`,{count:n.ruleErrors.length})}),n.ruleErrors.map(e=>(0,Z.jsx)(`p`,{className:`text-xs text-warning`,children:e},e))]})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.heuristicsHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.heuristicsBody`)}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsLowRiskLabel`),hint:e(`settings:brain.heuristicsLowRiskHint`),value:n.heuristics.lowRiskAutoAnswer,onChange:()=>m({heuristics:{lowRiskAutoAnswer:!n.heuristics.lowRiskAutoAnswer}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsBlockedLabel`),hint:e(`settings:brain.heuristicsBlockedHint`),value:n.heuristics.blockedResolved,onChange:()=>m({heuristics:{blockedResolved:!n.heuristics.blockedResolved}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsDeadlockLabel`),hint:e(`settings:brain.heuristicsDeadlockHint`),value:n.heuristics.deadlockSkip,onChange:()=>m({heuristics:{deadlockSkip:!n.heuristics.deadlockSkip}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsRetryLabel`),hint:e(`settings:brain.heuristicsRetryHint`),value:n.heuristics.retryExhausted,onChange:()=>m({heuristics:{retryExhausted:!n.heuristics.retryExhausted}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsPingLabel`),hint:e(`settings:brain.heuristicsPingHint`),value:n.heuristics.continuePing,onChange:()=>m({heuristics:{continuePing:!n.heuristics.continuePing}}),disabled:c}),n.heuristics.blockedResolvedMarkers&&n.heuristics.blockedResolvedMarkers.length>0&&(0,Z.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:e(`settings:brain.heuristicsMarkers`,{markers:n.heuristics.blockedResolvedMarkers.join(`, `)})})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.qualityHeading`)}),n.circuit&&(0,Z.jsx)(Xf,{variant:n.circuit.state===`closed`?`outline`:`default`,className:`text-[10px]`,children:e(`settings:brain.qualityCircuit`,{state:n.circuit.state,count:n.circuit.consecutiveFailures})})]}),(0,Z.jsx)(Q,{label:e(`settings:brain.qualityResponseBudgetLabel`),hint:e(`settings:brain.qualityResponseBudgetHint`),value:String(n.llm.maxTokens),options:Vm(Bm(km,String(n.llm.maxTokens)),e),onChange:e=>m({llm:{maxTokens:Number(e)}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.qualityRejectLabel`),hint:e(`settings:brain.qualityRejectHint`),value:n.llm.rejectUncertain,onChange:()=>m({llm:{rejectUncertain:!n.llm.rejectUncertain}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.qualityMinConfidenceLabel`),hint:e(`settings:brain.qualityMinConfidenceHint`),value:String(n.llm.minConfidence),options:Vm(Bm(Am,String(n.llm.minConfidence)),e),onChange:e=>m({llm:{minConfidence:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.qualityDenyTerminalLabel`),hint:e(`settings:brain.qualityDenyTerminalHint`),value:n.llm.denyIsTerminal,options:[{value:`never`,label:e(`settings:brain.optNeverDefault`)},{value:`when-decided`,label:e(`settings:brain.optWhenDecided`)},{value:`always`,label:e(`settings:brain.optAlways`)}],onChange:e=>m({llm:{denyIsTerminal:e}}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.traceHeading`)}),(0,Z.jsx)($,{label:e(`settings:brain.traceRecordLabel`),hint:e(`settings:brain.traceRecordHint`),value:n.trace.enabled,onChange:()=>m({trace:{enabled:!n.trace.enabled}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.traceContentLabel`),hint:e(`settings:brain.traceContentHint`),value:n.trace.content,options:[{value:`full`,label:e(`settings:brain.optFullDefault`)},{value:`redacted`,label:e(`settings:brain.optRedacted`)},{value:`none`,label:e(`settings:brain.optMetadataOnly`)}],onChange:e=>m({trace:{content:e}}),disabled:c}),n.trace.path&&(0,Z.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:n.trace.path})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.cacheHeading`)}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px]`,children:e(`settings:brain.cacheStats`,{hits:n.cache.hits,misses:n.cache.misses,size:n.cache.size})})]}),(0,Z.jsx)($,{label:e(`settings:brain.cacheReplayLabel`),hint:e(`settings:brain.cacheReplayHint`),value:n.cache.enabled,onChange:()=>m({cache:{enabled:!n.cache.enabled}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.cacheLifetimeLabel`),hint:e(`settings:brain.cacheLifetimeHint`),value:String(n.cache.ttlMs),options:Vm(Bm(Mm,String(n.cache.ttlMs)),e),onChange:e=>m({cache:{ttlMs:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.cacheMaxEntriesLabel`),hint:e(`settings:brain.cacheMaxEntriesHint`),value:String(n.cache.maxEntries),options:Vm(Bm(Nm,String(n.cache.maxEntries)),e),onChange:e=>m({cache:{maxEntries:Number(e)}}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.monitorHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.monitorBody`)}),(0,Z.jsx)($,{label:e(`settings:brain.monitorWatchLabel`),hint:e(`settings:brain.monitorWatchHint`),value:n.monitor.enabled!==!1,onChange:()=>m({monitor:{enabled:n.monitor.enabled===!1}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.monitorPolicyLabel`),hint:e(`settings:brain.monitorPolicyHint`),value:n.monitor.policy??`llm`,options:[{value:`llm`,label:e(`settings:brain.optConsultBrain`)},{value:`steer`,label:e(`settings:brain.optAlwaysSteer`)},{value:`observe`,label:e(`settings:brain.optObserveOnly`)}],onChange:e=>m({monitor:{policy:e}}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.modelsHeading`)}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px]`,children:n.usingSessionModel?e(`settings:brain.modelsSessionBadge`):e(`settings:brain.modelsResolvedBadge`,{resolved:n.poolLabels.length,total:n.models.length})})]}),(0,Z.jsx)($,{label:e(`settings:brain.modelsUseSessionLabel`),hint:e(`settings:brain.modelsUseSessionHint`),value:n.usingSessionModel,onChange:()=>{n.usingSessionModel||m({models:null})},disabled:c}),n.models.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1`,children:n.models.map((e,t)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsxs)(`span`,{className:`text-muted-foreground w-4 shrink-0`,children:[t+1,`.`]}),(0,Z.jsx)(`span`,{className:`flex-1 truncate font-mono`,children:Wm(e)}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,disabled:c||t===0,onClick:()=>{let e=n.models.map(Wm),r=e.splice(t,1)[0];r&&e.splice(t-1,0,r),m({models:e})},children:(0,Z.jsx)(Nt,{className:`h-3 w-3`})}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,disabled:c||t===n.models.length-1,onClick:()=>{let e=n.models.map(Wm),r=e.splice(t,1)[0];r&&e.splice(t+1,0,r),m({models:e})},children:(0,Z.jsx)(pr,{className:`h-3 w-3`})}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 text-destructive`,disabled:c,onClick:()=>{let e=n.models.map(Wm).filter((e,n)=>n!==t);m({models:e.length>0?e:null})},children:(0,Z.jsx)(Xt,{className:`h-3 w-3`})})]},`${Wm(e)}-${t}`))}),(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,className:`gap-1.5 text-xs`,disabled:c,onClick:()=>p(`pool`),children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),` `,e(`settings:brain.modelsAddModel`)]}),n.models.length>1&&(0,Z.jsx)(Q,{label:e(`settings:brain.modelsPoolStrategyLabel`),hint:e(`settings:brain.modelsPoolStrategyHint`),value:n.strategy,options:[{value:`fallback`,label:e(`settings:brain.optFallback`)},{value:`round-robin`,label:e(`settings:brain.optRoundRobin`)}],onChange:e=>m({strategy:e}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.councilHeading`)}),(0,Z.jsx)(Xf,{variant:n.council.enabled?`default`:`outline`,className:`text-[10px]`,children:n.council.enabled?e(`settings:brain.councilConvened`):e(`settings:brain.councilDisabled`)})]}),(0,Z.jsx)($,{label:e(`settings:brain.councilEnableLabel`),hint:e(`settings:brain.councilEnableHint`),value:n.council.enabled,onChange:()=>m({council:{enabled:!n.council.enabled}}),disabled:c}),n.council.enabled&&n.councilLabels.length>0&&g.length===0&&(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.councilSeatsDerived`,{seats:n.councilLabels.join(`, `)})}),g.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1`,children:g.map((t,n)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsx)(`span`,{className:`flex-1 truncate font-mono`,children:Wm(t)}),(0,Z.jsxs)(`select`,{value:t.persona??v[n%v.length]?.id??``,onChange:e=>_(g.map((t,r)=>r===n?{...t,persona:e.target.value}:t)),className:`h-6 rounded border bg-background px-1 text-[10px]`,title:v.find(e=>e.id===t.persona)?.description??e(`settings:brain.councilCustomLens`),children:[v.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id)),t.persona&&!v.some(e=>e.id===t.persona)&&(0,Z.jsx)(`option`,{value:t.persona,children:e(`settings:brain.councilCustomOption`,{persona:t.persona})})]}),(0,Z.jsx)(Y,{variant:t.veto?`default`:`outline`,size:`sm`,className:`h-6 px-1.5 text-[10px]`,disabled:c,onClick:()=>_(g.map((e,t)=>t===n?{...e,veto:!e.veto}:e)),children:e(`settings:brain.councilVeto`)}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 text-destructive`,disabled:c,onClick:()=>_(g.filter((e,t)=>t!==n)),children:(0,Z.jsx)(Xt,{className:`h-3 w-3`})})]},`${Wm(t)}-${n}`))}),(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,className:`gap-1.5 text-xs`,disabled:c,onClick:()=>p(`voter`),children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),` `,e(`settings:brain.councilAddVoter`)]}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilRiskFloorLabel`),hint:e(`settings:brain.councilRiskFloorHint`),value:n.council.minRisk,options:[{value:`medium`,label:e(`settings:brain.optMediumPlus`)},{value:`high`,label:e(`settings:brain.optHighPlus`)},{value:`critical`,label:e(`settings:brain.optCriticalOnly`)}],onChange:e=>m({council:{minRisk:e}}),disabled:c}),(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3 py-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`text-sm font-medium`,children:e(`settings:brain.councilJudge`)}),(0,Z.jsx)(`div`,{className:`mt-0.5 text-xs text-muted-foreground`,children:e(`settings:brain.councilJudgeDesc`)}),!n.council.judge&&n.judgeLabel&&(0,Z.jsxs)(`div`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:[e(`settings:brain.councilResolved`,{model:n.judgeLabel}),n.judgeIsVoter&&(0,Z.jsx)(`span`,{className:`ml-1 font-sans text-warning`,children:e(`settings:brain.councilAlsoVoter`)})]})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`max-w-[180px] truncate font-mono text-xs`,children:n.council.judge?Wm(n.council.judge):e(`settings:brain.councilAuto`)}),(0,Z.jsx)(Y,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,disabled:c,onClick:()=>p(`judge`),children:e(`settings:brain.councilPick`)}),n.council.judge&&(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-7 text-xs`,disabled:c,onClick:()=>m({council:{judge:null}}),children:e(`settings:brain.councilAutoReset`)})]})]}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilQuorumLabel`),hint:e(`settings:brain.councilQuorumHint`),value:n.council.quorum===void 0?`default`:String(n.council.quorum),options:Vm(Om,e),onChange:e=>m({council:{quorum:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilApprovalLabel`),hint:e(`settings:brain.councilApprovalHint`),value:n.council.approval===void 0?`default`:String(n.council.approval),options:Vm(Om,e),onChange:e=>m({council:{approval:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilPerSeatTimeoutLabel`),hint:e(`settings:brain.councilPerSeatTimeoutHint`),value:Hm(n.council.perCallTimeoutMs),options:Vm(Bm(Pm,Hm(n.council.perCallTimeoutMs)),e),onChange:e=>m({council:{perCallTimeoutMs:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilMaxConcurrencyLabel`),hint:e(`settings:brain.councilMaxConcurrencyHint`),value:Hm(n.council.maxConcurrency),options:Vm(Bm(Fm,Hm(n.council.maxConcurrency)),e),onChange:e=>m({council:{maxConcurrency:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilDistinctnessLabel`),hint:e(`settings:brain.councilDistinctnessHint`),value:n.council.distinctness,options:[{value:`none`,label:e(`settings:brain.optNoneDefault`)},{value:`model`,label:e(`settings:brain.optDistinctModels`)},{value:`provider`,label:e(`settings:brain.optDistinctProviders`)}],onChange:e=>m({council:{distinctness:e}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilVoterBudgetLabel`),hint:e(`settings:brain.councilVoterBudgetHint`),value:Hm(n.council.voterMaxTokens),options:Vm(Bm(Im,Hm(n.council.voterMaxTokens)),e),onChange:e=>m({council:{voterMaxTokens:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilJudgeBudgetLabel`),hint:e(`settings:brain.councilJudgeBudgetHint`),value:Hm(n.council.judgeMaxTokens),options:Vm(Bm(Lm,Hm(n.council.judgeMaxTokens)),e),onChange:e=>m({council:{judgeMaxTokens:e==="default"?null:Number(e)}}),disabled:c}),n.council.seats.length>0&&(0,Z.jsxs)(`p`,{className:`truncate text-xs text-muted-foreground`,children:[e(`settings:brain.councilSeatTemplate`),` `,n.council.seats.map(t=>t.veto?`${t.persona} (${e(`settings:brain.councilVeto`)})`:t.persona).join(`, `)]})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.ledgerHeading`)}),(0,Z.jsx)($,{label:e(`settings:brain.ledgerRecordLabel`),hint:e(`settings:brain.ledgerRecordHint`),value:n.ledger.enabled,onChange:()=>m({ledger:{enabled:!n.ledger.enabled}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.ledgerAutoDenyLabel`),hint:e(`settings:brain.ledgerAutoDenyHint`),value:n.ledger.autoDenyAfterFailures===void 0?`default`:String(n.ledger.autoDenyAfterFailures),options:[{value:`default`,label:e(`settings:brain.optDefault3`)},{value:`0`,label:e(`settings:brain.optOff`)},{value:`2`,label:`2`},{value:`3`,label:`3`},{value:`5`,label:`5`}],onChange:e=>m({ledger:{autoDenyAfterFailures:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.ledgerMemoryEntriesLabel`),hint:e(`settings:brain.ledgerMemoryEntriesHint`),value:Hm(n.ledger.maxMemoryEntries),options:Vm(Bm(Rm,Hm(n.ledger.maxMemoryEntries)),e),onChange:e=>m({ledger:{maxMemoryEntries:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.ledgerRetryWindowLabel`),hint:e(`settings:brain.ledgerRetryWindowHint`),value:Hm(n.ledger.interventionRetryWindowMs),options:Vm(Bm(zm,Hm(n.ledger.interventionRetryWindowMs)),e),onChange:e=>m({ledger:{interventionRetryWindowMs:e==="default"?null:Number(e)}}),disabled:c}),n.ledger.path&&(0,Z.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:n.ledger.path})]})]}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-card/70 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.recentHeading`,{count:i.length})}),(0,Z.jsx)(`div`,{className:`space-y-1 max-h-[300px] overflow-y-auto`,children:i.length===0?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground py-2`,children:e(`settings:brain.recentEmpty`)}):i.map(e=>(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsx)(`span`,{className:`text-muted-foreground shrink-0 w-8`,children:e.age}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px] shrink-0`,children:e.kind}),(0,Z.jsx)(`span`,{className:`flex-1 truncate`,children:e.question}),e.outcome&&(0,Z.jsx)(`span`,{className:`text-muted-foreground shrink-0 italic`,children:e.outcome})]},`${e.age}-${e.kind}-${e.question.slice(0,32)}`))})]})]})}function qm(){let{t:e}=R();return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(ar,{className:`h-5 w-5 text-info`}),(0,Z.jsx)(`h3`,{className:`text-lg font-semibold`,children:e(`activity:shadow.shadowAgent`)})]}),(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`activity:shadow.theShadowAgentMonitorsAllFleet`)}),(0,Z.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Start and stop it from the chat with`,` `,(0,Z.jsx)(`code`,{className:`font-mono text-xs`,children:`/shadow start`}),` and`,` `,(0,Z.jsx)(`code`,{className:`font-mono text-xs`,children:`/shadow stop`}),`. This panel cannot control it yet.`]})]})}function Jm({disabled:e,direct:t}){let n=e?`bg-muted-foreground`:t?`bg-success`:`bg-info`,r=e?`disabled`:t?`direct provider tool`:`lazy catalog tool`;return(0,Z.jsx)(`span`,{className:`inline-block h-2 w-2 shrink-0 rounded-full ${n}`,title:r})}function Ym({tool:e,onToggle:t,busy:n}){let{t:r}=R(),[i,a]=(0,X.useState)(!1);return(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-card/70 p-3 transition-colors hover:bg-card`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 sm:flex-row sm:items-start`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-2`,children:[(0,Z.jsx)(Jm,{disabled:e.disabled,direct:e.direct}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`code`,{className:`block truncate text-sm font-mono font-semibold`,title:e.name,children:e.name}),(0,Z.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-1.5`,children:[(0,Z.jsx)(Xf,{variant:`outline`,className:`px-1.5 text-[10px]`,children:e.permission}),(0,Z.jsx)(Xf,{variant:`outline`,className:`px-1.5 text-[10px]`,children:e.mutating?`mutating`:`read-only`}),(0,Z.jsx)(Xf,{variant:`outline`,className:`px-1.5 text-[10px]`,children:e.disabled?`disabled`:e.direct?`direct`:`lazy`}),(0,Z.jsx)(`span`,{className:`truncate text-[11px] text-muted-foreground`,title:e.owner,children:e.owner})]})]})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1`,children:[(0,Z.jsxs)(Y,{variant:e.disabled?`default`:`secondary`,size:`sm`,className:`h-7 gap-1 px-2 text-xs`,onClick:t,disabled:n,children:[n?(0,Z.jsx)(Bt,{className:`h-3 w-3 animate-spin`}):e.disabled?(0,Z.jsx)(x,{className:`h-3 w-3`}):(0,Z.jsx)(nt,{className:`h-3 w-3`}),e.disabled?`Enable`:`Disable`]}),(0,Z.jsx)(`button`,{type:`button`,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:()=>a(!i),"aria-label":i?`Collapse`:`Expand`,children:(0,Z.jsx)(Zt,{className:`h-4 w-4 transition-transform ${i?`rotate-180`:``}`})})]})]}),i&&(0,Z.jsxs)(`div`,{className:`space-y-1 border-t border-border/60 pt-2 text-xs text-muted-foreground sm:ml-4`,children:[(0,Z.jsx)(`p`,{children:e.description}),e.params.length>0&&(0,Z.jsxs)(`p`,{children:[r(`activity:toolsSec.params`),` `,(0,Z.jsx)(`code`,{className:`break-all font-mono`,children:e.params.join(`, `)})]})]})]})}function Xm(){let{t:e}=R(),{client:t}=zr(),[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(!0),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(new Set);(0,X.useEffect)(()=>{let e=t.on(`tools.list`,e=>{let t=e.payload;r(t.tools),a(!1)}),n=e=>{if(e.type===`tool.disabled`||e.type===`tool.enabled`){let n=e.payload;l(e=>{let t=new Set(e);return t.delete(n.name),t}),n.ok?t.send({type:`tools.list`},{echoToChat:!1}):J.error(`Tool "${n.name}" ${e.type===`tool.disabled`?`disable`:`enable`} failed.`)}},i=t.on(`tool.disabled`,n),o=t.on(`tool.enabled`,n);return()=>{e(),i(),o()}},[t]),(0,X.useEffect)(()=>{t.send({type:`tools.list`},{echoToChat:!1})},[t]);let u=(0,X.useCallback)((e,n)=>{l(t=>new Set(t).add(e)),t.send({type:n?`tool.enable`:`tool.disable`,payload:{name:e}})},[t]),d=o?n.filter(e=>e.name.toLowerCase().includes(o.toLowerCase())||e.owner.toLowerCase().includes(o.toLowerCase())):n,f=n.filter(e=>!e.disabled&&e.direct).length,p=n.filter(e=>!e.disabled&&!e.direct).length,m=n.filter(e=>e.disabled).length;return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(tn,{className:`h-5 w-5`})}),(0,Z.jsx)(`h3`,{className:`text-base font-semibold`,children:e(`activity:toolsSec.tools`)})]}),!i&&(0,Z.jsxs)(`span`,{className:`rounded-md border border-border/60 bg-muted/30 px-2 py-1 text-xs text-muted-foreground sm:ml-auto`,children:[f,` direct · `,p,` lazy · `,m,` disabled · `,n.length,` `,`total`]})]}),(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(zt,{className:`absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground`}),(0,Z.jsx)(Ri,{placeholder:e(`activity:toolsSec.filterToolsByNameOrOwner`),value:o,onChange:e=>s(e.target.value),className:`pl-8 h-9 text-sm`})]}),i?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground gap-2`,children:[(0,Z.jsx)(Bt,{className:`h-4 w-4 animate-spin`}),e(`activity:toolsSec.loadingTools`)]}):d.length===0?(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground py-4 text-center`,children:o?`No tools matching "${o}".`:`No tools registered.`}):(0,Z.jsxs)(`div`,{className:`relative overflow-hidden rounded-lg border border-border/70 bg-background/35 shadow-inner`,children:[(0,Z.jsx)(`ul`,{className:`max-h-[min(58dvh,660px)] space-y-2 overflow-y-scroll p-2 pr-3 [scrollbar-gutter:stable]`,"aria-label":e(`activity:toolsSec.toolsList`),children:d.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(Ym,{tool:e,onToggle:()=>u(e.name,e.disabled),busy:c.has(e.name)})},e.name))}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 top-0 h-4 bg-gradient-to-b from-background/90 to-transparent`}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-gradient-to-t from-background/95 to-transparent`})]})]})}function Zm(){let{t:e}=R();return(0,Z.jsxs)(`div`,{className:`space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 pb-3 border-b border-border/50`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(ar,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`settings:security.brainHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`settings:security.brainHint`)})]})]}),(0,Z.jsx)(Km,{})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 pb-3 border-b border-border/50`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(ar,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`settings:security.shadowHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`settings:security.shadowHint`)})]})]}),(0,Z.jsx)(qm,{})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 pb-3 border-b border-border/50`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(ar,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`settings:security.toolsHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`settings:security.toolsHint`)})]})]}),(0,Z.jsx)(Xm,{})]})]})}var Qm=[{id:`general`,icon:(0,Z.jsx)(Ce,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.general`,descKey:`settings:tabs.generalDesc`},{id:`provider`,icon:(0,Z.jsx)(g,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.provider`,descKey:`settings:tabs.providerDesc`},{id:`connection`,icon:(0,Z.jsx)(gn,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.connection`,descKey:`settings:tabs.connectionDesc`},{id:`agent`,icon:(0,Z.jsx)(qt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.agent`,descKey:`settings:tabs.agentDesc`},{id:`execution`,icon:(0,Z.jsx)(sr,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.execution`,descKey:`settings:tabs.executionDesc`},{id:`fallbacks`,icon:(0,Z.jsx)(Ft,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.fallbacks`,descKey:`settings:tabs.fallbacksDesc`},{id:`routing`,icon:(0,Z.jsx)(Kt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.routing`,descKey:`settings:tabs.routingDesc`},{id:`fleet`,icon:(0,Z.jsx)(wr,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.fleet`,descKey:`settings:tabs.fleetDesc`},{id:`integrations`,icon:(0,Z.jsx)(yr,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.integrations`,descKey:`settings:tabs.integrationsDesc`},{id:`chimera`,icon:(0,Z.jsx)(Yn,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.chimera`,descKey:`settings:tabs.chimeraDesc`},{id:`context`,icon:(0,Z.jsx)(jt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.context`,descKey:`settings:tabs.contextDesc`},{id:`logs`,icon:(0,Z.jsx)(Lt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.logs`,descKey:`settings:tabs.logsDesc`},{id:`security`,icon:(0,Z.jsx)(he,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.security`,descKey:`settings:tabs.securityDesc`},{id:`display`,icon:(0,Z.jsx)(Ce,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.display`,descKey:`settings:tabs.displayDesc`}];function $m(){let{settingsActiveTab:e,setSettingsActiveTab:t}=K(je(e=>({settingsActiveTab:e.settingsActiveTab,setSettingsActiveTab:e.setSettingsActiveTab}))),n=$d(`settings`),r=(0,X.useRef)(!1),[i,a]=(0,X.useState)(!1),{provider:o,model:s,setProvider:c,setModel:l,wsConnected:d}=G(je(e=>({provider:e.provider,model:e.model,setProvider:e.setProvider,setModel:e.setModel,wsConnected:e.wsConnected}))),f=zr(),p=f.client,{updatePrefs:m,switchAutonomy:h}=f,g=B(),{t:_}=R(),v=Ki(!0),y=(0,X.useCallback)((e,t)=>{g.set({[e]:t}),m({[e]:t})},[g,m]),[b,x]=(0,X.useState)([]),[S,C]=(0,X.useState)({}),[w,T]=(0,X.useState)([]),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(!1),[A,j]=(0,X.useState)(!1),[ee,M]=(0,X.useState)(`catalog`),[te,N]=(0,X.useState)(``),[P,ne]=(0,X.useState)(!1),[F,I]=(0,X.useState)(!1),re=(0,X.useCallback)(()=>{g.reset(),I(!1),window.location.reload()},[g]),ie=b.find(e=>e.id===o),ae=Qm.find(t=>t.id===e);(0,X.useEffect)(()=>{let e=e=>{if(e.type===`provider.catalog`){let t=e.payload;x(t.providers.sort((e,t)=>e.id.localeCompare(t.id))),D(!1)}},t=e=>{if(e.type===`provider.models`){let t=e.payload;C(e=>({...e,[t.provider]:t.models})),k(!1)}},n=e=>{if(e.type===`providers.saved`){let t=e.payload.providers.sort((e,t)=>e.id.localeCompare(t.id));T(t),j(!1),t.length>0&&M(`saved`)}};if(!d||!p)return;let r=p.on(`provider.catalog`,e),i=p.on(`provider.models`,t),a=p.on(`providers.saved`,n);return D(!0),j(!0),p.listProviders(),p.listSavedProviders(),()=>{r?.(),i?.(),a?.()}},[d,p]);let oe=(0,X.useCallback)(e=>{c(e),S[e]||(k(!0),f.listProviderModels?.(e))},[S,c,f]),se=(0,X.useCallback)(async e=>{if(r.current)return;let t=G.getState().model,n=G.getState().provider;if(!(!n||e===t)){r.current=!0,a(!0),l(e);try{J.info(z.t(`settings:toast.switchingTo`,{provider:n,model:e}));let r=await f.switchModel?.(n,e);r?.success?J.success(z.t(r.runActive?`settings:toast.modelSwitchedRunActive`:`settings:toast.modelSwitchedNextRequest`,{from:`${n} / ${t}`,to:`${n} / ${e}`})):(l(t),J.error(r?.message??z.t(`settings:toast.modelSwitchTimeout`)))}finally{r.current=!1,a(!1)}}},[l,f]),L=(0,X.useCallback)((e,t,n)=>{f.addKey?.(e,t,n)},[f]),ce=(0,X.useCallback)((e,t)=>{f.deleteKey?.(e,t)},[f]),le=(0,X.useCallback)((e,t)=>{f.setActiveKey?.(e,t)},[f]),ue=(0,X.useCallback)((e,t,n,r,i,a)=>{f.addProvider?.(e,t,n,r,i,a)},[f]),de=(0,X.useCallback)(e=>{f.removeProvider?.(e)},[f]),fe=(0,X.useCallback)((e,t)=>{f.client.updateProvider({id:e,models:[t]}),e===G.getState().provider&&l(t)},[l,f.client]);return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-gradient-to-b from-background/90 via-background/60 to-background/80`,children:[(0,Z.jsxs)(`header`,{className:`flex items-center justify-between px-4 py-3 border-b border-border/60 bg-card/60 backdrop-blur-xl shrink-0 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Mn,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{className:`text-lg font-semibold bg-gradient-to-r from-foreground to-foreground/70 bg-clip-text text-transparent`,children:_(`settings:title`)}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-[11px] text-muted-foreground`,children:o&&s?`${o} / ${s}`:_(`settings:subtitle`)})]})]}),(0,Z.jsx)(Y,{variant:`ghost`,size:`icon`,onClick:()=>q(`chat`),children:(0,Z.jsx)(Xt,{className:`h-4 w-4`})}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:()=>I(!0),children:_(`settings:resetLabel`)})]}),(0,Z.jsx)(qa,{className:`min-h-0 flex-1`,ref:n,children:(0,Z.jsx)(`div`,{className:`mx-auto max-w-7xl p-4 sm:p-6`,children:(0,Z.jsxs)(Ya,{value:e,onValueChange:t,className:`grid min-h-[calc(100dvh-9rem)] gap-3 lg:grid-cols-[13.5rem_minmax(0,1fr)] lg:gap-5`,children:[(0,Z.jsxs)(`div`,{className:`relative min-w-0`,children:[(0,Z.jsx)(Xa,{className:`flex h-auto w-full justify-start gap-0.5 overflow-x-scroll rounded-lg border border-border/60 bg-card/60 p-1.5 shadow-sm [scrollbar-gutter:stable] lg:sticky lg:top-4 lg:flex-col lg:overflow-visible lg:rounded-xl lg:bg-card/60 lg:p-2`,children:Qm.map(e=>(0,Z.jsxs)(Za,{value:e.id,className:`h-9 shrink-0 gap-2.5 rounded-md px-3 text-xs scroll-mt-2 data-[state=active]:bg-primary/10 data-[state=active]:text-primary data-[state=active]:shadow-sm lg:w-full lg:justify-start lg:px-3`,children:[(0,Z.jsx)(`span`,{className:`shrink-0`,children:e.icon}),(0,Z.jsx)(`span`,{className:`truncate`,children:_(e.labelKey)})]},e.id))}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-y-1 left-0 z-10 w-8 rounded-l-lg bg-gradient-to-r from-background via-background/90 to-transparent lg:hidden`}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-y-1 right-0 z-10 w-8 rounded-r-lg bg-gradient-to-l from-background via-background/90 to-transparent lg:hidden`})]}),(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-0`,children:[ae?.descKey&&(0,Z.jsxs)(`div`,{className:`mb-4 flex items-start gap-3 rounded-xl border border-border/60 bg-card/50 px-4 py-3`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:ae.icon}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-semibold`,children:_(ae.labelKey)}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:_(ae.descKey)})]})]}),(0,Z.jsx)(Qa,{value:`general`,className:`mt-0`,children:(0,Z.jsx)(Ff,{})}),(0,Z.jsxs)(Qa,{value:`provider`,className:`mt-0 space-y-4`,children:[(0,Z.jsx)(sm,{activeProvider:o,catalogProviders:b,isLoadingCatalog:E,savedProviders:w,isLoadingSaved:A,providerTab:ee,setProviderTab:M,onSelectProvider:oe,onAddKey:L,onDeleteKey:ce,onSetActiveKey:le,onAddProvider:ue,onRemoveProvider:de,onPickProviderModel:fe,ws:f.client,catalogQuery:te,setCatalogQuery:N}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-4 flex items-center gap-2`,children:[(0,Z.jsx)(vr,{className:`h-4 w-4 text-muted-foreground`}),_(`settings:model.heading`)]}),(0,Z.jsx)(op,{provider:o,catalogModels:S,currentCatalogProvider:ie,isLoadingModels:O,setIsLoadingModels:k,onModelSelect:se,isSwitching:i,refreshModels:e=>f.listProviderModels?.(e)})]})]}),(0,Z.jsx)(Qa,{value:`connection`,className:`mt-0`,children:(0,Z.jsx)(Pf,{})}),(0,Z.jsxs)(Qa,{value:`agent`,className:`mt-0 space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(u,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:agent.autonomyHeading`)})})]}),(0,Z.jsx)(Q,{label:_(`settings:agent.autonomyModeLabel`),hint:_(`settings:agent.autonomyModeHint`),value:g.autonomy,options:[{value:`off`,label:_(`settings:agent.autonomyModeOff`)},{value:`suggest`,label:_(`settings:agent.autonomyModeSuggest`)},{value:`auto`,label:_(`settings:agent.autonomyModeAuto`)},{value:`eternal`,label:_(`settings:agent.autonomyModeEternal`)},{value:`eternal-parallel`,label:_(`settings:agent.autonomyModeEternalParallel`)}],onChange:e=>{g.set({autonomy:e}),h(e)}}),(0,Z.jsx)(Nf,{label:_(`settings:agent.autonomyDelayMsLabel`),hint:_(`settings:agent.autonomyDelayMsHint`),value:g.autonomyDelayMs,min:0,max:1e4,step:500,unit:`ms`,onChange:e=>y(`autonomyDelayMs`,e)}),(0,Z.jsx)($,{label:_(`settings:agent.yoloLabel`),hint:_(`settings:agent.yoloHint`),value:g.yolo,onChange:()=>y(`yolo`,!g.yolo)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(sr,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:agent.refineHeading`)})})]}),(0,Z.jsx)($,{label:_(`settings:agent.enableRefineLabel`),hint:_(`settings:agent.enableRefineHint`),value:g.enhanceEnabled,onChange:()=>y(`enhanceEnabled`,!g.enhanceEnabled)}),(0,Z.jsx)(Nf,{label:_(`settings:agent.refineDelayLabel`),hint:_(`settings:agent.refineDelayHint`),value:g.enhanceDelayMs,min:3e4,max:12e4,step:15e3,unit:`ms`,onChange:e=>y(`enhanceDelayMs`,e)}),(0,Z.jsx)(Nf,{label:_(`settings:agent.refineCountdownLabel`),hint:_(`settings:agent.refineCountdownHint`),value:g.enhanceCountdownMs,min:1e3,max:1e4,step:1e3,unit:`ms`,onChange:e=>y(`enhanceCountdownMs`,e)}),(0,Z.jsx)(Q,{label:_(`settings:agent.refineLanguageLabel`),hint:_(`settings:agent.refineLanguageHint`),value:g.enhanceLanguage,options:[{value:`original`,label:_(`settings:agent.refineLanguageOriginal`)},{value:`english`,label:_(`settings:agent.refineLanguageEnglish`)}],onChange:e=>y(`enhanceLanguage`,e)}),(0,Z.jsxs)(`div`,{className:`pt-3`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium mb-2`,children:_(`settings:agent.refineHeading`)}),(0,Z.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 rounded-lg border border-border p-3 text-left cursor-pointer hover:bg-muted/50 transition-colors`,onClick:()=>ne(!0),children:[(0,Z.jsx)(`div`,{className:`min-w-0 flex-1`,children:g.refinerFallbackProfile?(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,Z.jsx)(`span`,{className:`text-xs font-mono text-primary bg-primary/10 px-1.5 py-0.5 rounded`,children:g.refinerFallbackProfile}),(0,Z.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[(g.fallbackProfiles[g.refinerFallbackProfile]??[]).slice(0,2).join(` → `),(g.fallbackProfiles[g.refinerFallbackProfile]??[]).length>2?` …`:``]})]}):g.refinerProvider&&g.refinerModel?(0,Z.jsxs)(`span`,{className:`text-xs font-mono`,children:[g.refinerProvider,`/`,g.refinerModel]}):g.refinerProvider?(0,Z.jsxs)(`span`,{className:`text-xs font-mono`,children:[g.refinerProvider,` /`,` `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:_(`activity:index.sessionModel`)})]}):(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:_(`settings:agent.refinerProviderDefault`)})}),(0,Z.jsx)(vr,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})]}),P&&(0,Z.jsx)(wf,{open:P,mode:`both`,title:_(`settings:agent.refineHeading`),hint:_(`settings:agent.refinerProviderHint`),fallbackProfiles:g.fallbackProfiles,clearLabel:_(`common:action.clear`),onPick:e=>{e.type===`clear`?(y(`refinerProvider`,``),y(`refinerModel`,``),y(`refinerFallbackProfile`,``)):e.type===`provider-model`?(y(`refinerProvider`,e.provider),y(`refinerModel`,e.model),y(`refinerFallbackProfile`,``)):e.type===`fallback-profile`&&(y(`refinerProvider`,``),y(`refinerModel`,``),y(`refinerFallbackProfile`,e.name)),ne(!1)},onClose:()=>ne(!1)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(vr,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:agent.reasoningHeading`)})})]}),(0,Z.jsx)(Q,{label:_(`settings:agent.reasoningModeLabel`),hint:_(`settings:agent.reasoningModeHint`),value:g.reasoningMode,options:[{value:`auto`,label:_(`settings:agent.reasoningModeAuto`)},{value:`on`,label:_(`settings:agent.reasoningModeOn`)},{value:`off`,label:_(`settings:agent.reasoningModeOff`)}],onChange:e=>y(`reasoningMode`,e)}),(0,Z.jsx)(Q,{label:_(`settings:agent.reasoningEffortLabel`),hint:_(`settings:agent.reasoningEffortHint`),value:g.reasoningEffort,options:[{value:`none`,label:_(`settings:agent.reasoningEffortNone`)},{value:`minimal`,label:_(`settings:agent.reasoningEffortMinimal`)},{value:`low`,label:_(`settings:agent.reasoningEffortLow`)},{value:`medium`,label:_(`settings:agent.reasoningEffortMedium`)},{value:`high`,label:_(`settings:agent.reasoningEffortHigh`)},{value:`xhigh`,label:_(`settings:agent.reasoningEffortXhigh`)},{value:`max`,label:_(`settings:agent.reasoningEffortMax`)}],onChange:e=>y(`reasoningEffort`,e)}),(0,Z.jsx)($,{label:_(`settings:agent.preserveThinkingLabel`),hint:_(`settings:agent.preserveThinkingHint`),value:g.reasoningPreserve,onChange:()=>y(`reasoningPreserve`,!g.reasoningPreserve)}),(0,Z.jsx)(Q,{label:_(`settings:agent.cacheTtlLabel`),hint:_(`settings:agent.cacheTtlHint`),value:g.cacheTtl,options:[{value:`default`,label:_(`settings:agent.cacheTtlDefault`)},{value:`5m`,label:_(`settings:agent.cacheTtl5m`)},{value:`1h`,label:_(`settings:agent.cacheTtl1h`)}],onChange:e=>y(`cacheTtl`,e)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-2`,children:_(`settings:agent.capsHint`)})]})]}),(0,Z.jsxs)(Qa,{value:`execution`,className:`mt-0 space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(sr,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:execution.heading`)})})]}),(0,Z.jsx)(Nf,{label:_(`settings:execution.maxIterationsLabel`),hint:_(`settings:execution.maxIterationsHint`),value:g.maxIterations,min:10,max:2e3,step:10,onChange:e=>y(`maxIterations`,e)}),(0,Z.jsx)(Nf,{label:_(`settings:execution.autoProceedMaxIterationsLabel`),hint:_(`settings:execution.autoProceedMaxIterationsHint`),value:g.autoProceedMaxIterations,min:0,max:250,step:5,onChange:e=>y(`autoProceedMaxIterations`,e)}),(0,Z.jsx)($,{label:_(`settings:execution.confirmExitLabel`),hint:_(`settings:execution.confirmExitHint`),value:g.confirmExit,onChange:()=>y(`confirmExit`,!g.confirmExit)}),(0,Z.jsx)($,{label:_(`settings:execution.chimeLabel`),hint:_(`settings:execution.chimeHint`),value:g.chime,onChange:()=>y(`chime`,!g.chime)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-warning/20 bg-warning/10 text-warning`,children:(0,Z.jsx)(he,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:execution.breakerLabel`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:_(`settings:execution.breakerHint`)})]})]}),(0,Z.jsx)($,{label:_(`settings:execution.breakerLabel`),hint:_(`settings:execution.breakerHint`),value:g.breakerEnabled,onChange:()=>y(`breakerEnabled`,!g.breakerEnabled)}),(0,Z.jsx)(Nf,{label:_(`settings:execution.breakerTimeoutLabel`),hint:_(`settings:execution.breakerTimeoutHint`),value:g.breakerAutoKillResetMs,min:0,max:6e4,step:1e3,unit:`ms`,onChange:e=>y(`breakerAutoKillResetMs`,e)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(un,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:execution.availabilityHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:_(`settings:execution.availabilityHint`)})]})]}),(0,Z.jsx)(Sf,{value:g.modelAvailabilitySchedule,candidates:v,onChange:e=>y(`modelAvailabilitySchedule`,e)})]})]}),(0,Z.jsx)(Qa,{value:`fallbacks`,className:`mt-0`,children:(0,Z.jsx)(qf,{syncPref:y,candidates:v,provider:o,activeModel:s,setProvider:c,setModel:l,switchModel:f.switchModel})}),(0,Z.jsx)(Qa,{value:`routing`,className:`mt-0`,children:(0,Z.jsx)(bm,{syncPref:y,candidates:v})}),(0,Z.jsx)(Qa,{value:`fleet`,className:`mt-0`,children:(0,Z.jsx)(Jf,{syncPref:y})}),(0,Z.jsx)(Qa,{value:`integrations`,className:`mt-0`,children:(0,Z.jsx)(ap,{syncPref:y})}),(0,Z.jsx)(Qa,{value:`chimera`,className:`mt-0 space-y-6`,children:(0,Z.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:(0,Z.jsx)(If,{syncPref:y,sessionProvider:o,sessionModel:s})})}),(0,Z.jsxs)(Qa,{value:`context`,className:`mt-0 space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(jt,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:context.flagsHeading`)})})]}),(0,Z.jsxs)(`div`,{className:`grid gap-1 sm:grid-cols-2`,children:[(0,Z.jsx)($,{label:_(`settings:context.mcpLabel`),hint:_(`settings:context.mcpHint`),value:g.featureMcp,onChange:()=>y(`featureMcp`,!g.featureMcp)}),(0,Z.jsx)($,{label:_(`settings:context.pluginsLabel`),hint:_(`settings:context.pluginsHint`),value:g.featurePlugins,onChange:()=>y(`featurePlugins`,!g.featurePlugins)}),(0,Z.jsx)($,{label:_(`settings:context.memoryLabel`),hint:_(`settings:context.memoryHint`),value:g.featureMemory,onChange:()=>y(`featureMemory`,!g.featureMemory)}),(0,Z.jsx)($,{label:_(`settings:context.skillsLabel`),hint:_(`settings:context.skillsHint`),value:g.featureSkills,onChange:()=>y(`featureSkills`,!g.featureSkills)}),(0,Z.jsx)($,{label:_(`settings:context.modelsRegistryLabel`),hint:_(`settings:context.modelsRegistryHint`),value:g.featureModelsRegistry,onChange:()=>y(`featureModelsRegistry`,!g.featureModelsRegistry)}),(0,Z.jsx)($,{label:_(`settings:context.indexOnStartLabel`),hint:_(`settings:context.indexOnStartHint`),value:g.indexOnStart,onChange:()=>y(`indexOnStart`,!g.indexOnStart)})]})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(jt,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:context.compactorStrategyLabel`)})})]}),(0,Z.jsx)($,{label:_(`settings:context.autoCompactLabel`),hint:_(`settings:context.autoCompactHint`),value:g.contextAutoCompact,onChange:()=>y(`contextAutoCompact`,!g.contextAutoCompact)}),(0,Z.jsx)(Q,{label:_(`settings:context.compactorStrategyLabel`),hint:_(`settings:context.compactorStrategyHint`),value:g.contextStrategy,options:[{value:`hybrid`,label:_(`settings:context.compactorStrategyHybrid`)},{value:`intelligent`,label:_(`settings:context.compactorStrategyIntelligent`)},{value:`selective`,label:_(`settings:context.compactorStrategySelective`)}],onChange:e=>y(`contextStrategy`,e)}),(0,Z.jsx)(Q,{label:_(`settings:context.contextModeLabel`),hint:_(`settings:context.contextModeHint`),value:g.contextMode,options:[{value:`balanced`,label:_(`settings:context.contextModeBalanced`)},{value:`frugal`,label:_(`settings:context.contextModeFrugal`)},{value:`deep`,label:_(`settings:context.contextModeDeep`)}],onChange:e=>y(`contextMode`,e)}),(0,Z.jsx)(Q,{label:_(`settings:context.tokenSavingLabel`),hint:_(`settings:context.tokenSavingHint`),value:g.tokenSavingTier,options:[{value:`auto`,label:_(`settings:context.tokenSavingAuto`)},{value:`off`,label:_(`settings:context.tokenSavingOff`)},{value:`minimal`,label:_(`settings:context.tokenSavingMinimal`)},{value:`light`,label:_(`settings:context.tokenSavingLight`)},{value:`medium`,label:_(`settings:context.tokenSavingMedium`)},{value:`aggressive`,label:_(`settings:context.tokenSavingAggressive`)}],onChange:e=>y(`tokenSavingTier`,e)})]}),(0,Z.jsx)(dp,{})]}),(0,Z.jsx)(Qa,{value:`logs`,className:`mt-0 space-y-6`,children:(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Lt,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:logs.heading`)})})]}),(0,Z.jsx)(Q,{label:_(`settings:logs.logLevelLabel`),hint:_(`settings:logs.logLevelHint`),value:g.logLevel,options:[{value:`debug`,label:_(`settings:logs.logLevelDebug`)},{value:`info`,label:_(`settings:logs.logLevelInfo`)},{value:`warn`,label:_(`settings:logs.logLevelWarn`)},{value:`error`,label:_(`settings:logs.logLevelError`)}],onChange:e=>y(`logLevel`,e)}),(0,Z.jsx)(Q,{label:_(`settings:logs.auditLevelLabel`),hint:_(`settings:logs.auditLevelHint`),value:g.auditLevel,options:[{value:`minimal`,label:_(`settings:logs.auditLevelMinimal`)},{value:`standard`,label:_(`settings:logs.auditLevelStandard`)},{value:`full`,label:_(`settings:logs.auditLevelFull`)}],onChange:e=>y(`auditLevel`,e)}),(0,Z.jsx)(Q,{label:_(`settings:logs.fsAccessLabel`),hint:_(`settings:logs.fsAccessHint`),value:g.fsAccess,options:[{value:`unrestricted`,label:_(`settings:logs.fsAccessUnrestricted`)},{value:`project`,label:_(`settings:logs.fsAccessProject`)}],onChange:e=>y(`fsAccess`,e)}),(0,Z.jsx)($,{label:_(`settings:logs.debugStreamLabel`),hint:_(`settings:logs.debugStreamHint`),value:g.debugStream,onChange:()=>y(`debugStream`,!g.debugStream)})]})}),(0,Z.jsx)(Qa,{value:`security`,className:`mt-0`,children:(0,Z.jsx)(Zm,{})}),(0,Z.jsx)(Qa,{value:`display`,className:`mt-0`,children:(0,Z.jsx)(Vf,{syncPref:y})})]})]})})}),(0,Z.jsx)(Li,{open:F,onOpenChange:I,children:(0,Z.jsxs)(Pi,{showCloseButton:!1,children:[(0,Z.jsxs)(Mi,{children:[(0,Z.jsx)(Fi,{children:_(`settings:resetConfirmTitle`)}),(0,Z.jsx)(Ii,{children:_(`settings:resetConfirmBody`)})]}),(0,Z.jsxs)(Ni,{className:`gap-2 sm:gap-0`,children:[(0,Z.jsx)(Y,{variant:`outline`,onClick:()=>I(!1),children:_(`settings:cancel`)}),(0,Z.jsx)(Y,{variant:`destructive`,onClick:re,children:_(`settings:resetConfirmAction`)})]})]})})]})}var eh=(0,X.lazy)(()=>V(()=>import(`./AnalyticsDashboard-DKkhZ8uy.js`).then(e=>({default:e.AnalyticsDashboard})),__vite__mapDeps([28,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23]))),th=(0,X.lazy)(()=>V(()=>import(`./AgentRosterView-w4W3kv5U.js`).then(e=>({default:e.AgentRosterView})),__vite__mapDeps([29,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,0,8,21,20,22,23,24,26,30,18,25,31]))),nh=(0,X.lazy)(()=>V(()=>import(`./ChangesView-B5G6Yjur.js`).then(e=>({default:e.ChangesView})),__vite__mapDeps([32,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,33,34]))),rh=(0,X.lazy)(()=>V(()=>import(`./ChronicleDashboard-CtkbnwnE.js`).then(e=>({default:e.ChronicleDashboard})),__vite__mapDeps([35,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8]))),ih=(0,X.lazy)(()=>V(()=>import(`./CodeEditor-Cnn5KXCJ.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([36,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,20,21,19,22,23,24,33,34,37,38,39]))),ah=(0,X.lazy)(()=>V(()=>import(`./CodeMap-CnlnHM8P.js`).then(e=>({default:e.CodeMap})),__vite__mapDeps([40,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,20,25]))),oh=(0,X.lazy)(()=>V(()=>import(`./DebugDashboard-oHU64ZqM.js`).then(e=>({default:e.DebugDashboard})),__vite__mapDeps([41,1,2,3,4,5,6,10,11,12,13,14,15,16,17]))),sh=(0,X.lazy)(()=>V(()=>import(`./DesignGalleryView-DKUP0p_v.js`).then(e=>({default:e.DesignGalleryView})),__vite__mapDeps([42,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26]))),ch=(0,X.lazy)(()=>V(()=>import(`./GoalView-dj7g7W7O.js`).then(e=>({default:e.GoalView})),__vite__mapDeps([43,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,18,0,8,20,21,22,23,24,25,26,38,44,27,45]))),lh=(0,X.lazy)(()=>V(()=>import(`./KanbanView-B26rNiBN.js`).then(e=>({default:e.KanbanView})),__vite__mapDeps([46,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,27,30,18,24,25,26,47]))),uh=(0,X.lazy)(()=>V(()=>import(`./MailboxDetailView-C02ZH9l0.js`).then(e=>({default:e.MailboxDetailView})),__vite__mapDeps([48,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,22,23,24,33]))),dh=(0,X.lazy)(()=>V(()=>import(`./OfficeMapPanel-Bzrrn7kn.js`).then(e=>({default:e.OfficeMapPanel})),__vite__mapDeps([49,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,50]))),fh=(0,X.lazy)(()=>V(()=>import(`./RefreshDebugView-DA6cPIhw.js`).then(e=>({default:e.RefreshDebugView})),__vite__mapDeps([51,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,8,23]))),ph=(0,X.lazy)(()=>V(()=>import(`./SageTabs-DSExPkoe.js`).then(e=>({default:e.SageTabs})),__vite__mapDeps([52,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7]))),mh=(0,X.lazy)(()=>V(()=>import(`./RequirementIntakeView-DoUHdXsF.js`).then(e=>({default:e.RequirementIntakeView})),__vite__mapDeps([53,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,38,45]))),hh=(0,X.lazy)(()=>V(()=>import(`./SddHub-Clyhck4C.js`).then(e=>({default:e.SddHub})),__vite__mapDeps([54,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,30,47,55]))),gh=(0,X.lazy)(()=>V(()=>import(`./SessionsDashboard-CxYr2UKF.js`).then(e=>({default:e.SessionsDashboard})),__vite__mapDeps([56,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,57,44,27,38,45]))),_h=(0,X.lazy)(()=>V(()=>import(`./SessionInspectView-DSWNlpTz.js`).then(e=>({default:e.SessionInspectView})),__vite__mapDeps([58,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,57,44,27,38,45]))),vh=(0,X.lazy)(()=>V(()=>import(`./SkillDetailView-wNORS-Dz.js`).then(e=>({default:e.SkillDetailView})),__vite__mapDeps([59,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,33]))),yh=(0,X.lazy)(()=>V(()=>import(`./TechStackView-Cl9lrcap.js`).then(e=>({default:e.TechStackView})),__vite__mapDeps([60,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,21,19,0,8,20,22,23,38,45]))),bh=(0,X.lazy)(()=>V(()=>import(`./DeadCodeScanPanel-Dp6vW6pV.js`).then(e=>({default:e.DeadCodeScanPanel})),__vite__mapDeps([61,1,2,3,4,5,6,10,11,12,13,14,15,16,17])));function xh({sessionId:e,desktopShell:t}){let{t:n}=R(),{currentView:r,terminalOpen:i,setTerminalOpen:a}=K(je(e=>({currentView:e.currentView,terminalOpen:e.terminalOpen,setTerminalOpen:e.setTerminalOpen})));return(0,Z.jsxs)(Z.Fragment,{children:[r===`chat`&&(0,Z.jsxs)(Z.Fragment,{children:[e&&(0,Z.jsx)(`div`,{className:`ws-workspace-dock-wrap shrink-0 px-3 pt-2 sm:px-4`,children:(0,Z.jsx)(El,{})}),(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.chat`),children:(0,Z.jsx)(Qd,{})})]}),r===`settings`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.settings`),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)($m,{})})}),r===`memory`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sageMemory`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.sageMemory`)})}),children:(0,Z.jsx)(ph,{})})}),r===`roster`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.agentRoster`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.agentRoster`)})}),children:(0,Z.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Z.jsx)(th,{})})})}),r===`context`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.contextDashboard`),children:(0,Z.jsx)(yf,{})}),r===`setup`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.setup`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(Sh,{})})})}),r===`goal`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.goal`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(ch,{onClose:()=>q(`chat`)})})})}),r===`sddhub`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sddHub`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(hh,{})})})}),r===`kanban`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.kanban`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(lh,{onClose:()=>q(`chat`)})})})}),r===`sessions`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sessions`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(gh,{})})})}),r===`session-inspect`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sessionInspect`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.sessionInspect`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(_h,{})})})}),r===`chronicle`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.chronicle`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(rh,{})})})}),r===`intake`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.requirementsIntake`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(mh,{})})})}),r===`debug`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.debugDashboard`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(oh,{})})})}),r===`refresh-debug`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.refreshDebug`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(fh,{})})})}),r===`files`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.editor`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.editor`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(ih,{})})})}),r===`changes`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.changes`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.changes`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(nh,{className:`h-full min-h-0`})})})}),r===`mailbox`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.mailbox`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(uh,{className:`h-full min-h-0`})})})}),r===`design-gallery`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.designGallery`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(sh,{className:`h-full`})})})}),r===`skill`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.skill`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(vh,{className:`h-full`})})})}),r===`officemap`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.officeMap`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.officeMap`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(dh,{})})})}),r===`analytics`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.analytics`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(eh,{})})})}),r===`codemap`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.codemap`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.codemap`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(ah,{})})})}),r===`techstack`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.techstack`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.techstack`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(yh,{})})})}),r===`deadcode`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.deadcode`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.deadcode`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-y-auto`,children:(0,Z.jsx)(bh,{})})})}),i&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.terminal`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.terminal`)})}),children:(0,Z.jsx)(Ch,{desktopShell:t,onClose:()=>a(!1)})})})]})}var Sh=(0,X.lazy)(()=>V(()=>import(`./SetupScreen-DdDQeLsL.js`).then(e=>({default:e.SetupScreen})),__vite__mapDeps([62,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,45]))),Ch=(0,X.lazy)(()=>V(()=>import(`./TerminalPanel-Pq97A882.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([63,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,64,65])));(0,X.lazy)(()=>V(()=>import(`./AnalyticsDashboard-DKkhZ8uy.js`).then(e=>({default:e.AnalyticsDashboard})),__vite__mapDeps([28,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23]))),(0,X.lazy)(()=>V(()=>import(`./CodeMap-CnlnHM8P.js`).then(e=>({default:e.CodeMap})),__vite__mapDeps([40,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,20,25]))),(0,X.lazy)(()=>V(()=>import(`./ChronicleDashboard-CtkbnwnE.js`).then(e=>({default:e.ChronicleDashboard})),__vite__mapDeps([35,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8]))),(0,X.lazy)(()=>V(()=>import(`./GoalView-dj7g7W7O.js`).then(e=>({default:e.GoalView})),__vite__mapDeps([43,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,18,0,8,20,21,22,23,24,25,26,38,44,27,45]))),(0,X.lazy)(()=>V(()=>import(`./ChangesView-B5G6Yjur.js`).then(e=>({default:e.ChangesView})),__vite__mapDeps([32,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,33,34])));var wh=(0,X.lazy)(()=>V(()=>import(`./CronJobsPanel-BAtU6jjZ.js`).then(e=>({default:e.CronJobsPanel})),__vite__mapDeps([66,1,2,3,4,5,6,10,11,12,13,14,15,16,17,21,19,7,0,8,20,22,23,27])));(0,X.lazy)(()=>V(()=>import(`./CodeEditor-Cnn5KXCJ.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([36,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,20,21,19,22,23,24,33,34,37,38,39]))),(0,X.lazy)(()=>V(()=>import(`./DebugDashboard-oHU64ZqM.js`).then(e=>({default:e.DebugDashboard})),__vite__mapDeps([41,1,2,3,4,5,6,10,11,12,13,14,15,16,17]))),(0,X.lazy)(()=>V(()=>import(`./DesignGalleryView-DKUP0p_v.js`).then(e=>({default:e.DesignGalleryView})),__vite__mapDeps([42,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26]))),(0,X.lazy)(()=>V(()=>import(`./MailboxDetailView-C02ZH9l0.js`).then(e=>({default:e.MailboxDetailView})),__vite__mapDeps([48,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,22,23,24,33]))),(0,X.lazy)(()=>V(()=>import(`./SageTabs-DSExPkoe.js`).then(e=>({default:e.SageTabs})),__vite__mapDeps([52,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7]))),(0,X.lazy)(()=>V(()=>import(`./AgentRosterView-w4W3kv5U.js`).then(e=>({default:e.AgentRosterView})),__vite__mapDeps([29,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,0,8,21,20,22,23,24,26,30,18,25,31]))),(0,X.lazy)(()=>V(()=>import(`./KanbanView-B26rNiBN.js`).then(e=>({default:e.KanbanView})),__vite__mapDeps([46,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,27,30,18,24,25,26,47]))),(0,X.lazy)(()=>V(()=>import(`./OfficeMapPanel-Bzrrn7kn.js`).then(e=>({default:e.OfficeMapPanel})),__vite__mapDeps([49,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,50])));var Th=(0,X.lazy)(()=>V(()=>import(`./ProcessMonitor-SLnEEbRY.js`).then(e=>({default:e.ProcessMonitor})),__vite__mapDeps([9,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27]))),Eh=(0,X.lazy)(()=>V(()=>import(`./QueuePanel-BszNSrlq.js`).then(e=>({default:e.QueuePanel})),__vite__mapDeps([67,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,21,0,8,20,22,23,27])));(0,X.lazy)(()=>V(()=>import(`./RefreshDebugView-DA6cPIhw.js`).then(e=>({default:e.RefreshDebugView})),__vite__mapDeps([51,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,8,23]))),(0,X.lazy)(()=>V(()=>import(`./SddHub-Clyhck4C.js`).then(e=>({default:e.SddHub})),__vite__mapDeps([54,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,30,47,55]))),(0,X.lazy)(()=>V(()=>import(`./SessionsDashboard-CxYr2UKF.js`).then(e=>({default:e.SessionsDashboard})),__vite__mapDeps([56,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,57,44,27,38,45]))),(0,X.lazy)(()=>V(()=>import(`./SetupScreen-DdDQeLsL.js`).then(e=>({default:e.SetupScreen})),__vite__mapDeps([62,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,45]))),(0,X.lazy)(()=>V(()=>import(`./SkillDetailView-wNORS-Dz.js`).then(e=>({default:e.SkillDetailView})),__vite__mapDeps([59,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,33]))),(0,X.lazy)(()=>V(()=>import(`./SpecsView-Do8eQuTN.js`).then(e=>({default:e.SpecsView})),__vite__mapDeps([55,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,38]))),(0,X.lazy)(()=>V(()=>import(`./TechStackView-Cl9lrcap.js`).then(e=>({default:e.TechStackView})),__vite__mapDeps([60,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,21,19,0,8,20,22,23,38,45]))),(0,X.lazy)(()=>V(()=>import(`./TerminalPanel-Pq97A882.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([63,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,64,65])));function Dh(){let{t:e}=R(),{theme:t}=Ga(),n=Br(),{currentView:i,sidebarOpen:a,toggleSidebar:o,setSearchOpen:s,setSidebarOpen:c,setInspectorTab:l,setPaletteOpen:u,setShortcutsOpen:d,setModelSwitcherOpen:f,setPromptLibraryOpen:p,toggleInspector:m,setFleetMonitorOpen:h,setAgentsMonitorOpen:g,processMonitorOpen:_,setProcessMonitorOpen:v,queuePanelOpen:y,setQueuePanelOpen:b,cronJobsOpen:x,setCronJobsOpen:S,setTerminalOpen:C}=K(je(e=>({currentView:e.currentView,sidebarOpen:e.sidebarOpen,toggleSidebar:e.toggleSidebar,setSearchOpen:e.setSearchOpen,setSidebarOpen:e.setSidebarOpen,setInspectorTab:e.setInspectorTab,setPaletteOpen:e.setPaletteOpen,setShortcutsOpen:e.setShortcutsOpen,setModelSwitcherOpen:e.setModelSwitcherOpen,setPromptLibraryOpen:e.setPromptLibraryOpen,toggleInspector:e.toggleInspector,setFleetMonitorOpen:e.setFleetMonitorOpen,setAgentsMonitorOpen:e.setAgentsMonitorOpen,processMonitorOpen:e.processMonitorOpen,setProcessMonitorOpen:e.setProcessMonitorOpen,queuePanelOpen:e.queuePanelOpen,setQueuePanelOpen:e.setQueuePanelOpen,cronJobsOpen:e.cronJobsOpen,setCronJobsOpen:e.setCronJobsOpen,setTerminalOpen:e.setTerminalOpen}))),w=r(e=>e.isLoading),T=W(e=>e.iteration),E=W(e=>e.projectName),D=W(e=>e.session?.title),O=W(e=>e.session?.id),k=K(e=>O?e.sessionNicknames[O]:void 0),A=K(e=>e.sideContextBreakdownOpen),j=K(e=>e.setSideContextBreakdownOpen);ti(e=>e.agents),Ba({setPaletteOpen:u,setSearchOpen:s,setShortcutsOpen:d,setModelSwitcherOpen:f,setPromptLibraryOpen:p,setFleetMonitorOpen:h,setAgentsMonitorOpen:g,setProcessMonitorOpen:v,setQueuePanelOpen:b,setCronJobsOpen:S,setTerminalOpen:C}),(0,X.useEffect)(()=>{typeof window>`u`||(window.location.pathname===`/debug`?Oi(`debug`):window.location.pathname===`/analytics`?Oi(`analytics`):window.location.pathname===`/refresh-debug`&&Oi(`refresh-debug`))},[]),(0,X.useEffect)(()=>{let e=e=>{let{filePath:t}=e.detail,n=H(G.getState().wsUrl);n&&n.send({type:`files.read`,payload:{filePath:t}})};return window.addEventListener(`wrongstack:open-file`,e),()=>window.removeEventListener(`wrongstack:open-file`,e)},[]),(0,X.useEffect)(()=>{let e=e=>{let{filePath:t}=e.detail,n=ui.getState().openFiles.find(e=>e.path===t);if(!n)return;let r=H(G.getState().wsUrl);r&&r.send({type:`files.write`,payload:{filePath:t,content:n.content}})};return window.addEventListener(`wrongstack:save-file`,e),()=>window.removeEventListener(`wrongstack:save-file`,e)},[]);let{isMobile:ee}=Lr();(0,X.useEffect)(()=>{ee&&K.getState().sidebarOpen&&c(!1)},[ee,c]);let M=ee&&a;return Fr(),Va(),(0,X.useEffect)(()=>{let e=[];if(w){let t=T?` iter ${T.index}${T.max?`/${T.max}`:``}`:``;e.push(`●${t}`)}let t=k?.trim()||D?.trim(),n=E?.trim();t&&e.push(t),n&&e.push(n),e.length===0&&e.push(n||`AI Agent`);let r=e.filter(Boolean).join(` · `);return document.title=r,()=>{document.title=E||`AI Agent`}},[w,T,E,D,k]),Ha({toggleSidebar:o,setSearchOpen:s,toggleInspector:m,setInspectorTab:l}),(0,Z.jsxs)(`div`,{"data-shell":n?`desktop`:`browser`,className:U(`ws-app-root flex min-h-0 min-w-0 overflow-hidden`,n&&`ws-desktop-shell`,t),children:[(0,Z.jsx)(`a`,{href:`#main-content`,className:`sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-[100] focus:rounded-md focus:bg-background focus:px-3 focus:py-1.5 focus:text-sm focus:font-medium focus:shadow-lg focus:ring-2 focus:ring-primary`,children:e(`activity:app.skipToContent`)}),i!==`setup`&&(0,Z.jsx)(Ta,{desktopShell:n}),a&&i!==`setup`&&(0,Z.jsx)(Wc,{desktopShell:n}),(0,Z.jsxs)(`main`,{id:`main-content`,className:`flex-1 min-w-0 min-h-0 flex flex-col overflow-hidden bg-background/70`,...M?{inert:!0}:{},children:[i!==`setup`&&(0,Z.jsx)(fs,{currentView:i,projectName:E,sessionLabel:k||D||O||void 0,isLoading:w,iteration:T??null,onPalette:()=>u(!0),onSearch:()=>s(!0),onModel:()=>f(!0),onSettings:()=>ki(`settings`)}),i!==`setup`&&(0,Z.jsx)(Cs,{}),i!==`setup`&&(0,Z.jsx)(ws,{}),(0,Z.jsx)(xh,{sessionId:O??null,desktopShell:n})]}),i!==`setup`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.inspector`),children:(0,Z.jsx)(as,{})}),O&&i===`chat`&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.workspaceInspector`),children:(0,Z.jsx)(Ol,{sessionId:O})})]}),_&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.processMonitor`),children:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Th,{open:_,onClose:()=>v(!1)})})}),y&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.queue`),children:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Eh,{open:y,onClose:()=>b(!1)})})}),x&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.cronJobs`),children:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(wh,{open:x,onClose:()=>S(!1)})})}),(0,Z.jsx)(Ns,{}),A&&(0,Z.jsx)(Ds,{open:A,onClose:()=>j(!1)}),(0,Z.jsx)(Ss,{}),(0,Z.jsx)(Ui,{}),(0,Z.jsx)(Bi,{}),(0,Z.jsx)(Ra,{}),(0,Z.jsx)(zs,{}),(0,Z.jsx)(Fs,{}),(0,Z.jsx)(Is,{}),(0,Z.jsx)(ji,{})]})}function Oh(){return(0,Z.jsx)(ks,{children:(0,Z.jsx)(Wa,{defaultTheme:`system`,children:(0,Z.jsx)(Dh,{})})})}Ji.createRoot(t(document.getElementById(`root`))).render((0,Z.jsx)(X.StrictMode,{children:(0,Z.jsx)(Oh,{})}));export{Ya as C,qa as D,Za as E,Ga as O,Po as S,Xa as T,Js as _,pp as a,Ko as b,$d as c,Yu as d,qu as f,Zs as g,hl as h,yp as i,Ed as l,yl as m,bp as n,Xf as o,xl as p,xp as r,Kf as s,Sp as t,Zu as u,_s as v,Qa as w,Go as x,hs as y};
|
|
133
|
+
AWS_REGION=us-east-1`})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:a(`settings:mcp.fieldDescription`)}),(0,Z.jsx)(Ri,{value:u,onChange:e=>d(e.target.value),placeholder:a(`settings:mcp.fieldDescriptionPlaceholder`)})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,id:`server-enabled`,checked:b,onChange:e=>x(e.target.checked),className:`rounded`}),(0,Z.jsx)(`label`,{htmlFor:`server-enabled`,className:`text-sm`,children:a(`settings:mcp.enableServer`)})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,id:`server-lazy`,checked:S,onChange:e=>C(e.target.checked),className:`rounded`}),(0,Z.jsxs)(`label`,{htmlFor:`server-lazy`,className:`text-sm`,children:[a(`settings:mcp.lazyConnect`),` `,(0,Z.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:a(`settings:mcp.lazyConnectHint`)})]})]})]}),(0,Z.jsxs)(Ni,{children:[(0,Z.jsx)(Y,{variant:`outline`,onClick:()=>t(!1),children:a(`common:action.cancel`)}),(0,Z.jsx)(Y,{onClick:w,children:a(T?`settings:mcp.saveChanges`:`settings:mcp.addServer`)})]})]})})}function rp({server:e,isAdded:t,onAdd:n}){let{t:r}=R();return(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3 rounded-md border border-border/70 bg-card/70 p-3 transition-colors hover:bg-card`,children:[(0,Z.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-sm`,children:e.name}),e.badge&&(0,Z.jsx)(Xf,{variant:`secondary`,className:`text-xs shrink-0`,children:e.badge}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-xs shrink-0`,children:e.transport})]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description}),e.requiresEnvVars&&e.requiresEnvVars.length>0&&(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-warning`,children:r(`settings:mcp.requires`,{vars:e.requiresEnvVars.join(`, `)})})]}),(0,Z.jsx)(`div`,{className:`shrink-0`,children:t?(0,Z.jsxs)(Y,{variant:`ghost`,size:`sm`,disabled:!0,children:[(0,Z.jsx)(er,{className:`w-4 h-4 mr-1`}),r(`settings:mcp.added`)]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:n,children:[(0,Z.jsx)(mr,{className:`w-4 h-4 mr-1`}),r(`common:action.add`)]})})]})}function ip(){let e=zr(),{t}=R(),[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(`list`),[c,l]=(0,X.useState)(),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(),[g,_]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!e.client)return;let t=e=>{if(e.type===`mcp.list`){let t=e.payload;r(t.servers??[]),a(!1)}},n=e=>{if(e.type===`mcp.server.added`){let t=e.payload;r(e=>[...e.filter(e=>e.name!==t.server.name),t.server]),J.success(z.t(`settings:mcp.toastAdded`,{name:t.server.name}))}},i=e=>{if(e.type===`mcp.server.removed`){let t=e.payload;r(e=>e.filter(e=>e.name!==t.name)),J.success(z.t(`settings:mcp.toastRemoved`,{name:t.name}))}},o=e=>{if(e.type===`mcp.server.updated`){let t=e.payload;r(e=>e.map(e=>e.name===t.server.name?t.server:e))}},s=e=>{if(e.type===`mcp.server.discovered`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`sleeping`,tools:t.tools}:e)),_(null),J.success(z.t(`settings:mcp.toastDiscovered`,{count:t.tools.length,name:t.name}))}},c=e=>{if(e.type===`mcp.server.sleeping`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`sleeping`}:e)),_(null),J.info(z.t(`settings:mcp.toastSleeping`,{name:t.name}))}},l=e=>{if(e.type===`mcp.server.waking`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`connecting`}:e))}},u=e=>{if(e.type===`mcp.server.connected`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`connected`,pid:t.pid,error:void 0,lastError:void 0}:e)),_(null),J.success(z.t(`settings:mcp.toastConnected`,{name:t.name}))}},d=e=>{if(e.type===`mcp.server.reconnected`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`connected`,error:void 0,lastError:void 0}:e)),_(null),J.success(z.t(`settings:mcp.toastReconnected`,{name:t.name}))}},f=e=>{if(e.type===`mcp.server.disconnected`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`error`,error:t.reason,lastError:t.reason,pid:void 0}:e)),_(null),J.warn(z.t(`settings:mcp.toastDisconnected`,{name:t.name,reason:t.reason}))}},p=e=>{if(e.type===`mcp.server.error`){let t=e.payload;r(e=>e.map(e=>e.name===t.name?{...e,status:`error`,error:t.error}:e)),_(null),J.error(z.t(`settings:mcp.toastError`,{name:t.name,error:t.error}))}},m=e=>{if(e.type===`mcp.operation_result`){let t=e.payload;t.success||J.error(t.message),_(null)}},h=e.client.on(`mcp.list`,t),g=e.client.on(`mcp.server.added`,n),v=e.client.on(`mcp.server.removed`,i),y=e.client.on(`mcp.server.updated`,o),b=e.client.on(`mcp.server.discovered`,s),x=e.client.on(`mcp.server.sleeping`,c),S=e.client.on(`mcp.server.waking`,l),C=e.client.on(`mcp.server.connected`,u),w=e.client.on(`mcp.server.error`,p),T=e.client.on(`mcp.operation_result`,m),E=e.client.on(`mcp.server.reconnected`,d),D=e.client.on(`mcp.server.disconnected`,f);return a(!0),e.client?.listMcpServers(),()=>{h?.(),g?.(),v?.(),y?.(),b?.(),x?.(),S?.(),C?.(),w?.(),T?.(),E?.(),D?.()}},[e.client]);let v=(0,X.useCallback)(t=>{e.client?.addMcpServer(t)},[e]),y=(0,X.useCallback)(e=>{h(Qf(e,!1)),p(!0)},[]),b=(0,X.useCallback)(n=>{Hi({title:t(`settings:mcp.removeConfirmTitle`,{name:n}),message:t(`settings:mcp.removeConfirmBody`),confirmLabel:t(`common:action.remove`),danger:!0}).then(t=>{t&&e.client?.removeMcpServer(n)})},[e]),x=(0,X.useCallback)(e=>{l(e),h(void 0),d(!0)},[]),S=(0,X.useCallback)(t=>{e.client?.updateMcpServer(t)},[e]),C=(0,X.useCallback)(t=>{_(t),e.client?.wakeMcpServer(t)},[e]),w=(0,X.useCallback)(t=>{_(t),e.client?.sleepMcpServer(t)},[e]),T=(0,X.useCallback)(t=>{_(t),e.client?.discoverMcpServer(t)},[e]),E=(0,X.useCallback)(()=>{a(!0),e.client?.listMcpServers()},[e]),D=n.filter(e=>e.status===`connected`).length,O=n.filter(e=>e.status===`sleeping`).length,k=new Set(n.map(e=>e.name));return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Kn,{className:`h-5 w-5`})}),(0,Z.jsx)(`h2`,{className:`text-base font-semibold`,children:t(`settings:mcp.heading`)}),n.length>0&&(0,Z.jsx)(`span`,{className:`rounded-md border border-border/60 bg-muted/30 px-2 py-1 text-xs text-muted-foreground`,children:t(`settings:mcp.summary`,{connected:D,sleeping:O,total:n.length})})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:E,disabled:i,children:[i?(0,Z.jsx)(Bt,{className:`w-4 h-4 animate-spin`}):null,t(`common:action.refresh`)]}),(0,Z.jsxs)(Y,{size:`sm`,onClick:()=>{h(void 0),p(!0)},children:[(0,Z.jsx)(mr,{className:`w-4 h-4 mr-1`}),t(`settings:mcp.addCustom`)]})]})]}),(0,Z.jsxs)(Ya,{value:o,onValueChange:e=>s(e),children:[(0,Z.jsxs)(Xa,{children:[(0,Z.jsxs)(Za,{value:`recommended`,children:[(0,Z.jsx)(kr,{className:`w-3.5 h-3.5 mr-1`}),t(`settings:mcp.tabRecommended`)]}),(0,Z.jsx)(Za,{value:`list`,children:t(`settings:mcp.tabServers`)}),(0,Z.jsx)(Za,{value:`add`,children:t(`settings:mcp.tabAddCustom`)})]}),(0,Z.jsxs)(Qa,{value:`recommended`,className:`space-y-3`,children:[(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`settings:mcp.recommendedBody`)}),(0,Z.jsx)(`div`,{className:`grid gap-2`,children:Zf.map(e=>(0,Z.jsx)(rp,{server:e,isAdded:k.has(e.name),onAdd:()=>y(e)},e.name))})]}),(0,Z.jsx)(Qa,{value:`list`,className:`space-y-3`,children:i&&n.length===0?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(Bt,{className:`w-5 h-5 animate-spin mr-2`}),t(`settings:mcp.loadingServers`)]}):n.length===0?(0,Z.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(Kn,{className:`w-10 h-10 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{children:t(`settings:mcp.noServers`)}),(0,Z.jsx)(`p`,{className:`text-sm`,children:t(`settings:mcp.noServersHint`)})]}):n.map(e=>(0,Z.jsx)(tp,{server:e,onWake:()=>C(e.name),onSleep:()=>w(e.name),onDiscover:()=>T(e.name),onEdit:()=>x(e),onRemove:()=>b(e.name)},e.name))}),(0,Z.jsx)(Qa,{value:`add`,children:(0,Z.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[(0,Z.jsx)(`p`,{children:t(`settings:mcp.addCustomBody`)}),(0,Z.jsx)(`p`,{className:`mt-1`,children:t(`settings:mcp.addCustomBodyHint`)})]})})]}),(0,Z.jsx)(np,{open:f,onOpenChange:e=>{e||(p(!1),h(void 0))},prefillConfig:m,onSave:v}),(0,Z.jsx)(np,{open:u,onOpenChange:d,server:c,onSave:S})]})}function ap({syncPref:e}){let{t}=R(),n=B();return(0,Z.jsxs)(`div`,{className:`space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Kn,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:t(`settings:integrations.hqHeading`)})})]}),(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)($,{label:t(`settings:integrations.hqPublishingLabel`),hint:t(`settings:integrations.hqPublishingHint`),value:n.hqEnabled,onChange:()=>e(`hqEnabled`,!n.hqEnabled)}),(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:t(`settings:integrations.hqUrlLabel`)}),(0,Z.jsx)(Ri,{value:n.hqUrl,placeholder:t(`activity:integrationsSection.httpHost3499`),onChange:t=>e(`hqUrl`,t.target.value)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`settings:integrations.hqUrlHint`)})]}),(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:t(`settings:integrations.hqTokenLabel`)}),(0,Z.jsx)(Ri,{type:`password`,value:n.hqToken,placeholder:t(`activity:integrationsSection.clientTokenFromWstackHq`),onChange:t=>e(`hqToken`,t.target.value)})]}),(0,Z.jsx)($,{label:t(`settings:integrations.hqRawContentLabel`),hint:t(`settings:integrations.hqRawContentHint`),value:n.hqRawContent,onChange:()=>e(`hqRawContent`,!n.hqRawContent)})]})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Kn,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:t(`activity:integrationsSection.mcpServers`)})})]}),n.featureMcp?(0,Z.jsx)(ip,{}):(0,Z.jsxs)(`div`,{className:`text-center py-6 text-muted-foreground`,children:[(0,Z.jsx)(Kn,{className:`w-8 h-8 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{className:`text-sm`,children:t(`settings:mcp.disabled`)}),(0,Z.jsx)(`p`,{className:`text-xs mt-1`,children:t(`settings:integrations.disabledHint`)})]})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(dn,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:t(`settings:integrations.telegramHeading`)})})]}),n.tgConfigured?(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)($,{label:t(`settings:integrations.telegramSessionEndLabel`),hint:t(`settings:integrations.telegramSessionEndHint`),value:n.tgSessionEnd,onChange:()=>e(`tgSessionEnd`,!n.tgSessionEnd)}),(0,Z.jsx)($,{label:t(`settings:integrations.telegramDelegateLabel`),hint:t(`settings:integrations.telegramDelegateHint`),value:n.tgDelegate,onChange:()=>e(`tgDelegate`,!n.tgDelegate)}),(0,Z.jsx)($,{label:t(`settings:integrations.telegramLongToolLabel`),hint:t(`settings:integrations.telegramLongToolHint`,{ms:n.tgLongToolMs}),value:n.tgLongToolMs>0,onChange:()=>e(`tgLongToolMs`,n.tgLongToolMs>0?0:3e4)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`settings:integrations.telegramChangesApply`)})]}):(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`settings:integrations.telegramNotConfigured`)})]})]})}function op({provider:e,catalogModels:t,currentCatalogProvider:n,isLoadingModels:r,isSwitching:i,setIsLoadingModels:a,onModelSelect:o,refreshModels:s}){let c=G(e=>e.model),{t:l}=R();return(0,Z.jsx)(`div`,{className:`space-y-4`,children:e?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium`,children:n?.name||e}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e})]}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:()=>{a(!0),s(e)},children:(0,Z.jsx)(lr,{className:U(`h-4 w-4`,r&&`animate-spin`)})})]}),r&&!t[e]?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8`,children:[(0,Z.jsx)(Bt,{className:`h-6 w-6 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:l(`settings:model.loading`)})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Cf,{options:(t[e]||[]).map(e=>({id:e.id,label:e.name||e.id,badges:e.capabilities,detail:[e.contextWindow?`${Math.round(e.contextWindow/1e3)}k`:``,e.inputCost==null?``:`${e.inputCost}/${e.outputCost}`].filter(Boolean).join(` · `),detailHighlight:!0})),selectedId:c,onSelect:o,disabled:i,emptyMessage:l(`settings:model.notFound`)}),i?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`settings:toast.switching`)}):null]})]}):(0,Z.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(vr,{className:`h-8 w-8 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{children:l(`settings:model.selectProviderFirst`)})]})})}var sp=Object.freeze([{name:`wstack-prompts`,risk:`medium`,summary:`Prompt library and prompt authoring commands.`,defaultState:`active`,canDisable:!0},{name:`wstack-sync`,risk:`medium`,summary:`Cloud sync commands for prompts, skills, settings, memory, and history.`,defaultState:`active`,canDisable:!0},{name:`wstack-cloud-config-sync`,risk:`medium`,summary:`my.wrongstack.com config synchronization over the namespaced sync API.`,defaultState:`active`,canDisable:!0},{name:`wstack-chimera`,risk:`medium`,summary:`Spawns a post-session code review subagent when explicitly enabled.`,defaultState:`inactive`,canDisable:!0},{name:`wstack-auto-review`,risk:`medium`,summary:`Tracks changed files and requests bounded mid-session Chimera reviews.`,defaultState:`inactive`,canDisable:!0},{name:`wstack-skills`,risk:`medium`,summary:`Skill library, authoring, install, update, and uninstall commands.`,defaultState:`active`,canDisable:!0},{name:`@wrongstack/plug-lsp`,risk:`medium`,summary:`Language Server Protocol tools and slash commands.`,defaultState:`inactive`,canDisable:!0},{name:`telegram`,risk:`medium`,summary:`Telegram bridge for messages, approvals, and notifications.`,defaultState:`inactive`,canDisable:!0},{name:`agent-handoff`,risk:`medium`,summary:`Listens for subagent.done events and posts structured handoff notes to the project mailbox`,defaultState:`inactive`,canDisable:!0},{name:`cost-tracker`,risk:`low`,summary:`Tracks LLM token usage and estimated cost per session with per-model breakdown`,defaultState:`active`,canDisable:!0},{name:`file-watcher`,risk:`medium`,summary:`Watches project files and emits events when changes occur (add, change, delete)`,defaultState:`inactive`,canDisable:!0},{name:`git-autocommit`,risk:`high`,summary:`AI-powered git staging and conventional commit message generation`,defaultState:`inactive`,canDisable:!0},{name:`auto-doc`,risk:`medium`,summary:`Auto-generates JSDoc/TSDoc comments for functions, classes, types, and interfaces`,defaultState:`inactive`,canDisable:!0},{name:`shell-check`,risk:`low`,summary:`Runs shellcheck analysis on bash/shell scripts and surfaces issues with severity levels`,defaultState:`inactive`,canDisable:!0},{name:`cron`,risk:`medium`,summary:`Schedules recurring tasks using beforeIteration/afterIteration extension hooks`,defaultState:`inactive`,canDisable:!0},{name:`template-engine`,risk:`medium`,summary:`Expands file templates with variable substitution, conditionals, and loops`,defaultState:`inactive`,canDisable:!0},{name:`semver-bump`,risk:`high`,summary:`Conventional-commit-driven semver version bumps with changelog generation`,defaultState:`inactive`,canDisable:!0},{name:`secret-scanner`,risk:`high`,summary:`Pre-tool hook that blocks (or optionally redacts) tools whose arguments contain plaintext credentials`,defaultState:`active`,canDisable:!0},{name:`todo-tracker`,risk:`low`,summary:`Persistent, project-scoped todo backlog that survives across sessions`,defaultState:`active`,canDisable:!0},{name:`token-budget`,risk:`medium`,summary:`Enforces a per-session token budget — warns at a threshold and stops the agent loop when the limit is hit`,defaultState:`active`,canDisable:!0},{name:`lint-gate`,risk:`medium`,summary:`Pre-tool hook that runs biome/eslint on would-be file content before write or edit commits`,defaultState:`inactive`,canDisable:!0},{name:`branch-guard`,risk:`high`,summary:`Pre-tool hook that blocks commits, pushes, and merges to protected branches (default: main, master)`,defaultState:`inactive`,canDisable:!0},{name:`diff-summary`,risk:`low`,summary:`PostToolUse hook that injects a compact git diff into the LLM context after every write or edit`,defaultState:`active`,canDisable:!0},{name:`commit-validator`,risk:`medium`,summary:`PreToolUse hook that validates conventional-commit format before git_autocommit or bash git commit runs`,defaultState:`inactive`,canDisable:!0},{name:`format-on-save`,risk:`medium`,summary:`PostToolUse hook that runs biome format --write on the file after every write or edit`,defaultState:`inactive`,canDisable:!0},{name:`test-runner-gate`,risk:`medium`,summary:`PostToolUse hook that runs the relevant test file after every write or edit to a source file`,defaultState:`inactive`,canDisable:!0},{name:`import-organizer`,risk:`medium`,summary:`PostToolUse hook that re-sorts and de-duplicates imports in a file after every write or edit`,defaultState:`inactive`,canDisable:!0},{name:`knowledge-graph`,risk:`low`,summary:`Accumulates structured (subject, relation, object) facts about the project and queries them across sessions`,defaultState:`active`,canDisable:!0},{name:`todo-listener`,risk:`low`,summary:"PostToolUse hook on `todo` tool — broadcasts a status update to the project mailbox so other agents can see what this one is working on",defaultState:`inactive`,canDisable:!0},{name:`session-recap`,risk:`low`,summary:`Stop hook that posts a one-page session summary (tokens, tools, commits, last activity) to the project mailbox`,defaultState:`inactive`,canDisable:!0},{name:`spec-linker`,risk:`low`,summary:"Markdown link auditor for plugin references. PostToolUse surfaces unlinked references; PreToolUse on `write` (autoFix) wraps them in markdown links via modifiedInput.",defaultState:`inactive`,canDisable:!0},{name:`loop-breaker`,risk:`low`,summary:`Detects runaway tool-call loops (identical repeats and A-B-A-B oscillation) — warns the model, then blocks`,defaultState:`active`,canDisable:!0},{name:`gitignore-guard`,risk:`low`,summary:`PostToolUse hook that suggests or appends .gitignore entries for build-artifact-looking files after every write or edit`,defaultState:`inactive`,canDisable:!0},{name:`path-guard`,risk:`medium`,summary:`Blocks or warns about writes, edits, and destructive shell commands touching protected paths (lockfiles, .env, .git, migrations)`,defaultState:`inactive`,canDisable:!0},{name:`process-guard`,risk:`high`,summary:`Blocks kill commands (taskkill, Stop-Process, kill, pkill, wmic) that target active WrongStack processes or their host terminals.`,defaultState:`active`,canDisable:!0},{name:`context-pins`,risk:`low`,summary:`Pin durable facts into the system prompt (pin_add/pin_remove/pin_list) — pins survive compaction and persist across sessions`,defaultState:`active`,canDisable:!0},{name:`checkpoint`,risk:`medium`,summary:`In-session file snapshots: auto-captures content before every write/edit and restores any pre-edit state on demand`,defaultState:`inactive`,canDisable:!0},{name:`error-lens`,risk:`low`,summary:`Distills failed command output into a compact digest (error line + project stack frames) and flags repeated failures`,defaultState:`active`,canDisable:!0},{name:`dep-guard`,risk:`medium`,summary:`Supervises dependency installs: blocks deny-listed packages, flags typosquat lookalikes, and optionally warns on unpinned versions`,defaultState:`active`,canDisable:!0},{name:`config-validator`,risk:`low`,summary:`Validates JSON/JSONC/YAML/TOML files right after write/edit and reports syntax problems in the same turn`,defaultState:`active`,canDisable:!0},{name:`notify-hub`,risk:`medium`,summary:`POSTs session events (stop, tool errors, budget thresholds) and ad-hoc notify_send messages to a configurable webhook`,defaultState:`inactive`,canDisable:!0},{name:`changelog-writer`,risk:`low`,summary:`Collects session work (commits, edits, manual notes) and writes Keep-a-Changelog entries under [Unreleased] on demand`,defaultState:`inactive`,canDisable:!0},{name:`injection-shield`,risk:`low`,summary:`Scans tool output (fetched pages, files) for prompt-injection patterns and warns the model that content is data, not instructions`,defaultState:`active`,canDisable:!0},{name:`llm-cache`,risk:`medium`,summary:`Caches identical provider requests and short-circuits the provider call on a hit (wrapProviderRunner). Opt-in; deterministic-only by default.`,defaultState:`inactive`,canDisable:!0},{name:`model-router`,risk:`medium`,summary:`Routes each provider call to a different model by declarative size/tool rules (wrapProviderRunner). Opt-in; dry-run by default; routes within the active provider only.`,defaultState:`inactive`,canDisable:!0},{name:`pr-drafter`,risk:`low`,summary:`Collects session work (commits, edited files, diff) and drafts a pull-request description`,defaultState:`inactive`,canDisable:!0},{name:`prompt-firewall`,risk:`high`,summary:`Scans the provider wire for credential leaks before context reaches the LLM API (wrapProviderRunner); redact/warn/block. Opt-in; redact by default.`,defaultState:`inactive`,canDisable:!0},{name:`auto-escalate`,risk:`medium`,summary:`On retryable provider errors, retries the turn with the next model in an escalation ladder (onError). Opt-in; defers to default recovery otherwise.`,defaultState:`inactive`,canDisable:!0},{name:`test-coverage-gate`,risk:`medium`,summary:`PostToolUse hook that detects test coverage regressions after source-file edits`,defaultState:`inactive`,canDisable:!0},{name:`type-gate`,risk:`medium`,summary:`PostToolUse hook that runs TypeScript type-checking after every write or edit to a source file`,defaultState:`inactive`,canDisable:!0},{name:`token-throttle`,risk:`medium`,summary:`Rolling-window tokens/min budget that delays provider calls to stay under a rate limit (wrapProviderRunner). Opt-in; delay capped by maxDelayMs.`,defaultState:`inactive`,canDisable:!0},{name:`plugin-stack-observer`,risk:`low`,summary:`Observes the wrapProviderRunner stack and exposes it to operators (plugin_stack_status) and, optionally, to the LLM (system-prompt contributor).`,defaultState:`inactive`,canDisable:!0},{name:`dependency-vulnerability-gate`,risk:`high`,summary:`PostToolUse hook that runs npm/pnpm audit after dependency installs and blocks or warns on vulnerabilities above a severity threshold`,defaultState:`inactive`,canDisable:!0},{name:`migration-planner`,risk:`low`,summary:`Builds evidence-backed migration checklists with optional Council-reviewed risk analysis`,defaultState:`inactive`,canDisable:!0},{name:`semantic-search-indexer`,risk:`low`,summary:`Builds an in-memory keyword index over project source files and answers ranked search queries`,defaultState:`inactive`,canDisable:!0},{name:`auto-i18n-extractor`,risk:`low`,summary:`Detects hardcoded user-facing strings in UI source files and suggests translation keys`,defaultState:`inactive`,canDisable:!0},{name:`doc-sync-guard`,risk:`low`,summary:`PostToolUse hook that tracks changed public source files and warns when README/docs edits omit them`,defaultState:`inactive`,canDisable:!0},{name:`api-compatibility-gate`,risk:`medium`,summary:`PostToolUse hook that detects breaking API changes (removed exports) in entry-point files after writes or edits`,defaultState:`inactive`,canDisable:!0},{name:`performance-regression-gate`,risk:`medium`,summary:`Compares benchmark results to detect performance regressions and reports metrics that increased beyond the configured threshold`,defaultState:`inactive`,canDisable:!0},{name:`test-flake-detector`,risk:`medium`,summary:`Runs a test command multiple times and reports tests that fail non-deterministically`,defaultState:`inactive`,canDisable:!0},{name:`schema-evolution-guard`,risk:`high`,summary:`PostToolUse hook that guards database/API schema changes by detecting destructive patterns in schema files`,defaultState:`inactive`,canDisable:!0},{name:`license-audit-gate`,risk:`high`,summary:`PostToolUse hook that audits dependency licenses after package-manager install/add commands and blocks disallowed licenses`,defaultState:`inactive`,canDisable:!0},{name:`accessibility-auditor`,risk:`medium`,summary:`Audits .tsx/.jsx/.html/.vue files for common accessibility issues and reports findings after writes/edits`,defaultState:`inactive`,canDisable:!0},{name:`security-hotspot-scanner`,risk:`high`,summary:`Scans source code for security anti-patterns and warns after writes/edits that introduce new hotspots`,defaultState:`inactive`,canDisable:!0},{name:`dead-code-detector`,risk:`low`,summary:`Lightweight regex-based scan for exported identifiers that appear unused anywhere in the project`,defaultState:`inactive`,canDisable:!0},{name:`duplicate-code-detector`,risk:`low`,summary:`Finds duplicated code blocks across source files using normalized-line fingerprinting`,defaultState:`inactive`,canDisable:!0},{name:`code-metrics`,risk:`low`,summary:`Computes per-file line counts, function counts, and cyclomatic-complexity-like scores`,defaultState:`inactive`,canDisable:!0},{name:`refactor-suggester`,risk:`low`,summary:`Suggests refactoring opportunities using regex-based smell detection`,defaultState:`inactive`,canDisable:!0},{name:`test-generator`,risk:`low`,summary:`Generates framework-correct test skeletons with optional host-routed LLM test authoring`,defaultState:`inactive`,canDisable:!0},{name:`release-notes-generator`,risk:`low`,summary:`Generates traceable release notes from conventional commits with optional LLM polishing`,defaultState:`inactive`,canDisable:!0},{name:`smart-rename`,risk:`medium`,summary:`Whole-word identifier rename inside a single source file`,defaultState:`inactive`,canDisable:!0},{name:`feature-flag-tracker`,risk:`low`,summary:`Scans source files for feature-flag-like expressions and reports usages`,defaultState:`inactive`,canDisable:!0},{name:`interface-contract-guard`,risk:`medium`,summary:`Checks TypeScript interfaces for visible implementers and warns about contract drift`,defaultState:`inactive`,canDisable:!0}]),cp={"wstack-chimera":`settings:context.pluginChimera`,"wstack-skills":`settings:context.pluginSkills`,"wstack-prompts":`settings:context.pluginPrompts`,"cost-tracker":`settings:context.pluginCostTracker`,telegram:`settings:context.pluginTelegram`,"knowledge-graph":`settings:context.pluginKnowledgeGraph`,"error-lens":`settings:context.pluginErrorLens`,"todo-tracker":`settings:context.pluginTodoTracker`,"secret-scanner":`settings:context.pluginSecretScanner`,"lint-gate":`settings:context.pluginLintGate`,"diff-summary":`settings:context.pluginDiffSummary`,"dep-guard":`settings:context.pluginDepGuard`,"type-gate":`settings:context.pluginTypeGate`,"injection-shield":`settings:context.pluginInjectionShield`,"prompt-firewall":`settings:context.pluginPromptFirewall`,"token-budget":`settings:context.pluginTokenBudget`,"loop-breaker":`settings:context.pluginLoopBreaker`};function lp(e){return e.replace(/^@wrongstack\//,``).replace(/^wstack-/,``).split(`-`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}var up=[...sp].sort((e,t)=>lp(e.name).localeCompare(lp(t.name)));function dp(){let{t:e}=R(),t=B();return(0,Z.jsxs)(`div`,{className:`pt-2 border-t`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-3 mt-3 flex items-center gap-2`,children:[(0,Z.jsx)(yr,{className:`h-4 w-4 text-muted-foreground`}),e(`settings:context.pluginsPerPluginHeading`)]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mb-2`,children:e(`settings:context.pluginsPerPluginHint`)}),up.map(n=>{let r=cp[n.name],i=r?e(r):lp(n.name),a=t.pluginsEnabled?.[n.name]??n.defaultState===`active`;return(0,Z.jsx)($,{label:i,hint:n.summary,value:a,disabled:!n.canDisable,onChange:()=>{let e={...t.pluginsEnabled,[n.name]:!a};t.set({pluginsEnabled:e})}},n.name)})]})}function fp({maskedKey:e,className:t}){let{t:n}=R(),[r,i]=(0,X.useState)(!1),a=(0,X.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},[e]);return(0,Z.jsxs)(`div`,{className:U(`group flex items-center gap-1.5 rounded-md border border-border/50 bg-background/50 px-2 py-1 font-mono text-xs text-muted-foreground`,t),children:[(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate tracking-wide`,children:e}),(0,Z.jsx)(`button`,{type:`button`,onClick:a,className:`shrink-0 rounded p-0.5 text-muted-foreground/50 opacity-0 transition-all hover:text-foreground group-hover:opacity-100 focus:opacity-100`,title:r?`Copied`:`Copy key preview`,"aria-label":n(`activity:apikeydisplay.copyApiKeyToClipboard`),children:r?(0,Z.jsx)(er,{className:`h-3 w-3 text-success`}):(0,Z.jsx)(b,{className:`h-3 w-3`})})]})}function pp(){let e=(0,X.useRef)([]);return{setFieldRef:(0,X.useCallback)(t=>n=>{e.current[t]=n},[]),handleKeyDown:(0,X.useCallback)((t,n,r)=>{if(t.key===`ArrowDown`){t.preventDefault();for(let t=n+1;t<e.current.length;t++){let n=e.current[t];if(n&&!n.hasAttribute(`disabled`)&&n.getAttribute(`aria-disabled`)!==`true`){if(n.focus(),n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement){let e=n.value.length;n.setSelectionRange(e,e)}return}}return}if(t.key===`ArrowUp`){t.preventDefault();for(let t=n-1;t>=0;t--){let n=e.current[t];if(n&&!n.hasAttribute(`disabled`)&&n.getAttribute(`aria-disabled`)!==`true`){n.focus(),(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement)&&n.setSelectionRange(n.value.length,n.value.length);return}}return}t.key===`Enter`&&r&&(t.preventDefault(),r())},[])}}var mp={openrouter:{id:`openrouter`,name:`OpenRouter (Metered)`,family:`openai-compatible`,baseUrl:`https://openrouter.ai/api/v1`,envVars:[`OPENROUTER_API_KEY`],models:[`openai/gpt-4o`,`openai/gpt-4o-mini`,`anthropic/claude-sonnet-4-20250514`,`google/gemini-2.0-flash-001`,`meta-llama/llama-4-scout`,`deepseek/deepseek-chat`],usage:`metered-api`,docsUrl:`https://openrouter.ai/docs/quickstart`,autoDiscover:!0,requestPolicy:`openrouter`,catalog:{description:`All models via one key`,icon:`🔀`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`sk-or-...`}},"kimi-for-coding":{id:`kimi-for-coding`,name:`Kimi Code (Subscription)`,family:`openai-compatible`,baseUrl:`https://api.kimi.com/coding/v1`,envVars:[`KIMI_API_KEY`],models:[`kimi-for-coding`,`kimi-for-coding-highspeed`],quirks:{thinkingParam:`kimi-toggle`},usage:`subscription-interactive`,docsUrl:`https://www.kimi.com/code/docs/en/third-party-tools/other-coding-agents.html`,requestPolicy:`kimi`,catalog:{description:`Personal interactive coding with the Kimi Code subscription key. Generate the API key at kimi.com/code/console.`,icon:`🌙`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`sk-...`}},moonshotai:{id:`moonshotai`,name:`Moonshot Platform (Metered)`,family:`openai-compatible`,baseUrl:`https://api.moonshot.ai/v1`,envVars:[`MOONSHOT_API_KEY`],models:[`kimi-k2.7-code`,`kimi-k2.7-code-highspeed`],quirks:{thinkingParam:`always-on`},usage:`metered-api`,docsUrl:`https://platform.kimi.ai/docs/api/overview`,requestPolicy:`kimi`,catalog:{description:`Metered Moonshot Platform API — pay-as-you-go for automation, background work, and commercial use.`,icon:`🌑`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`sk-...`}},"zai-coding-plan":{id:`zai-coding-plan`,name:`Z.AI Coding Plan (Subscription)`,family:`openai-compatible`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,envVars:[`ZHIPU_API_KEY`],models:[`glm-5.2`,`glm-5-turbo`,`glm-4.7`],quirks:{thinkingParam:`zai-glm`},usage:`subscription-interactive`,docsUrl:`https://docs.z.ai/devpack/quick-start`,requestPolicy:`zai`,catalog:{description:`Use your Z.AI Coding Plan subscription. Generate an API key from your Z.AI dashboard.`,icon:`🔷`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`...`}},zai:{id:`zai`,name:`Z.AI API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.z.ai/api/paas/v4`,envVars:[`ZHIPU_API_KEY`],models:[`glm-4.7`,`glm-5-turbo`,`glm-5.2`],quirks:{thinkingParam:`zai-glm`},usage:`metered-api`,docsUrl:`https://docs.z.ai/guides/overview/quick-start`,requestPolicy:`zai`,catalog:{description:`Pay-as-you-go Z.AI GLM access for automation and commercial use.`,icon:`🔷`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`...`,referral:{code:`JQZ7TPPRA6`,reward:`Limited-time deal for GLM Coding Plan subscription`,url:`https://z.ai/subscribe?ic=JQZ7TPPRA6`}}},minimax:{id:`minimax`,name:`MiniMax Token Plan (Subscription)`,family:`openai-compatible`,baseUrl:`https://api.minimax.io/v1`,envVars:[`MINIMAX_API_KEY`],models:[`MiniMax-M3`,`MiniMax-M2.7`,`MiniMax-M2.5`,`MiniMax-M2`],usage:`subscription-interactive`,docsUrl:`https://platform.minimax.io/docs/api-reference/text-chat-openai`,catalog:{description:`Subscribe to one plan and unlock frontier coding, 1M context, and native multimodality.`,icon:`🔮`,color:`from-destructive/10 to-destructive/5 border-destructive/25 hover:border-destructive/45`,keyPlaceholder:`eyJ...`,referral:{code:`JrA4R9QAEn`,reward:`Friends get 10% off + Builder benefits. Referrers earn 10% cashback + community perks.`,url:`https://platform.minimax.io/subscribe/token-plan?code=JrA4R9QAEn&source=link`}}},mistral:{id:`mistral`,name:`Mistral AI API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.mistral.ai/v1`,envVars:[`MISTRAL_API_KEY`],models:[`mistral-large-latest`,`codestral-latest`,`ministral-8b-latest`],usage:`metered-api`,docsUrl:`https://docs.mistral.ai/`,catalog:{description:`Mistral Large, Codestral, and Ministral — open-weight frontier models.`,icon:`🌬️`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`Vz8d...`}},deepseek:{id:`deepseek`,name:`DeepSeek API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.deepseek.com`,envVars:[`DEEPSEEK_API_KEY`],models:[`deepseek-v4-flash`,`deepseek-v4-pro`],usage:`metered-api`,docsUrl:`https://api-docs.deepseek.com/`,requestPolicy:`deepseek`,catalog:{description:`High-performance reasoning at low cost`,icon:`🐋`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`sk-...`}},groq:{id:`groq`,name:`GroqCloud (Metered)`,family:`openai-compatible`,baseUrl:`https://api.groq.com/openai/v1`,envVars:[`GROQ_API_KEY`],models:[`llama-3.3-70b-versatile`,`llama-3.1-8b-instant`,`mixtral-8x7b-32768`,`gemma2-9b-it`],usage:`metered-api`,docsUrl:`https://console.groq.com/docs/api-reference`,requestPolicy:`groq`,catalog:{description:`Ultra-fast inference via LPU hardware — Llama, Mixtral, Gemma, and Qwen models.`,icon:`⚡`,color:`from-warning/12 to-warning/5 border-warning/30 hover:border-warning/50`,keyPlaceholder:`gsk_...`}},perplexity:{id:`perplexity`,name:`Perplexity Sonar API (Metered)`,family:`openai-compatible`,baseUrl:`https://api.perplexity.ai`,envVars:[`PERPLEXITY_API_KEY`],models:[`sonar-pro`,`sonar`,`sonar-reasoning-pro`,`sonar-reasoning`],usage:`metered-api`,docsUrl:`https://docs.perplexity.ai/`,requestPolicy:`perplexity`,catalog:{description:`Web-augmented chat models with built-in search and citations.`,icon:`🔍`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`pplx-...`}},"alibaba-token-plan":{id:`alibaba-token-plan`,name:`Alibaba Token Plan (Personal Edition)`,family:`openai-compatible`,baseUrl:`https://dashscope.aliyuncs.com/compatible-mode/v1`,envVars:[`ALIBABA_API_KEY`,`DASHSCOPE_API_KEY`],models:[`qwen3.8-max-preview`,`qwen3.7-max`,`qwen3.7-plus`,`qwen3.6-flash`,`glm-5.2`,`deepseek-v4-pro`,`wan2.7-image`,`wan2.7-image-pro`,`happyhorse-1.1-t2v`,`happyhorse-1.1-i2v`,`happyhorse-1.1-r2v`],customModels:{"qwen3.8-max-preview":{capabilities:{tools:!0,vision:!0,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"qwen3.7-max":{capabilities:{tools:!0,vision:!1,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"qwen3.7-plus":{capabilities:{tools:!0,vision:!0,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"qwen3.6-flash":{capabilities:{tools:!0,vision:!0,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"glm-5.2":{capabilities:{tools:!0,vision:!1,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!0,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"deepseek-v4-pro":{capabilities:{tools:!0,vision:!1,reasoning:!0,streaming:!0,systemPrompt:!0,jsonMode:!1,promptCache:!0,parallelTools:!0,cacheControl:`auto`}},"wan2.7-image":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"wan2.7-image-pro":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"happyhorse-1.1-t2v":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"happyhorse-1.1-i2v":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}},"happyhorse-1.1-r2v":{capabilities:{tools:!1,vision:!0,reasoning:!1,streaming:!0,systemPrompt:!1,jsonMode:!1,promptCache:!1,parallelTools:!1,cacheControl:`none`}}},usage:`subscription-interactive`,docsUrl:`https://www.alibabacloud.com/help/en/model-studio/token-plan-personal-overview`,requestPolicy:`alibaba`,catalog:{description:`Monthly Credits subscription for Qwen, DeepSeek, GLM, Wanx image, and HappyHorse video models.`,icon:`☁️`,color:`from-warning/12 to-warning/5 border-warning/30 hover:border-warning/50`,keyPlaceholder:`sk-...`}}};Object.keys(mp);var hp=[{id:`openai`,name:`OpenAI`,family:`openai`,envVars:[`OPENAI_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://platform.openai.com/api-keys`,catalog:{description:`GPT, o-series, and Codex models`,icon:`🤖`,color:`from-success/12 to-success/5 border-success/30 hover:border-success/50`,keyPlaceholder:`sk-...`}},{id:`anthropic`,name:`Anthropic`,family:`anthropic`,envVars:[`ANTHROPIC_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://console.anthropic.com/settings/keys`,catalog:{description:`Claude model access`,icon:`🧠`,color:`from-warning/12 to-warning/5 border-warning/30 hover:border-warning/50`,keyPlaceholder:`sk-ant-...`}},{id:`google`,name:`Google`,family:`google`,envVars:[`GOOGLE_GENERATIVE_AI_API_KEY`,`GEMINI_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://aistudio.google.com/apikey`,catalog:{description:`Gemini Pro, Flash, and Nano`,icon:`✨`,color:`from-info/12 to-info/5 border-info/30 hover:border-info/50`,keyPlaceholder:`AIza...`}},{id:`openai-codex`,name:`OpenAI Codex OAuth`,family:`openai-codex`,envVars:[],models:[],usage:`subscription-interactive`,docsUrl:`https://developers.openai.com/codex/`},{id:`anthropic-oauth`,name:`Anthropic OAuth`,family:`anthropic-oauth`,envVars:[],models:[],usage:`subscription-interactive`,docsUrl:`https://docs.anthropic.com/`},{id:`github-copilot`,name:`GitHub Copilot`,family:`github-copilot`,envVars:[],models:[],usage:`subscription-interactive`,docsUrl:`https://docs.github.com/en/copilot`},{id:`opencode-go`,name:`OpenCode Go`,family:`openai-compatible`,baseUrl:`https://opencode.ai/zen/go/v1`,envVars:[`OPENCODE_API_KEY`],models:[],usage:`subscription-interactive`,docsUrl:`https://opencode.ai/go?ref=6VZAER87H4`,catalog:{description:`Global hosted API for 75+ LLM providers — stable access from US, EU, and Singapore`,icon:`🌍`,color:`from-success/12 to-success/5 border-success/30 hover:border-success/50`,keyPlaceholder:`oc-...`,referral:{code:`6VZAER87H4`,reward:`Support the project by signing up with this referral link`,url:`https://opencode.ai/go?ref=6VZAER87H4`}}},{id:`xai`,name:`xAI`,family:`openai-compatible`,baseUrl:`https://api.x.ai/v1`,envVars:[`XAI_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://docs.x.ai/`,requestPolicy:`xai`},{id:`ai-gateway`,name:`Vercel AI Gateway`,family:`openai-compatible`,baseUrl:`https://ai-gateway.vercel.sh/v1`,discoveryOnlyBaseUrl:!0,envVars:[`AI_GATEWAY_API_KEY`],models:[],usage:`metered-api`,docsUrl:`https://vercel.com/docs/ai-gateway`,autoDiscover:!0,catalog:{description:`Every model behind one key — routed by Vercel AI Gateway`,icon:`▲`,color:`from-primary/12 to-primary/5 border-primary/30 hover:border-primary/50`,keyPlaceholder:`vck_...`}}],gp=[{id:`omniroute`,name:`OmniRoute`,family:`openai-compatible`,baseUrl:`http://localhost:20128/v1`,envVars:[],models:[],usage:`local`,quirks:{stripThinkTags:!0},autoDiscover:!0,local:{noAuth:!0,hint:`WrongStack local gateway · port 20128 · no key · auto-discovers models`}},{id:`ollama`,name:`Ollama`,family:`openai-compatible`,baseUrl:`http://localhost:11434/v1`,envVars:[],models:[],usage:`local`,docsUrl:`https://ollama.com`,local:{noAuth:!0,hint:`ollama.com · port 11434 · no key`}},{id:`vllm`,name:`vLLM`,family:`openai-compatible`,baseUrl:`http://localhost:8000/v1`,envVars:[],models:[],usage:`local`,docsUrl:`https://docs.vllm.ai`,local:{noAuth:!1,hint:`docs.vllm.ai · port 8000 · optional key`}},{id:`lmstudio`,name:`LM Studio`,family:`openai-compatible`,baseUrl:`http://localhost:1234/v1`,envVars:[],models:[],usage:`local`,docsUrl:`https://lmstudio.ai`,local:{noAuth:!1,hint:`lmstudio.ai · port 1234 · optional key`}}],_p=Object.fromEntries([...hp,...Object.values(mp),...gp].map(e=>[e.id,e]));function vp(){return gp.map(e=>{if(!e.baseUrl||!e.local)throw Error(`Local provider definition is incomplete: ${e.id}`);return{id:e.id,label:e.name,defaultBaseUrl:e.baseUrl,noAuth:e.local.noAuth,hint:e.local.hint}})}function yp(){return Object.values(_p).filter(e=>e.catalog!==void 0).map(e=>({id:e.id,name:e.name,family:e.family,description:e.catalog.description,icon:e.catalog.icon,color:e.catalog.color,keyPlaceholder:e.catalog.keyPlaceholder,...e.docsUrl?{docsUrl:e.docsUrl}:{},...e.catalog.referral?{referral:{...e.catalog.referral}}:{}}))}var bp=`openai-compatible`,xp=vp();function Sp({models:e,onChange:t}){let{t:n}=R(),[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)([]),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(``),h=(0,X.useRef)(void 0),g=(0,X.useRef)(null),_=G(e=>e.wsUrl),v=(0,X.useCallback)(e=>{if(!e.trim()){c([]);return}u(!0);let t=H(_),n=t.on(`provider.models.search_result`,t=>{let n=t.payload;!n||n.query!==e.trim()||(c(n.matches??[]),u(!1))});t.searchProviderModels(e.trim(),8),setTimeout(()=>{n?.(),u(!1)},5e3)},[_]);(0,X.useEffect)(()=>{if(h.current&&clearTimeout(h.current),!a.trim()){c([]);return}return h.current=setTimeout(()=>v(a),250),()=>{h.current&&clearTimeout(h.current)}},[a,v]);let y=(0,X.useCallback)((n,r)=>{if(!n||e.some(e=>e.id===n))return;let a={id:n,name:r?.name??r?.modelId??n,...r?.maxOutput?{maxOutput:r.maxOutput}:{},capabilities:{...r?.contextWindow?{maxContext:r.contextWindow}:{},...r?.capabilities.includes(`tools`)?{tools:!0}:{},...r?.capabilities.includes(`vision`)?{vision:!0}:{},...r?.capabilities.includes(`reasoning`)?{reasoning:!0}:{}}};t([...e,a]),o(``),c([]),i(!1)},[e,t]),b=(0,X.useCallback)(n=>{t(e.filter(e=>e.id!==n))},[e,t]),x=(0,X.useCallback)(()=>{let e=p.trim();e&&(y(e),m(``),f(!1))},[p,y]);return(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`span`,{className:`text-[11px] font-medium text-muted-foreground block`,children:n(`setup:screen.custom.models`)}),e.length>0&&(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>(0,Z.jsxs)(`div`,{className:U(`group inline-flex items-center gap-1 px-2 py-1 text-xs rounded`,`bg-accent/10 text-accent border border-accent/20`),title:e.name&&e.name!==e.id?`${e.name}\n${e.capabilities?.maxContext?`maxContext: ${e.capabilities.maxContext}`:``}${e.maxOutput?`\nmaxOutput: ${e.maxOutput}`:``}`:void 0,children:[(0,Z.jsx)(`span`,{className:`truncate max-w-[120px]`,children:e.name&&e.name!==e.id?e.name:e.id}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>b(e.id),className:`opacity-0 group-hover:opacity-100 transition-opacity text-muted-foreground hover:text-destructive`,children:(0,Z.jsx)(Xt,{className:`h-3 w-3`})})]},e.id))}),r?(0,Z.jsxs)(`div`,{className:`space-y-2 p-3 rounded border border-border/60 bg-muted/20`,children:[(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(zt,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,Z.jsx)(Ri,{placeholder:n(`setup:screen.custom.modelSearchPlaceholder`),value:a,onChange:e=>o(e.target.value),className:`text-sm pl-8`,autoFocus:!0}),l&&(0,Z.jsx)(Bt,{className:`absolute right-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 animate-spin text-muted-foreground`})]}),s.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1 max-h-40 overflow-y-auto`,children:s.map(e=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>y(e.modelId,e),className:U(`w-full flex items-start gap-2 p-2 text-left text-xs rounded transition-colors`,`hover:bg-accent/10 border border-transparent hover:border-accent/30`),children:[(0,Z.jsx)(er,{className:`h-3.5 w-3.5 mt-0.5 shrink-0 text-muted-foreground`}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`font-medium block truncate`,children:e.name}),(0,Z.jsxs)(`span`,{className:`text-muted-foreground block`,children:[e.providerName,` · `,e.modelId,e.contextWindow?` · ${(e.contextWindow/1e3).toFixed(0)}K ctx`:``,e.maxOutput?` · ${e.maxOutput.toLocaleString()} out`:``]})]})]},`${e.providerId}\u0000${e.modelId}`))}),!l&&a.trim()&&s.length===0&&(0,Z.jsxs)(`div`,{className:`text-xs text-muted-foreground text-center py-2`,children:[n(`setup:screen.custom.noCatalogMatch`),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{f(!0),setTimeout(()=>g.current?.focus(),50)},className:`ml-1 text-accent underline underline-offset-2 hover:text-accent/80`,children:n(`setup:screen.custom.useCustomId`)})]}),d&&(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(Ri,{ref:g,placeholder:n(`setup:screen.custom.customModelIdPlaceholder`),value:p,onChange:e=>m(e.target.value),className:`text-sm flex-1`,onKeyDown:e=>{e.key===`Enter`&&x()}}),(0,Z.jsxs)(Y,{type:`button`,size:`sm`,onClick:x,disabled:!p.trim(),children:[(0,Z.jsx)(er,{className:`h-3.5 w-3.5 mr-1`}),n(`setup:screen.custom.add`)]})]}),(0,Z.jsx)(`div`,{className:`flex items-center gap-2 pt-1`,children:(0,Z.jsx)(Y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>{i(!1),o(``),c([]),f(!1),m(``)},className:`text-xs`,children:n(`setup:screen.custom.cancel`)})})]}):(0,Z.jsxs)(Y,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>i(!0),className:`text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5 mr-1`}),n(`setup:screen.custom.addModel`)]}),e.length>0&&(0,Z.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.length,` `,e.length===1?n(`setup:screen.custom.modelSingular`):n(`setup:screen.custom.modelPlural`)]})]})}var Cp=[{kind:`chatgpt`,label:`ChatGPT`,subtitle:`Plus / Pro / Team → openai-codex`,icon:(0,Z.jsx)(yt,{className:`h-5 w-5`})},{kind:`claude`,label:`Claude`,subtitle:`Pro / Max → anthropic-oauth`,icon:(0,Z.jsx)(qt,{className:`h-5 w-5`})},{kind:`copilot`,label:`GitHub Copilot`,subtitle:`Copilot → github-copilot`,icon:(0,Z.jsx)(Ie,{className:`h-5 w-5`})}],wp=[`awaiting_browser`,`awaiting_code`,`exchanging`,`fetching_models`];function Tp({ws:e,savedByKind:t}){let{t:n}=R(),[r,i]=(0,X.useState)({chatgpt:{phase:`idle`},claude:{phase:`idle`},copilot:{phase:`idle`}}),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(``),[p,m]=(0,X.useState)(null);(0,X.useEffect)(()=>{let t=e.on(`auth.oauth.status`,e=>{if(e.type!==`auth.oauth.status`)return;let t=e.payload;i(e=>({...e,[t.kind]:{...t}})),t.phase===`success`?(J.success(t.message??z.t(`settings:oauth.signedInToast`,{provider:t.providerId??t.kind})),c(null),o(``),u(null),f(``)):t.phase===`error`&&J.error(t.message??z.t(`settings:oauth.signInFailed`))});return()=>t?.()},[e]);let h=(0,X.useCallback)(t=>{i(e=>({...e,[t]:{phase:t===`copilot`?`awaiting_code`:`awaiting_browser`}})),e.startOAuth(t)},[e]),g=(0,X.useCallback)((t,n)=>{i(e=>({...e,[t]:{phase:t===`copilot`?`awaiting_code`:`awaiting_browser`}})),e.startOAuth(t,n)},[e]),_=(0,X.useCallback)(t=>{let n=d.trim();n&&(i(e=>({...e,[t]:{phase:t===`copilot`?`awaiting_code`:`awaiting_browser`}})),e.startOAuth(t,n),u(null),f(``))},[e,d]),v=(0,X.useCallback)(t=>{e.cancelOAuth(t),i(e=>({...e,[t]:{phase:`idle`}})),c(null)},[e]),y=(0,X.useCallback)(t=>{let n=a.trim();n&&(e.submitOAuthCode(t,n),i(e=>({...e,[t]:{...e[t],phase:`exchanging`}})))},[a,e]),b=t??{};return(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)(`div`,{className:`rounded-md border border-warning/30 bg-warning/5 p-3`,children:(0,Z.jsx)(`p`,{className:`text-xs leading-5 text-warning`,children:n(`settings:oauth.termsWarning`)})}),(0,Z.jsx)(`div`,{className:`grid grid-cols-1 gap-2 lg:grid-cols-3`,children:Cp.map(e=>{let t=r[e.kind],i=wp.includes(t.phase),x=b[e.kind],S=x?.length??0,C=p===e.kind;return(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/70 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 lg:flex-col lg:items-stretch`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`font-medium`,children:e.label}),(0,Z.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.subtitle})]})]}),i?(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>v(e.kind),className:`shrink-0 lg:w-full`,children:n(`common:action.cancel`)}):(0,Z.jsx)(Y,{size:`sm`,onClick:()=>h(e.kind),className:`shrink-0 lg:w-full`,children:n(`settings:oauth.signIn`)})]}),t.phase===`awaiting_browser`&&(0,Z.jsxs)(`div`,{className:`mt-3 space-y-2 border-t pt-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(Bt,{className:`h-4 w-4 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{children:n(`settings:oauth.waitingBrowser`)})]}),t.authorizeUrl&&(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>window.open(t.authorizeUrl,`_blank`,`noopener,noreferrer`),children:[(0,Z.jsx)(en,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.openSignIn`)]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`button`,{type:`button`,className:`text-xs text-muted-foreground underline`,onClick:()=>c(s===e.kind?null:e.kind),children:t.bound===!1?n(`settings:oauth.pasteLoopbackBusy`):n(`settings:oauth.pasteCantReach`)}),s===e.kind&&(0,Z.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[(0,Z.jsx)(Ri,{placeholder:n(`activity:oauth.httpLocalhostCallbackCode`),value:a,onChange:e=>o(e.target.value),className:`font-mono text-xs`,onKeyDown:t=>{t.key===`Enter`&&y(e.kind)}}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>y(e.kind),disabled:!a.trim(),children:n(`settings:oauth.submit`)})]})]})]}),t.phase===`awaiting_code`&&(0,Z.jsxs)(`div`,{className:`mt-3 space-y-2 border-t pt-3`,children:[(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`settings:oauth.enterCode`)}),(0,Z.jsx)(`div`,{className:`font-mono text-2xl font-bold tracking-widest`,children:t.userCode??`…`}),t.verificationUri&&(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>window.open(t.verificationUri,`_blank`,`noopener,noreferrer`),children:[(0,Z.jsx)(en,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.openVerification`)]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,Z.jsx)(Bt,{className:`h-3.5 w-3.5 animate-spin`}),(0,Z.jsx)(`span`,{children:n(`settings:oauth.waitingCode`)})]})]}),(t.phase===`exchanging`||t.phase===`fetching_models`)&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t pt-3 text-sm`,children:[(0,Z.jsx)(Bt,{className:`h-4 w-4 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{children:t.phase===`exchanging`?n(`settings:oauth.exchanging`):n(`settings:oauth.fetchingModels`)})]}),t.phase===`success`&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t pt-3 text-sm text-success`,children:[(0,Z.jsx)(_e,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{children:t.message??n(`settings:oauth.signedIn`)})]}),t.phase===`error`&&t.message&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t pt-3 text-sm text-destructive`,children:[(0,Z.jsx)(Se,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{children:t.message})]}),S>0&&!i&&(0,Z.jsxs)(`div`,{className:`mt-3 border-t pt-3`,children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>m(C?null:e.kind),className:`flex w-full items-center justify-between text-xs text-muted-foreground hover:text-foreground transition-colors`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Z.jsx)(xr,{className:`h-3.5 w-3.5`}),(0,Z.jsx)(`span`,{children:n(`settings:oauth.accountCount`,{count:S})})]}),(0,Z.jsx)(`span`,{className:`text-[10px]`,children:C?`▲`:`▼`})]}),C&&x&&(0,Z.jsxs)(`div`,{className:`mt-2 space-y-1.5`,children:[x.map(t=>(0,Z.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border border-border/60 bg-muted/20 px-2.5 py-1.5`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate font-mono text-xs`,children:t.id}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[t.hasActiveKey?(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[11px] text-success`,children:[(0,Z.jsx)(_e,{className:`h-3 w-3`}),n(`settings:oauth.active`)]}):(0,Z.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:n(`settings:oauth.inactive`)}),(0,Z.jsxs)(Y,{size:`sm`,variant:`ghost`,onClick:()=>g(e.kind,t.id),className:`h-6 px-1.5 text-[11px]`,title:n(`settings:oauth.retryLogin`),children:[(0,Z.jsx)(lr,{className:`h-3 w-3 mr-0.5`}),n(`settings:oauth.retry`)]})]})]},t.id)),(0,Z.jsx)(`div`,{className:`pt-1`,children:l===e.kind?(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{autoFocus:!0,placeholder:n(`settings:oauth.aliasPlaceholder`,{default:e.kind===`chatgpt`?`openai-codex-1`:`${e.kind}-2`}),value:d,onChange:e=>f(e.target.value),className:`text-xs font-mono`,onKeyDown:t=>{t.key===`Enter`&&_(e.kind)}}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>_(e.kind),disabled:!d.trim(),children:n(`settings:oauth.signIn`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>{u(null),f(``)},children:n(`common:action.cancel`)})]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>u(e.kind),className:`w-full text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.newAccount`)]})})]})]}),S===0&&!i&&(0,Z.jsx)(`div`,{className:`mt-3 border-t pt-3`,children:l===e.kind?(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{autoFocus:!0,placeholder:n(`settings:oauth.aliasPlaceholder`,{default:e.kind===`chatgpt`?`openai-codex-1`:`${e.kind}-2`}),value:d,onChange:e=>f(e.target.value),className:`text-xs font-mono`,onKeyDown:t=>{t.key===`Enter`&&_(e.kind)}}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>_(e.kind),disabled:!d.trim(),children:n(`settings:oauth.signIn`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>{u(null),f(``)},children:n(`common:action.cancel`)})]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>u(e.kind),className:`w-full text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5 mr-1`}),n(`settings:oauth.newAccount`)]})})]},e.kind)})})]})}function Ep({open:e,providerId:t,modelCount:n,onConfirm:r,onCancel:i}){let a=(0,X.useRef)(null),{t:o}=R();return(0,X.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Enter`?(e.preventDefault(),r()):e.key===`Escape`&&(e.preventDefault(),i())};return window.addEventListener(`keydown`,t),a.current?.focus(),()=>window.removeEventListener(`keydown`,t)},[e,r,i]),(0,Z.jsx)(Li,{open:e,onOpenChange:e=>{e||i()},children:(0,Z.jsxs)(Pi,{className:`sm:max-w-md border-warning/50`,ref:a,tabIndex:-1,"data-clear-allowlist-dialog":!0,children:[(0,Z.jsxs)(Mi,{children:[(0,Z.jsxs)(Fi,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(ze,{className:`h-5 w-5 text-warning`}),o(`settings:allowlist.title`)]}),(0,Z.jsx)(Ii,{children:o(`settings:allowlist.body`,{count:n,provider:t})})]}),(0,Z.jsx)(`div`,{className:`rounded-md bg-muted/50 border border-border/60 px-3 py-2 text-xs text-muted-foreground`,children:o(`settings:allowlist.undoHint`)}),(0,Z.jsxs)(Ni,{className:`gap-2 sm:gap-2 flex-wrap`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:i,title:o(`settings:allowlist.keepTitle`),"data-action":`cancel`,children:[o(`common:action.cancel`),` `,(0,Z.jsx)(`kbd`,{className:`ml-1 text-[10px] border rounded px-1 bg-background`,children:`Esc`})]}),(0,Z.jsxs)(Y,{variant:`destructive`,size:`sm`,onClick:r,title:o(`settings:allowlist.clearTitle`),"data-action":`confirm`,children:[o(`settings:allowlist.clear`),` `,(0,Z.jsx)(`kbd`,{className:`ml-1 text-[10px] border rounded px-1 bg-background/80`,children:`↵`})]})]})]})})}function Dp(){return{inFlight:!1,last:null,picked:null}}function Op(e){return{providerId:e.providerId,ok:e.ok,status:e.status,...e.httpStatus===void 0?{}:{httpStatus:e.httpStatus},...e.elapsedMs===void 0?{}:{elapsedMs:e.elapsedMs},...e.modelCount===void 0?{}:{modelCount:e.modelCount},...e.modelIds===void 0?{}:{modelIds:e.modelIds},...e.detail===void 0?{}:{detail:e.detail}}}function kp(e){if(e.inFlight)return{text:`Checking model endpoint...`,tone:`muted`};let t=e.last;if(!t)return{text:`Saved model list shown`,tone:`muted`};let n=t.elapsedMs===void 0?``:` (${t.elapsedMs}ms)`;switch(t.status){case`ok`:{let e=t.modelCount??t.modelIds?.length??0;return{text:`Server returned ${e} model${e===1?``:`s`}${n}`,tone:`success`}}case`unreachable`:return{text:`server unreachable${t.detail?` — ${t.detail}`:``}`,tone:`error`};case`timeout`:return{text:`timed out${t.detail?` — ${t.detail}`:``}`,tone:`error`};case`http_error`:return{text:`got${t.httpStatus===void 0?``:` HTTP ${t.httpStatus}`}${t.detail?` — ${t.detail}`:``}`,tone:`warning`};case`invalid_response`:return{text:t.detail?`unexpected response — ${t.detail}`:`unexpected response shape`,tone:`warning`};case`no_provider`:return{text:`Provider is no longer saved`,tone:`error`};case`no_base_url`:return{text:`No model endpoint configured`,tone:`warning`}}}function Ap(e){return(e?.length??0)>0}function jp(e,t){return`Allowlist cleared for ${e} — ${t} model${t===1?``:`s`} removed`}function Mp(e){return e.length>0}function Np({ws:e,onSelect:t,onClose:n}){let{t:r}=R(),[i,a]=(0,X.useState)(``),[o,s]=(0,X.useState)([]),[c,l]=(0,X.useState)(!1),u=(0,X.useRef)(null),d=(0,X.useRef)(``);(0,X.useEffect)(()=>e.on(`provider.models.search_result`,e=>{if(e.type!==`provider.models.search_result`)return;let t=e.payload;t.query!==void 0&&t.query!==d.current||(s(t.matches??[]),l(!1))}),[e]);let f=(0,X.useCallback)(t=>{if(!t.trim()){s([]),d.current=``;return}d.current=t,l(!0),e.searchProviderModels(t,8)},[e]);(0,X.useEffect)(()=>(u.current&&clearTimeout(u.current),u.current=setTimeout(()=>f(i),300),()=>{u.current&&clearTimeout(u.current)}),[i,f]);let p=(0,X.useCallback)(e=>{let n={name:e.name,...e.description?{description:e.description}:{},...e.releaseDate?{release_date:e.releaseDate}:{},...e.contextWindow||e.maxOutput?{limit:{...e.contextWindow?{context:e.contextWindow}:{},...e.maxOutput?{output:e.maxOutput}:{}}}:{},...e.inputCost||e.outputCost?{cost:{...e.inputCost?{input:e.inputCost}:{},...e.outputCost?{output:e.outputCost}:{}}}:{},...e.capabilities.length>0?{tool_call:e.capabilities.includes(`tools`),reasoning:e.capabilities.includes(`reasoning`),...e.capabilities.includes(`vision`)?{modalities:{input:[`text`,`image`]}}:{}}:{}};t(e.modelId,n)},[t]);return(0,Z.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`absolute inset-0 bg-black/50`,onClick:n,"aria-label":r(`common:action.close`)}),(0,Z.jsxs)(`div`,{className:`relative max-h-[80vh] w-full max-w-xl overflow-y-auto rounded-lg border border-border bg-background p-4 shadow-lg`,children:[(0,Z.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:r(`settings:providerModels.catalogSearchTitle`)}),(0,Z.jsx)(`button`,{type:`button`,onClick:n,className:`text-muted-foreground hover:text-foreground`,children:(0,Z.jsx)(Xt,{className:`h-4 w-4`})})]}),(0,Z.jsxs)(`div`,{className:`relative mb-3`,children:[(0,Z.jsx)(zt,{className:`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground/60`}),(0,Z.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:r(`settings:providerModels.catalogSearchPlaceholder`),className:`h-10 w-full rounded-md border border-border bg-background pl-9 pr-3 text-sm focus:outline-none focus:ring-1 focus:ring-ring`})]}),c?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(Bt,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):o.length>0?(0,Z.jsx)(`div`,{className:`space-y-1.5`,children:o.map(e=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>p(e),className:`block w-full rounded-md border border-border/60 p-2.5 text-left transition-colors hover:border-primary/40 hover:bg-primary/5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`font-mono text-sm font-medium text-foreground`,children:e.modelId}),e.name!==e.modelId&&(0,Z.jsx)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:e.name})]}),(0,Z.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground`,children:e.providerName})]}),e.description&&(0,Z.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`,children:e.description}),(0,Z.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-1.5`,children:[e.contextWindow?(0,Z.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:e.contextWindow>=1e6?`${(e.contextWindow/1e6).toFixed(1)}M ctx`:`${Math.round(e.contextWindow/1e3)}K ctx`}):null,e.capabilities.map(e=>(0,Z.jsx)(`span`,{className:`rounded bg-primary/10 px-1.5 py-0.5 text-[10px] text-primary`,children:e},e))]})]},`${e.providerId}:${e.modelId}`))}):i.trim()?(0,Z.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r(`settings:providerModels.noResults`)}):(0,Z.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r(`settings:providerModels.typeToSearch`)})]})]})}var Pp=new Set([`__proto__`,`constructor`,`prototype`,`__defineGetter__`,`__defineSetter__`,`__lookupGetter__`,`__lookupSetter__`]),Fp=[`text`,`image`,`audio`,`video`,`pdf`],Ip=[`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`],Lp=Fe().int().nonnegative(),Rp=Fe().finite(),zp=C({context:Lp.optional(),output:Lp.optional(),input:Lp.optional()}),Bp=C({input:Rp.optional(),output:Rp.optional(),cache_read:Rp.optional(),cache_write:Rp.optional(),cache_write_5m:Rp.optional(),cache_write_1h:Rp.optional(),context_over_200k:Rp.optional(),reasoning:Rp.optional(),input_audio:Rp.optional(),output_audio:Rp.optional()}),Vp=C({input:fr(l().min(1)).optional(),output:fr(l().min(1)).optional()}),Hp=mn([C({type:D(`toggle`)}),C({type:D(`effort`),values:fr(v(Ip)).optional()}),C({type:D(`budget_tokens`),min:Fe().optional(),max:Fe().optional()})]),Up=e=>({message:`${e} id is a forbidden prototype-pollution key`}),Wp=C({id:l().min(1).refine(e=>!Pp.has(e),Up(`Model`)),name:l().min(1),description:l().optional(),family:l().optional(),attachment:it().optional(),reasoning:it().optional(),reasoning_options:mn([Hp,fr(Hp)]).optional(),interleaved:mn([it(),C({field:l().optional()})]).optional(),tool_call:it().optional(),structured_output:it().optional(),temperature:it().optional(),knowledge:l().optional(),release_date:l().optional(),last_updated:l().optional(),open_weights:it().optional(),modalities:Vp.optional(),cost:Bp.optional(),limit:zp.optional(),status:l().optional(),experimental:it().optional()}),Gp=C({id:l().min(1).refine(e=>!Pp.has(e),Up(`Provider`)),name:l().min(1),env:fr(l()).optional(),npm:l().optional(),api:l().optional(),doc:l().optional(),models:vn(l(),Wp)});vn(l(),Gp);function Kp(e,t){let n=t.limit,r=t.cost,i=t.modalities;return{id:e,name:t.name??``,description:t.description??``,family:t.family??``,limitContext:n?.context==null?``:String(n.context),limitOutput:n?.output==null?``:String(n.output),limitInput:n?.input==null?``:String(n.input),costInput:r?.input==null?``:String(r.input),costOutput:r?.output==null?``:String(r.output),inputModalities:Array.isArray(i?.input)?i.input:[],outputModalities:Array.isArray(i?.output)?i.output:[],toolCall:t.tool_call===!0,reasoning:t.reasoning===!0,temperature:t.temperature===!0,attachment:t.attachment===!0,structuredOutput:t.structured_output===!0,openWeights:t.open_weights===!0,releaseDate:t.release_date??``,lastUpdated:t.last_updated??``,knowledge:t.knowledge??``}}function qp(e,t){let n={...t};e.name&&(n.name=e.name),e.description&&(n.description=e.description),e.family&&(n.family=e.family),e.knowledge&&(n.knowledge=e.knowledge);let r={};if(e.limitContext){let t=Number(e.limitContext);Number.isFinite(t)&&t>=0&&(r.context=t)}if(e.limitOutput){let t=Number(e.limitOutput);Number.isFinite(t)&&t>=0&&(r.output=t)}if(e.limitInput){let t=Number(e.limitInput);Number.isFinite(t)&&t>=0&&(r.input=t)}Object.keys(r).length>0&&(n.limit={...t.limit??{},...r});let i={};if(e.costInput){let t=Number(e.costInput);Number.isFinite(t)&&t>=0&&(i.input=t)}if(e.costOutput){let t=Number(e.costOutput);Number.isFinite(t)&&t>=0&&(i.output=t)}Object.keys(i).length>0&&(n.cost={...t.cost??{},...i});let a={};e.inputModalities.length>0&&(a.input=e.inputModalities),e.outputModalities.length>0&&(a.output=e.outputModalities),Object.keys(a).length>0&&(n.modalities={...t.modalities??{},...a});for(let[r,i]of[[`toolCall`,`tool_call`],[`reasoning`,`reasoning`],[`temperature`,`temperature`],[`attachment`,`attachment`],[`structuredOutput`,`structured_output`],[`openWeights`,`open_weights`]]){let a=t[i]===!0;e[r]!==a&&(n[i]=e[r])}return e.releaseDate&&(n.release_date=e.releaseDate),e.lastUpdated&&(n.last_updated=e.lastUpdated),n}var Jp=[{key:`toolCall`,labelKey:`settings:modelSchema.capToolCall`},{key:`reasoning`,labelKey:`settings:modelSchema.capReasoning`},{key:`temperature`,labelKey:`settings:modelSchema.capTemperature`},{key:`attachment`,labelKey:`settings:modelSchema.capAttachment`},{key:`structuredOutput`,labelKey:`settings:modelSchema.capStructuredOutput`},{key:`openWeights`,labelKey:`settings:modelSchema.capOpenWeights`}];function Yp({providerId:e,modelId:t,initialModelsDev:n,onSave:r,onCancel:i}){let{t:a}=R(),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(()=>Kp(t,n)),[u,d]=(0,X.useState)([]),[f,p]=(0,X.useState)(JSON.stringify({...n,...t?{id:t}:{}},null,2)),[m,h]=(0,X.useState)(null),g=(0,X.useCallback)((e,t)=>{l(n=>({...n,[e]:t}))},[]),_=(0,X.useCallback)((e,t)=>{l(n=>{let r=n[e];return{...n,[e]:r.includes(t)?r.filter(e=>e!==t):[...r,t]}})},[]),v=(0,X.useCallback)(()=>{let e=qp(c,n),i=Wp.safeParse({...e,id:c.id||t});if(!i.success){d(i.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`));return}d([]),r(c.id||t,e)},[c,n,t,r]),y=(0,X.useCallback)(()=>{try{let e=JSON.parse(f),n=Wp.safeParse({...e,id:t||e.id});if(!n.success){h(n.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`; `));return}let{id:i,...a}=n.data;h(null),r(t||n.data.id,a)}catch(e){h(e instanceof Error?e.message:String(e))}},[f,t,r]),b=`h-8 w-full rounded-md border border-border bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`,x=`mb-1 block text-[11px] font-medium uppercase tracking-wide text-muted-foreground`;return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex gap-1 border-b border-border/50`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>s(!1),className:U(`border-b-2 px-3 py-1 text-xs font-medium transition-colors`,o?`border-transparent text-muted-foreground hover:text-foreground`:`border-primary text-primary`),children:a(`settings:providerModels.tabForm`)}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>s(!0),className:U(`border-b-2 px-3 py-1 text-xs font-medium transition-colors`,o?`border-primary text-primary`:`border-transparent text-muted-foreground hover:text-foreground`),children:a(`settings:providerModels.tabRawJson`)})]}),o?(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`textarea`,{value:f,onChange:e=>p(e.target.value),rows:16,className:`w-full rounded-md border border-border bg-muted/20 p-2 font-mono text-xs`,spellCheck:!1}),m&&(0,Z.jsx)(`p`,{className:`text-xs text-destructive`,children:m})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionIdentity`)}),!t&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-id`,children:`ID`}),(0,Z.jsx)(`input`,{id:`mse-id`,className:b,value:c.id,onChange:e=>g(`id`,e.target.value),placeholder:a(`activity:modelSchema.modelId`)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-name`,children:a(`settings:providerModels.fieldName`)}),(0,Z.jsx)(`input`,{id:`mse-name`,className:b,value:c.name,onChange:e=>g(`name`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-desc`,children:a(`settings:providerModels.fieldDescription`)}),(0,Z.jsx)(`input`,{id:`mse-desc`,className:b,value:c.description,onChange:e=>g(`description`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-family`,children:a(`settings:providerModels.fieldFamily`)}),(0,Z.jsx)(`input`,{id:`mse-family`,className:b,value:c.family,onChange:e=>g(`family`,e.target.value)})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionLimits`)}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-3 gap-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-ctx`,children:a(`settings:providerModels.fieldContext`)}),(0,Z.jsx)(`input`,{id:`mse-ctx`,type:`number`,className:b,value:c.limitContext,onChange:e=>g(`limitContext`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-out`,children:a(`settings:providerModels.fieldOutput`)}),(0,Z.jsx)(`input`,{id:`mse-out`,type:`number`,className:b,value:c.limitOutput,onChange:e=>g(`limitOutput`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-inlim`,children:a(`settings:providerModels.fieldInputLimit`)}),(0,Z.jsx)(`input`,{id:`mse-inlim`,type:`number`,className:b,value:c.limitInput,onChange:e=>g(`limitInput`,e.target.value)})]})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionPricing`)}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-costin`,children:a(`settings:providerModels.fieldCostInput`)}),(0,Z.jsx)(`input`,{id:`mse-costin`,type:`number`,step:`0.01`,className:b,value:c.costInput,onChange:e=>g(`costInput`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-costout`,children:a(`settings:providerModels.fieldCostOutput`)}),(0,Z.jsx)(`input`,{id:`mse-costout`,type:`number`,step:`0.01`,className:b,value:c.costOutput,onChange:e=>g(`costOutput`,e.target.value)})]})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionModalities`)}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:x,children:a(`settings:providerModels.fieldInputModalities`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Fp.map(e=>(0,Z.jsx)(`button`,{type:`button`,onClick:()=>_(`inputModalities`,e),className:U(`rounded-md border px-2 py-1 text-xs transition-colors`,c.inputModalities.includes(e)?`border-primary bg-primary/10 text-primary`:`border-border text-muted-foreground hover:border-primary/30`),children:e},`in-mod-${e}`))})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:x,children:a(`settings:providerModels.fieldOutputModalities`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Fp.map(e=>(0,Z.jsx)(`button`,{type:`button`,onClick:()=>_(`outputModalities`,e),className:U(`rounded-md border px-2 py-1 text-xs transition-colors`,c.outputModalities.includes(e)?`border-primary bg-primary/10 text-primary`:`border-border text-muted-foreground hover:border-primary/30`),children:e},`out-mod-${e}`))})]})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionCapabilities`)}),(0,Z.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:Jp.map(({key:e,labelKey:t})=>(0,Z.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 rounded border-border`,checked:c[e],onChange:t=>g(e,t.target.checked)}),a(t)]},String(e)))})]}),(0,Z.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,Z.jsx)(`legend`,{className:`text-xs font-semibold text-foreground`,children:a(`settings:providerModels.sectionDates`)}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-release`,children:a(`settings:providerModels.fieldReleaseDate`)}),(0,Z.jsx)(`input`,{id:`mse-release`,type:`date`,className:b,value:c.releaseDate,onChange:e=>g(`releaseDate`,e.target.value)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:x,htmlFor:`mse-updated`,children:a(`settings:providerModels.fieldLastUpdated`)}),(0,Z.jsx)(`input`,{id:`mse-updated`,type:`date`,className:b,value:c.lastUpdated,onChange:e=>g(`lastUpdated`,e.target.value)})]})]})]}),u.length>0&&(0,Z.jsx)(`div`,{className:`rounded-md border border-destructive/30 bg-destructive/5 p-2`,children:(0,Z.jsx)(`ul`,{className:`space-y-0.5 text-xs text-destructive`,children:u.map((e,t)=>(0,Z.jsx)(`li`,{children:e},t))})})]}),(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-border/50 pt-3`,children:[(0,Z.jsxs)(Y,{type:`button`,variant:`ghost`,size:`sm`,onClick:i,className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(Xt,{className:`h-3.5 w-3.5`}),a(`common:action.cancel`)]}),(0,Z.jsxs)(Y,{type:`button`,size:`sm`,onClick:o?y:v,className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(er,{className:`h-3.5 w-3.5`}),a(`common:action.save`)]})]})]})}function Xp(e,t){return e.map(e=>{let n=t?.[e],r=n?.modelsDev,i=!!(n&&(n.name||n.maxOutput||n.capabilities||r));return{modelId:e,name:r?.name??n?.name??e,modelsDev:r,maxOutput:n?.maxOutput??r?.limit?.output,capabilities:n?.capabilities,source:i?`overridden`:`catalog`}})}function Zp(e){let t=e?.limit?.context;if(typeof t==`number`&&t>0)return t>=1e6?`${(t/1e6).toFixed(1)}M`:`${Math.round(t/1e3)}K`}function Qp(e){let t=e?.cost,n=e=>typeof e==`number`&&e>=0?`$${e}`:void 0;return{input:n(t?.input),output:n(t?.output)}}function $p(e){let t=e?.modalities;return{input:Array.isArray(t?.input)?t.input:[],output:Array.isArray(t?.output)?t.output:[]}}var em={text:jt,image:S,audio:Wn,video:dr,pdf:jt};function tm({providerId:e,models:t,customModels:n,ws:r,pickedModelId:i,onPickModel:a}){let{t:o}=R(),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(``),h=(0,X.useMemo)(()=>Xp(t,n),[t,n]),g=(0,X.useMemo)(()=>{let e=p.trim().toLowerCase();return e?h.filter(t=>t.modelId.toLowerCase().includes(e)||(t.name?.toLowerCase().includes(e)??!1)):h},[h,p]),_=(0,X.useCallback)(t=>{r.removeCustomModel(e,t),J.success(o(`settings:providerModels.modelRemoved`,{model:t}))},[r,e,o]),v=(0,X.useCallback)((t,n)=>{r.setCustomModel(e,t,{modelsDev:n}),c(null),J.success(o(`settings:providerModels.modelSaved`,{model:t}))},[r,e,o]),y=(0,X.useCallback)((t,n)=>{r.setCustomModel(e,t,{modelsDev:n}),u(!1),J.success(o(`settings:providerModels.modelAdded`,{model:t}))},[r,e,o]);return(0,Z.jsxs)(`div`,{className:`space-y-3`,"data-model-list-editor":e,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:()=>u(!0),className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),o(`settings:providerModels.addFromCatalog`)]}),(0,Z.jsxs)(Y,{variant:`ghost`,size:`sm`,onClick:()=>f(!0),className:`h-8 gap-1.5 text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),o(`settings:providerModels.addCustom`)]})]}),h.length>0&&(0,Z.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border/70`,children:[h.length>8&&(0,Z.jsxs)(`div`,{className:`relative border-b border-border/40 bg-muted/10`,children:[(0,Z.jsx)(zt,{className:`pointer-events-none absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/60`}),(0,Z.jsx)(`input`,{type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:o(`settings:providerModels.filterPlaceholder`),"aria-label":o(`settings:providerModels.filterPlaceholder`),className:`h-8 w-full bg-transparent pl-9 pr-3 text-xs text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-1 focus:ring-ring`})]}),(0,Z.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:(0,Z.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{className:`border-b border-border/70 bg-muted/30 text-left text-[11px] uppercase tracking-wide text-muted-foreground`,children:[(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colModel`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colContext`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colOutput`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colCost`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colModalities`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colCaps`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:o(`settings:providerModels.colSource`)}),(0,Z.jsx)(`th`,{className:`px-3 py-2`,"aria-label":o(`settings:providerModels.colActions`)})]})}),(0,Z.jsx)(`tbody`,{children:g.map(t=>{let n=Zp(t.modelsDev),r=t.maxOutput??t.modelsDev?.limit?.output,l=typeof r==`number`?r.toLocaleString():void 0,u=Qp(t.modelsDev),d=$p(t.modelsDev),f=t.capabilities,p=s===t.modelId;return(0,Z.jsxs)(X.Fragment,{children:[(0,Z.jsxs)(`tr`,{className:`border-b border-border/40 transition-colors hover:bg-muted/20`,children:[(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{className:`font-mono text-xs font-medium text-foreground`,children:t.modelId}),t.name&&t.name!==t.modelId&&(0,Z.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:t.name})]})}),(0,Z.jsx)(`td`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:n?(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Z.jsx)(hn,{className:`h-3 w-3`}),n]}):(0,Z.jsx)(`span`,{className:`text-muted-foreground/40`,children:`—`})}),(0,Z.jsx)(`td`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:l?(0,Z.jsx)(`span`,{children:l}):(0,Z.jsx)(`span`,{className:`text-muted-foreground/40`,children:`—`})}),(0,Z.jsx)(`td`,{className:`px-3 py-2 text-xs`,children:u.input||u.output?(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-muted-foreground`,children:[(0,Z.jsx)(cr,{className:`h-3 w-3`}),u.input&&u.output?`${u.input}/${u.output}`:u.input??u.output]}):(0,Z.jsx)(`span`,{className:`text-muted-foreground/40`,children:`—`})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[d.input.map(e=>{let t=em[e]??jt;return(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 rounded bg-primary/10 px-1 py-0.5 text-[10px] text-primary`,title:`input: ${e}`,children:[(0,Z.jsx)(t,{className:`h-2.5 w-2.5`}),e]},`in-${e}`)}),d.output.map(e=>(0,Z.jsx)(`span`,{className:`inline-flex items-center gap-0.5 rounded bg-secondary/20 px-1 py-0.5 text-[10px] text-secondary-foreground`,title:`output: ${e}`,children:e},`out-${e}`))]})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex gap-1`,children:[f?.tools&&(0,Z.jsx)(tn,{className:`h-3.5 w-3.5 text-muted-foreground`,"aria-label":o(`activity:modelListEditor.tools`)}),f?.reasoning&&(0,Z.jsx)(Yn,{className:`h-3.5 w-3.5 text-muted-foreground`,"aria-label":o(`activity:modelListEditor.reasoning`)}),f?.vision&&(0,Z.jsx)(ar,{className:`h-3.5 w-3.5 text-muted-foreground`,"aria-label":o(`activity:modelListEditor.vision`)})]})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsx)(`span`,{className:U(`inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium`,t.source===`custom`&&`bg-warning/10 text-warning`,t.source===`catalog`&&`bg-info/10 text-info`,t.source===`overridden`&&`bg-primary/10 text-primary`),children:t.source})}),(0,Z.jsx)(`td`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[a&&(t.modelId===i?(0,Z.jsx)(`span`,{className:`inline-flex items-center rounded p-1 text-primary`,title:o(`settings:providerModels.usingModel`,{model:t.modelId}),role:`img`,"aria-label":o(`settings:providerModels.usingModel`,{model:t.modelId}),children:(0,Z.jsx)(er,{className:`h-3.5 w-3.5`})}):(0,Z.jsx)(`button`,{type:`button`,onClick:()=>a(e,t.modelId),className:`rounded p-1 text-muted-foreground transition-colors hover:bg-primary/10 hover:text-primary`,"aria-label":o(`settings:providerModels.useModel`,{model:t.modelId}),title:o(`settings:providerModels.useModel`,{model:t.modelId}),children:(0,Z.jsx)(er,{className:`h-3.5 w-3.5`})})),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>c(p?null:t.modelId),className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":o(`settings:providerModels.editModel`,{model:t.modelId}),children:(0,Z.jsx)(Le,{className:`h-3.5 w-3.5`})}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>_(t.modelId),className:`rounded p-1 text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":o(`settings:providerModels.removeModel`,{model:t.modelId}),children:(0,Z.jsx)(_n,{className:`h-3.5 w-3.5`})})]})})]}),p&&(0,Z.jsx)(`tr`,{className:`border-b border-border/40 bg-muted/10`,children:(0,Z.jsx)(`td`,{colSpan:8,className:`p-3`,children:(0,Z.jsx)(Yp,{providerId:e,modelId:t.modelId,initialModelsDev:t.modelsDev??{},onSave:v,onCancel:()=>c(null)})})},`${t.modelId}-edit`)]},t.modelId)})})]})})]}),h.length===0&&(0,Z.jsx)(`div`,{className:`rounded-lg border border-dashed border-border/50 p-8 text-center`,children:(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`settings:providerModels.emptyState`)})}),l&&(0,Z.jsx)(Np,{ws:r,onSelect:y,onClose:()=>u(!1)}),d&&(0,Z.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`absolute inset-0 bg-black/50`,onClick:()=>f(!1),"aria-label":o(`common:action.close`)}),(0,Z.jsxs)(`div`,{className:`relative max-h-[80vh] w-full max-w-2xl overflow-y-auto rounded-lg border border-border bg-background p-4 shadow-lg`,children:[(0,Z.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:o(`settings:providerModels.addCustomTitle`)}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>f(!1),className:`text-muted-foreground hover:text-foreground`,children:(0,Z.jsx)(Xt,{className:`h-4 w-4`})})]}),(0,Z.jsx)(Yp,{providerId:e,modelId:``,initialModelsDev:{},onSave:v,onCancel:()=>f(!1)})]})]})]})}function nm(e){return e.previousModels.length===0?{kind:`skip`}:e.onUndoClear?{kind:`callback`,providerId:e.providerId,previousModels:e.previousModels}:{kind:`ws-default`,providerId:e.providerId,previousModels:e.previousModels}}var rm=3e3;function im({providerId:e,savedPickedModelId:t,savedModels:n,savedCustomModels:r,ws:i,onPickModel:a,onClearModels:o,onUndoClear:s}){let[c,l]=(0,X.useState)(()=>Dp()),{t:u}=R(),[d,f]=(0,X.useState)(!1);(0,X.useEffect)(()=>i.on(`provider.probe`,t=>{t.type===`provider.probe`&&t.payload.providerId===e&&l(e=>({...e,inFlight:!1,last:Op(t.payload)}))}),[i,e]);let p=(0,X.useCallback)(()=>{l(e=>({...e,inFlight:!0})),i.probeProvider(e,rm)},[i,e]),m=(0,X.useCallback)((e,t)=>{l(e=>({...e,picked:t})),a?.(e,t)},[a]),h=(0,X.useCallback)(()=>{f(!0)},[]),g=(0,X.useCallback)(()=>{f(!1)},[]),_=(0,X.useCallback)(()=>{f(!1);let t=n?[...n]:[];l(e=>({...e,picked:null,last:null})),o?o(e):i.clearProviderModels(e),Mp(t)&&J.undoable(jp(e,t.length),()=>{let n=nm({providerId:e,previousModels:t,onUndoClear:s});switch(n.kind){case`skip`:return;case`callback`:s?.(n.providerId,n.previousModels);return;case`ws-default`:i.undoProviderClear(n.providerId,n.previousModels);return}})},[o,s,i,e,n]),v=(0,X.useMemo)(()=>c.picked??t??n?.[0]??``,[c.picked,t,n]),y=(0,X.useMemo)(()=>kp(c),[c]),b=(0,X.useMemo)(()=>Ap(n),[n]);return(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/75 p-3 shadow-sm shadow-black/[0.02]`,"data-provider-models-panel":e,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,Z.jsx)(Yt,{className:`h-3.5 w-3.5`}),u(`activity:providerModels.allowlistTitle`)]}),n&&n.length>0&&(0,Z.jsx)(`span`,{className:`rounded-full border border-border/70 bg-muted/40 px-2 py-0.5 text-[11px] text-muted-foreground`,children:u(`activity:providerModels.modelCount`,{count:n.length})})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:u(`activity:providerModels.using`)}),v?(0,Z.jsx)(`span`,{className:`max-w-full truncate rounded-md bg-primary/10 px-2 py-0.5 font-mono text-xs text-primary`,children:v}):(0,Z.jsx)(`span`,{className:`text-xs italic text-muted-foreground`,children:u(`activity:providerModels.noModelPicked`)})]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 sm:justify-end`,children:[(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,onClick:p,disabled:c.inFlight,"aria-label":u(`activity:providerModels.refreshAria`,{provider:e}),className:`h-8 px-2 text-xs`,children:[c.inFlight?(0,Z.jsx)(Bt,{className:`h-3.5 w-3.5 animate-spin`}):(0,Z.jsx)(lr,{className:`h-3.5 w-3.5`}),c.inFlight?u(`activity:providerModels.probing`):u(`activity:providerModels.refresh`)]}),b&&(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:h,"aria-label":u(`activity:providerModels.clearAllowlistAria`,{provider:e}),"data-action":`clear-models`,className:`h-8 px-2 text-xs`,children:u(`activity:providerModels.clearAllowlist`)})]})]}),(0,Z.jsx)(am,{formatted:y}),(0,Z.jsx)(`div`,{className:`mt-3`,children:(0,Z.jsx)(tm,{providerId:e,models:n??[],customModels:r,ws:i,pickedModelId:v??void 0,onPickModel:m})}),(0,Z.jsx)(Ep,{open:d,providerId:e,modelCount:n?.length??0,onConfirm:_,onCancel:g})]})}function am({formatted:e}){let t=e.tone===`success`?`text-success`:e.tone===`warning`?`text-warning`:e.tone===`error`?`text-destructive`:`text-muted-foreground`,n=e.tone===`success`?`bg-success`:e.tone===`warning`?`bg-warning`:e.tone===`error`?`bg-destructive`:`bg-muted-foreground/60`;return(0,Z.jsxs)(`p`,{className:`mt-2 flex items-center gap-1.5 text-xs ${t}`,"data-probe-tone":e.tone,children:[(0,Z.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full ${n}`}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:e.text})]})}var om=[`anthropic`,`openai`,`google`,`openai-compatible`];function sm({activeProvider:e,catalogProviders:t,isLoadingCatalog:n,savedProviders:r,isLoadingSaved:i,providerTab:a,setProviderTab:o,onSelectProvider:s,onAddKey:c,onDeleteKey:l,onSetActiveKey:u,onAddProvider:d,onRemoveProvider:f,onPickProviderModel:p,ws:m,catalogQuery:h,setCatalogQuery:g}){let{t:_}=R(),[v,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(``),[S,C]=(0,X.useState)(``),[w,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(`openai-compatible`),[ee,M]=(0,X.useState)(``),[te,N]=(0,X.useState)(``),[P,ne]=(0,X.useState)([]),F=pp(),I=pp(),re=(0,X.useCallback)(e=>{!b.trim()||!S.trim()||(c(e,b.trim(),S.trim()),x(``),C(``),y(null))},[c,b,S]),ie=(0,X.useCallback)(()=>{O.trim()&&(d(O.trim(),A,ee||void 0,te||void 0,P.length>0?P.map(e=>e.id):void 0,P.length>0?Object.fromEntries(P.filter(e=>e.name||e.maxOutput||e.capabilities&&Object.keys(e.capabilities).length>0).map(e=>[e.id,{...e.name&&e.name!==e.id?{name:e.name}:{},...e.maxOutput?{maxOutput:e.maxOutput}:{},...e.capabilities&&Object.keys(e.capabilities).length>0?{capabilities:e.capabilities}:{}}])):void 0),k(``),j(`openai-compatible`),M(``),N(``),ne([]),D(!1))},[d,O,A,ee,te,P]),ae=(0,X.useCallback)(e=>{k(e.id),j(bp),M(e.defaultBaseUrl),e.noAuth&&N(``),ne([])},[]),[oe,se]=(0,X.useState)(null),[L,ce]=(0,X.useState)(``),[le,ue]=(0,X.useState)(!1),[de,fe]=(0,X.useState)({}),pe=(0,X.useMemo)(()=>new Set(r.map(e=>e.id)),[r]),me=(0,X.useMemo)(()=>({keys:r.reduce((e,t)=>e+t.apiKeys.length,0),activeKeys:r.reduce((e,t)=>e+t.apiKeys.filter(e=>e.isActive).length,0),models:r.reduce((e,t)=>e+(t.models?.length??0),0)}),[r]);(0,X.useEffect)(()=>{let e=m.on(`provider.probe`,e=>{if(e.type!==`provider.probe`)return;let t=e.payload;t.status===`no_base_url`||t.status===`no_provider`||fe(e=>({...e,[t.providerId]:{ok:t.ok,status:t.status,detail:t.detail}}))});return()=>e?.()},[m]);let he=(0,X.useCallback)(e=>{let t=L.trim();t&&(pe.has(e.id)?c(e.id,`default`,t):d(e.id,e.family,e.apiBase??void 0,t),ce(``),se(null),ue(!1),J.success(_(`settings:provider.savedToast`,{name:e.name})),e.apiBase&&setTimeout(()=>m.probeProvider(e.id,6e3),700))},[L,pe,c,d,m]),ge=h.trim()?t.filter(e=>{let t=h.trim().toLowerCase();return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.family.toLowerCase().includes(t)}):t,ve=ge.reduce((e,t)=>(e[t.family]||(e[t.family]=[]),e[t.family]?.push(t),e),{});return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold flex items-center gap-2`,children:[(0,Z.jsx)(Tr,{className:`h-4 w-4 text-muted-foreground`}),_(`settings:provider.subscriptionHeading`)]}),(0,Z.jsx)(Tp,{ws:m,savedByKind:{chatgpt:r.filter(e=>e.id===`openai-codex`||e.id.startsWith(`openai-codex-`)).map(e=>({id:e.id,hasActiveKey:e.apiKeys.some(e=>e.isActive)})),claude:r.filter(e=>e.id===`anthropic-oauth`||e.id.startsWith(`anthropic-oauth-`)).map(e=>({id:e.id,hasActiveKey:e.apiKeys.some(e=>e.isActive)})),copilot:r.filter(e=>e.id===`github-copilot`).map(e=>({id:e.id,hasActiveKey:e.apiKeys.some(e=>e.isActive)}))}})]}),(0,Z.jsxs)(`div`,{className:`pt-2 border-t`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-1 flex items-center gap-2`,children:[(0,Z.jsx)(gn,{className:`h-4 w-4 text-muted-foreground`}),_(`settings:provider.apiKeysHeading`)]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mb-3`,children:_(`settings:provider.apiKeysBody`)})]}),(0,Z.jsxs)(`div`,{className:`flex gap-2 mb-4`,children:[(0,Z.jsxs)(Y,{variant:a===`catalog`?`default`:`outline`,size:`sm`,onClick:()=>o(`catalog`),children:[(0,Z.jsx)(gn,{className:`h-4 w-4 mr-1`}),_(`settings:provider.tabCatalog`)]}),(0,Z.jsxs)(Y,{variant:a===`saved`?`default`:`outline`,size:`sm`,onClick:()=>o(`saved`),children:[(0,Z.jsx)(Tr,{className:`h-4 w-4 mr-1`}),_(`settings:provider.tabSaved`,{count:r.length})]})]}),a===`catalog`&&(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsx)(Ri,{placeholder:_(`settings:provider.searchPlaceholder`,{count:t.length}),value:h,onChange:e=>g(e.target.value),className:`text-sm`}),n&&t.length===0?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8`,children:[(0,Z.jsx)(Bt,{className:`h-6 w-6 animate-spin text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:_(`settings:provider.loadingCatalog`)})]}):ge.length===0&&h?(0,Z.jsx)(`div`,{className:`text-center py-8 text-muted-foreground text-sm`,children:_(`settings:provider.noMatch`,{query:h})}):om.map(t=>{let n=ve[t];return n?.length?(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-muted-foreground uppercase tracking-wider`,children:t}),(0,Z.jsx)(`div`,{className:`grid grid-cols-1 gap-2`,children:n.map(t=>{let n=de[t.id],r=e===t.id;return(0,Z.jsxs)(`div`,{className:U(`rounded-lg border transition-all`,r?`border-primary bg-primary/5 ring-2 ring-primary/20`:`border-border`),children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>s(t.id),className:U(`flex w-full flex-col items-start p-3 text-left rounded-lg`,!r&&`hover:bg-muted`),children:[(0,Z.jsxs)(`div`,{className:`flex w-full justify-between items-start`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:t.name}),(0,Z.jsxs)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:[`(`,t.id,`)`]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t.hasApiKey&&(0,Z.jsxs)(`span`,{className:`text-xs bg-success/10 text-success px-2 py-0.5 rounded`,children:[(0,Z.jsx)(Tr,{className:`h-3 w-3 inline mr-1`}),_(`settings:provider.configured`)]}),n&&(0,Z.jsxs)(`span`,{className:U(`text-xs px-2 py-0.5 rounded inline-flex items-center gap-1`,n.ok?`bg-success/10 text-success`:`bg-destructive/10 text-destructive`),title:n.detail??n.status,children:[n.ok?(0,Z.jsx)(_e,{className:`h-3 w-3`}):(0,Z.jsx)(Se,{className:`h-3 w-3`}),n.ok?_(`settings:provider.reachable`):n.status]}),t.envVars[0]&&(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:_(`settings:provider.envVar`,{var:t.envVars[0]})}),r&&(0,Z.jsx)(_e,{className:`h-4 w-4 text-primary`})]})]}),(0,Z.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:[_(`settings:provider.modelCount`,{count:t.modelCount}),t.apiBase&&` · ${t.apiBase}`]})]}),r&&!t.hasApiKey&&(0,Z.jsx)(`div`,{className:`px-3 pb-3 -mt-1 space-y-2`,children:oe===t.id?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{autoFocus:!0,type:le?`text`:`password`,placeholder:_(`settings:provider.keyPlaceholder`,{name:t.name}),value:L,onChange:e=>ce(e.target.value),className:`text-sm`,onKeyDown:e=>{e.key===`Enter`&&he(t)}}),(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>ue(e=>!e),children:le?(0,Z.jsx)(Jt,{className:`h-4 w-4`}):(0,Z.jsx)(ar,{className:`h-4 w-4`})}),(0,Z.jsx)(Y,{size:`sm`,onClick:()=>he(t),disabled:!L.trim(),children:_(`common:action.save`)})]}),t.envVars[0]&&(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:_(`settings:provider.orEnv`,{env:t.envVars[0]})})]}):(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>{se(t.id),ce(``)},children:[(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5 mr-1`}),_(`settings:provider.addApiKey`)]})})]},t.id)})})]},t):null})]}),a===`saved`&&(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:_(`settings:provider.manageKeys`)}),(0,Z.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2 text-xs text-muted-foreground`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(Kn,{className:`h-3.5 w-3.5`}),_(`settings:provider.savedProviderCount`,{count:r.length})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5`}),_(`settings:provider.keyCount`,{count:me.keys})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(Mt,{className:`h-3.5 w-3.5`}),_(`settings:provider.activeKeyCount`,{count:me.activeKeys})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-muted/30 px-2 py-1`,children:[(0,Z.jsx)(vr,{className:`h-3.5 w-3.5`}),_(`settings:provider.modelCount`,{count:me.models})]})]})]}),(0,Z.jsxs)(Y,{size:`sm`,variant:`outline`,onClick:()=>D(!E),children:[(0,Z.jsx)(mr,{className:`h-4 w-4 mr-1`}),_(`settings:provider.addProvider`)]})]}),E&&(0,Z.jsxs)(`div`,{className:`p-4 border rounded-lg space-y-3 bg-muted/50`,children:[(0,Z.jsx)(`h4`,{className:`font-medium`,children:_(`settings:provider.addCustomHeading`)}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:_(`settings:provider.localServers`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:xp.map(e=>(0,Z.jsx)(Y,{type:`button`,size:`sm`,variant:O===e.id?`default`:`outline`,onClick:()=>ae(e),title:e.hint,children:e.label},e.id))})]}),(0,Z.jsx)(Ri,{placeholder:_(`settings:provider.providerIdPlaceholder`),value:O,onChange:e=>k(e.target.value),ref:F.setFieldRef(0),onKeyDown:e=>F.handleKeyDown(e,0)}),(0,Z.jsxs)(`select`,{className:`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm`,value:A,onChange:e=>j(e.target.value),ref:F.setFieldRef(1),onKeyDown:e=>F.handleKeyDown(e,1),children:[(0,Z.jsx)(`option`,{value:`anthropic`,children:_(`activity:provider.anthropic`)}),(0,Z.jsx)(`option`,{value:`openai`,children:_(`activity:provider.openai`)}),(0,Z.jsx)(`option`,{value:`openai-compatible`,children:_(`activity:provider.openaiCompatible`)}),(0,Z.jsx)(`option`,{value:`google`,children:_(`activity:provider.google`)})]}),(0,Z.jsx)(Ri,{placeholder:_(`activity:provider.baseUrlOptionalEGHttpLocalhost11434V1`),value:ee,onChange:e=>M(e.target.value),ref:F.setFieldRef(2),onKeyDown:e=>F.handleKeyDown(e,2)}),(0,Z.jsx)(Ri,{type:`password`,placeholder:_(`settings:provider.apiKeyOptionalPlaceholder`),value:te,onChange:e=>N(e.target.value),ref:F.setFieldRef(3),onKeyDown:e=>F.handleKeyDown(e,3)}),(0,Z.jsx)(Sp,{models:P,onChange:ne}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Y,{size:`sm`,onClick:ie,disabled:!O.trim(),ref:F.setFieldRef(4),onKeyDown:e=>F.handleKeyDown(e,4,ie),children:_(`common:action.add`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>D(!1),ref:F.setFieldRef(5),onKeyDown:e=>F.handleKeyDown(e,5),children:_(`common:action.cancel`)})]})]}),i?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(Bt,{className:`h-6 w-6 animate-spin text-muted-foreground`})}):r.length===0?(0,Z.jsxs)(`div`,{className:`text-center py-8 text-muted-foreground`,children:[(0,Z.jsx)(Tr,{className:`h-8 w-8 mx-auto mb-2 opacity-50`}),(0,Z.jsx)(`p`,{children:_(`settings:provider.noSaved`)}),(0,Z.jsx)(`p`,{className:`text-sm`,children:_(`settings:provider.noSavedHint`)})]}):r.map(e=>(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border/80 bg-card/70 p-4 shadow-sm shadow-black/[0.02]`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`h4`,{className:`min-w-0 truncate font-mono text-sm font-semibold text-foreground`,children:e.id}),e.family&&(0,Z.jsx)(`span`,{className:`rounded-full border border-border/70 bg-muted/40 px-2 py-0.5 text-[11px] font-medium text-muted-foreground`,children:e.family}),e.apiKeys.some(e=>e.isActive)&&(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-success/10 px-2 py-0.5 text-[11px] font-medium text-success`,children:[(0,Z.jsx)(Mt,{className:`h-3 w-3`}),_(`settings:provider.active`)]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-xs text-muted-foreground`,children:[e.baseUrl&&(0,Z.jsxs)(`span`,{className:`inline-flex max-w-full items-center gap-1 rounded-md border border-border/70 bg-background/60 px-2 py-1`,children:[(0,Z.jsx)(gn,{className:`h-3.5 w-3.5 shrink-0`}),(0,Z.jsx)(`span`,{className:`truncate`,children:e.baseUrl})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-background/60 px-2 py-1`,children:[(0,Z.jsx)(vr,{className:`h-3.5 w-3.5`}),_(`settings:provider.modelCount`,{count:e.models?.length??0})]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-border/70 bg-background/60 px-2 py-1`,children:[(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5`}),_(`settings:provider.keyCount`,{count:e.apiKeys.length})]})]})]}),(0,Z.jsx)(`div`,{className:`flex gap-2 sm:justify-end`,children:(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>f(e.id),"aria-label":`Remove provider ${e.id}`,title:`Remove provider ${e.id}`,className:`h-8 w-8 text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,Z.jsx)(_n,{className:`h-4 w-4 text-destructive`})})})]}),(0,Z.jsxs)(`div`,{className:`mt-4 grid gap-4 xl:grid-cols-[minmax(0,1.35fr)_minmax(280px,0.85fr)]`,children:[(0,Z.jsx)(im,{providerId:e.id,savedPickedModelId:e.pickedModelId,savedModels:e.models,savedCustomModels:e.customModels,ws:m,onPickModel:p}),(0,Z.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/75 p-3 shadow-sm shadow-black/[0.02]`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-semibold`,children:_(`settings:provider.apiKeysLabel`)}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:_(`settings:provider.keyCount`,{count:e.apiKeys.length})})]}),(0,Z.jsxs)(Y,{size:`sm`,variant:`ghost`,onClick:()=>y(v===e.id?null:e.id),className:`h-8 px-2 text-xs`,children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),_(`settings:provider.addKey`)]})]}),e.apiKeys.length===0&&!v&&(0,Z.jsx)(`p`,{className:`mt-3 rounded-md border border-dashed border-border/70 bg-muted/20 px-3 py-2 text-xs text-muted-foreground`,children:_(`settings:provider.noKeys`)}),e.apiKeys.length>0&&(0,Z.jsx)(`div`,{className:`mt-3 space-y-2`,children:e.apiKeys.map(t=>(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-border/70 bg-muted/20 p-2.5 sm:flex-row sm:items-center sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-border/70 bg-background text-muted-foreground`,children:(0,Z.jsx)(Tr,{className:`h-3.5 w-3.5`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`truncate text-sm font-medium`,children:t.label}),t.isActive&&(0,Z.jsx)(`span`,{className:`rounded-full bg-success/10 px-2 py-0.5 text-[11px] font-medium text-success`,children:_(`settings:provider.active`)})]}),(0,Z.jsx)(`div`,{className:`mt-0.5`,children:(0,Z.jsx)(fp,{maskedKey:t.maskedKey})})]})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1`,children:[!t.isActive&&(0,Z.jsx)(Y,{size:`sm`,variant:`outline`,onClick:()=>u(e.id,t.label),className:`h-8 px-2 text-xs`,children:_(`settings:provider.setActive`)}),(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>l(e.id,t.label),"aria-label":`Delete key ${t.label}`,title:`Delete key ${t.label}`,className:`h-8 w-8 text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,Z.jsx)(_n,{className:`h-3.5 w-3.5 text-destructive`})})]})]},t.label))}),v===e.id&&(0,Z.jsxs)(`div`,{className:`mt-3 space-y-2 rounded-lg border border-border/70 bg-background p-3`,children:[(0,Z.jsx)(Ri,{placeholder:_(`settings:provider.keyLabelPlaceholder`),value:b,onChange:e=>x(e.target.value),ref:I.setFieldRef(0),onKeyDown:e=>I.handleKeyDown(e,0)}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Ri,{type:w?`text`:`password`,placeholder:_(`settings:provider.apiKeyPlaceholder`),value:S,onChange:e=>C(e.target.value),ref:I.setFieldRef(1),onKeyDown:e=>I.handleKeyDown(e,1)}),(0,Z.jsx)(Y,{size:`icon`,variant:`ghost`,onClick:()=>T(!w),children:w?(0,Z.jsx)(Jt,{className:`h-4 w-4`}):(0,Z.jsx)(ar,{className:`h-4 w-4`})})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(Y,{size:`sm`,onClick:()=>re(e.id),disabled:!b.trim()||!S.trim(),ref:I.setFieldRef(2),onKeyDown:t=>I.handleKeyDown(t,2,()=>re(e.id)),children:_(`settings:provider.saveKey`)}),(0,Z.jsx)(Y,{size:`sm`,variant:`ghost`,onClick:()=>{y(null),x(``),C(``)},ref:I.setFieldRef(3),onKeyDown:e=>I.handleKeyDown(e,3),children:_(`common:action.cancel`)})]})]})]})]})]},e.id))]})]})}var cm=Object.entries({discovery:[[`explore`,`Explore`],[`search`,`Search`],[`research`,`Research`]],planning:[[`analyst`,`Analyst`],[`planner`,`Planner`],[`architect`,`Architect`],[`critic`,`Critic`],[`refactor-planner`,`Refactor Planner`]],build:[[`executor`,`Executor`],[`refactor`,`Refactor`],[`simplifier`,`Simplifier`],[`migration`,`Migration`],[`vision`,`Vision`],[`debugger`,`Debugger`],[`tracer`,`Tracer`],[`concurrency`,`Concurrency`]],verify:[[`realtime`,`Realtime`],[`resilience-engineer`,`Resilience Engineer`],[`chaos-engineer`,`Chaos Engineer`],[`verifier`,`Verifier`],[`test`,`Test`],[`e2e`,`E2E`],[`browser`,`Browser`],[`performance`,`Performance`],[`chaos`,`Chaos`],[`security-scanner`,`Security Scanner`],[`bug-hunter`,`Bug Hunter`],[`audit-log`,`Audit Log`]],review:[[`threat-modeler`,`Threat Modeler`],[`secure-coding-coach`,`Secure Coding Coach`],[`compliance-auditor`,`Compliance Auditor`],[`privacy-engineer`,`Privacy Engineer`],[`reviewer`,`Reviewer`],[`code-reviewer`,`Code Reviewer`],[`security-reviewer`,`Security Reviewer`],[`accessibility`,`Accessibility`],[`compliance`,`Compliance`]],domain:[[`android`,`Android`],[`desktop`,`Desktop`],[`distributed-systems`,`Distributed Systems`],[`database`,`Database`],[`api`,`API`],[`auth`,`Auth`],[`data`,`Data`],[`frontend`,`Frontend`],[`backend`,`Backend`],[`designer`,`Designer`],[`ios`,`iOS`],[`payments`,`Payments`],[`messaging`,`Messaging`],[`search-relevance`,`Search Relevance`],[`storage`,`Storage`],[`ml-engineer`,`ML Engineer`],[`data-governance`,`Data Governance`]],knowledge:[[`document`,`Document`],[`uml`,`UML`],[`i18n`,`I18n`],[`prompt`,`Prompt`]],delivery:[[`platform-engineer`,`Platform Engineer`],[`git`,`Git`],[`release`,`Release`],[`devops`,`DevOps`],[`observability`,`Observability`],[`dependency`,`Dependency`]],meta:[[`skill-manage`,`Skill Manager`],[`self-improving`,`Self-Improving`],[`context`,`Context`],[`cost`,`Cost`],[`tech-stack`,`Tech Stack Validator`],[`plugin-author`,`Plugin Author`],[`tool-author`,`Tool Author`],[`prompt-evaluator`,`Prompt Evaluator`],[`benchmark-engineer`,`Benchmark Engineer`],[`memory-curator`,`Memory Curator`],[`fleet-coordinator`,`Fleet Coordinator`]]}).map(([e,t])=>({phase:e,label:`${e.charAt(0).toUpperCase()}${e.slice(1)}`,roles:t.map(([e,t])=>({role:e,name:t}))})),lm=cm.map(e=>e.phase),um=cm.flatMap(e=>[...e.roles]),dm=um.map(e=>e.role),fm=[`*`,...lm,...dm];function pm(e){if(e===`*`)return`Default (*)`;let t=cm.find(t=>t.phase===e);if(t)return`Phase: ${t.label} (${t.phase})`;let n=um.find(t=>t.role===e);return n?`${n.name} (${n.role})`:`Custom: ${e}`}var mm=[{value:``,label:`mode: inherit`},{value:`auto`,label:`mode: auto`},{value:`on`,label:`mode: on`},{value:`off`,label:`mode: off`}],hm=[{value:``,label:`effort: inherit`},{value:`none`,label:`effort: none`},{value:`minimal`,label:`effort: minimal`},{value:`low`,label:`effort: low`},{value:`medium`,label:`effort: medium`},{value:`high`,label:`effort: high`},{value:`xhigh`,label:`effort: xhigh`},{value:`max`,label:`effort: max`}],gm=[{value:``,label:`preserve: inherit`},{value:`on`,label:`preserve: on`},{value:`off`,label:`preserve: off`}],_m=new Set(fm);function vm(e,t,n){let r={};return e&&(r.mode=e),t&&(r.effort=t),n&&(r.preserve=n===`on`),Object.keys(r).length>0?{reasoning:r}:void 0}function ym(e){return e?[e.mode?`mode:${e.mode}`:``,e.effort?`effort:${e.effort}`:``,e.preserve===void 0?``:`preserve:${e.preserve?`on`:`off`}`].filter(Boolean):[]}function bm({syncPref:e,candidates:t}){let n=B(),{t:r}=R(),[i,a]=(0,X.useState)(`*`),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(``),m=(0,X.useCallback)(t=>e(`modelMatrix`,t),[e]),h=(0,X.useCallback)(()=>{let e=i.trim(),t=o.trim(),r=vm(c,u,f);if(!e||!t&&!r)return;let a=t?n.fallbackProfiles[t]?{fallbackProfile:t}:t.includes(`/`)?{provider:t.slice(0,t.indexOf(`/`)),model:t.slice(t.indexOf(`/`)+1)}:{model:t}:{},h=n.modelMatrix[e]?.modelRuntime;r?a.modelRuntime=r:h&&(a.modelRuntime=h),m({...n.modelMatrix,[e]:a}),s(``),l(``),d(``),p(``)},[n.fallbackProfiles,n.modelMatrix,i,f,u,c,o,m]),g=(0,X.useCallback)(e=>{let{[e]:t,...r}=n.modelMatrix;m(r)},[n.modelMatrix,m]),_=(0,X.useCallback)((e,t,r)=>{let i={...n.modelMatrix},a={...i[e]??{}},o={...a.modelRuntime??{}},s={...o.reasoning??{}};t===`mode`?r?s.mode=r:delete s.mode:t===`effort`?r?s.effort=r:delete s.effort:r?s.preserve=r===`on`:delete s.preserve,Object.keys(s).length>0?o.reasoning=s:delete o.reasoning,Object.keys(o).length>0?a.modelRuntime=o:delete a.modelRuntime,a.model||a.fallbackProfile||a.modelRuntime?i[e]=a:delete i[e],m(i)},[n.modelMatrix,m]),v=e=>{let t=e.provider&&e.model?`${e.provider}/${e.model}`:e.model,n=e.modelRuntime?.reasoning;return[t??(!e.fallbackProfile&&n?r(`settings:agent.leaderModel`):``),e.fallbackProfile?`profile:${e.fallbackProfile}`:``,...ym(n)].filter(Boolean).join(` + `)},y=Array.from(new Set([...Object.keys(n.modelMatrix),i].filter(e=>e&&!_m.has(e)))).sort((e,t)=>e.localeCompare(t));return(0,Z.jsxs)(`div`,{className:`pt-2 border-t`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-3 mt-3 flex items-center gap-2`,children:[(0,Z.jsx)(Ft,{className:`h-4 w-4 text-muted-foreground`}),r(`settings:agent.routingHeading`)]}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-[minmax(0,180px)_1fr_auto]`,children:[(0,Z.jsxs)(`select`,{"aria-label":r(`settings:agent.routingRouteKey`),value:i,onChange:e=>a(e.target.value),className:`h-9 min-w-0 rounded-md border bg-background px-3 font-mono text-sm`,children:[(0,Z.jsx)(`option`,{value:`*`,children:pm(`*`)}),(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingPhasesGroup`),children:cm.map(e=>(0,Z.jsx)(`option`,{value:e.phase,children:pm(e.phase)},e.phase))}),cm.map(e=>(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingRolesGroup`,{label:e.label}),children:e.roles.map(e=>(0,Z.jsx)(`option`,{value:e.role,children:pm(e.role)},e.role))},e.phase)),y.length>0?(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingCustomGroup`),children:y.map(e=>(0,Z.jsx)(`option`,{value:e,children:pm(e)},e))}):null]}),(0,Z.jsxs)(`select`,{"aria-label":r(`settings:agent.routingTargetAria`),value:o,onChange:e=>s(e.target.value),className:`h-9 min-w-0 rounded-md border bg-background px-3 font-mono text-sm`,children:[(0,Z.jsx)(`option`,{value:``,children:r(`settings:agent.routingTargetEmpty`)}),Object.keys(n.fallbackProfiles).length>0&&(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingTargetProfilesGroup`),children:Object.keys(n.fallbackProfiles).map(e=>(0,Z.jsx)(`option`,{value:e,children:e},e))}),t&&t.length>0&&(0,Z.jsx)(`optgroup`,{label:r(`settings:agent.routingTargetModelsGroup`),children:t.map(e=>(0,Z.jsxs)(`option`,{value:`${e.provider}/${e.model}`,children:[e.provider,`/`,e.model]},`${e.provider}/${e.model}`))})]}),(0,Z.jsx)(Y,{type:`button`,variant:`outline`,onClick:h,children:r(`settings:agent.routingSet`)})]}),(0,Z.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 gap-2 sm:grid-cols-3`,children:[(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningModeAria`),value:c,onChange:e=>l(e.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:mm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningEffortAria`),value:u,onChange:e=>d(e.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:hm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningPreserveAria`),value:f,onChange:e=>p(e.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:gm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))})]}),(0,Z.jsx)(`div`,{className:`mt-3 space-y-1.5`,children:Object.keys(n.modelMatrix).length===0?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`settings:agent.noRoutes`)}):Object.entries(n.modelMatrix).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>(0,Z.jsxs)(`div`,{className:`rounded-md border border-border bg-muted px-2 py-1.5 text-xs`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`w-40 shrink-0 truncate font-mono text-muted-foreground`,title:e,children:pm(e)}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono`,children:v(t)}),(0,Z.jsx)(Y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>g(e),children:r(`common:action.remove`)})]}),(0,Z.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 gap-2 sm:grid-cols-3`,children:[(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningModeFor`,{key:e}),value:t.modelRuntime?.reasoning?.mode??``,onChange:t=>_(e,`mode`,t.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:mm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningEffortFor`,{key:e}),value:t.modelRuntime?.reasoning?.effort??``,onChange:t=>_(e,`effort`,t.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:hm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))}),(0,Z.jsx)(`select`,{"aria-label":r(`settings:agent.routingReasoningPreserveFor`,{key:e}),value:t.modelRuntime?.reasoning?.preserve===void 0?``:t.modelRuntime.reasoning.preserve?`on`:`off`,onChange:t=>_(e,`preserve`,t.target.value),className:`h-8 min-w-0 rounded-md border bg-background px-2 text-xs`,children:gm.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value||`inherit`))})]})]},e))})]})}var xm=[`off`,`low`,`medium`,`high`,`all`],Sm={off:`bg-muted-foreground`,low:`bg-success`,medium:`bg-warning`,high:`bg-warning ring-2 ring-warning/25`,all:`bg-destructive`},Cm={off:`settings:brain.riskCopy.off`,low:`settings:brain.riskCopy.low`,medium:`settings:brain.riskCopy.medium`,high:`settings:brain.riskCopy.high`,all:`settings:brain.riskCopy.all`},wm=[`executor`,`skeptic`,`auditor`];function Tm(e){return e&&e.length>0?e.map(e=>({id:e.id,name:e.name,description:e.description})):wm.map(e=>({id:e,name:e}))}var Em=[{value:`default`,labelKey:`settings:brainOpt.default15s`},{value:`5000`,label:`5s`},{value:`10000`,label:`10s`},{value:`20000`,label:`20s`},{value:`30000`,label:`30s`},{value:`60000`,label:`60s`}],Dm=[{value:`off`,labelKey:`settings:brainOpt.waitForever`},{value:`30000`,label:`30s`},{value:`60000`,label:`1m`},{value:`120000`,label:`2m`},{value:`300000`,label:`5m`}],Om=[{value:`default`,labelKey:`settings:brainOpt.defaultHalf`},{value:`0.34`,label:`1/3`},{value:`0.5`,label:`1/2`},{value:`0.67`,label:`2/3`},{value:`0.75`,label:`3/4`},{value:`1`,labelKey:`settings:brainOpt.all`}],km=[{value:`100`,label:`100`},{value:`200`,labelKey:`settings:brainOpt.n200Default`},{value:`400`,label:`400`},{value:`800`,label:`800`},{value:`1600`,label:`1600`}],Am=[{value:`0`,labelKey:`settings:brainOpt.offDefault`},{value:`0.3`,label:`0.3`},{value:`0.5`,label:`0.5`},{value:`0.7`,label:`0.7`},{value:`0.9`,label:`0.9`}],jm=[{value:`10`,label:`10`},{value:`20`,labelKey:`settings:brainOpt.n20Default`},{value:`50`,label:`50`},{value:`100`,label:`100`}],Mm=[{value:`60000`,label:`1m`},{value:`300000`,labelKey:`settings:brainOpt.m5Default`},{value:`900000`,label:`15m`},{value:`3600000`,label:`1h`}],Nm=[{value:`50`,label:`50`},{value:`200`,labelKey:`settings:brainOpt.n200Default`},{value:`500`,label:`500`},{value:`1000`,label:`1000`}],Pm=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`10000`,label:`10s`},{value:`20000`,label:`20s`},{value:`30000`,label:`30s`},{value:`60000`,label:`60s`}],Fm=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`1`,labelKey:`settings:brainOpt.oneSerial`},{value:`2`,label:`2`},{value:`3`,label:`3`},{value:`5`,label:`5`}],Im=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`500`,label:`500`},{value:`1000`,label:`1000`},{value:`2000`,label:`2000`},{value:`4000`,label:`4000`},{value:`8000`,label:`8000`}],Lm=[{value:`default`,labelKey:`settings:brainOpt.default`},{value:`200`,label:`200`},{value:`400`,label:`400`},{value:`800`,label:`800`},{value:`1600`,label:`1600`}],Rm=[{value:`default`,labelKey:`settings:brainOpt.default500`},{value:`100`,label:`100`},{value:`500`,label:`500`},{value:`1000`,label:`1000`},{value:`5000`,label:`5000`}],zm=[{value:`default`,labelKey:`settings:brainOpt.default10m`},{value:`120000`,label:`2m`},{value:`600000`,label:`10m`},{value:`1800000`,label:`30m`},{value:`3600000`,label:`1h`}];function Bm(e,t){return e.some(e=>e.value===t)?e:[...e,{value:t,label:t}]}function Vm(e,t){return e.map(e=>({value:e.value,label:e.labelKey?t(e.labelKey):e.label??e.value}))}function Hm(e){return e===void 0?`default`:String(e)}function Um({level:e}){return(0,Z.jsx)(`span`,{className:U(`inline-block h-2.5 w-2.5 rounded-full`,Sm[e])})}function Wm(e){return e.provider?`${e.provider}/${e.model}`:e.model}var Gm={pool:{title:`settings:brain.pickPoolTitle`,hint:`settings:brain.pickPoolHint`},voter:{title:`settings:brain.pickVoterTitle`,hint:`settings:brain.pickVoterHint`},judge:{title:`settings:brain.pickJudgeTitle`,hint:`settings:brain.pickJudgeHint`}};function Km(){let{t:e}=R(),{client:t}=zr(),[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)(!0),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(null);(0,X.useEffect)(()=>{t.send({type:`brain.status`}),t.send({type:`brain.config.get`})},[t]),(0,X.useEffect)(()=>{let n=t.on(`brain.status`,e=>{let t=e.payload,n=Date.now();a(t.log.slice(-10).map(e=>{let t=Math.max(0,Math.round((n-e.at)/1e3)),r=t<60?`${t}s`:t<3600?`${Math.round(t/60)}m`:`${Math.round(t/3600)}h`;return{kind:e.kind,question:e.question,outcome:e.outcome,age:r}})),s(!1)}),i=t.on(`brain.config`,t=>{let n=t.payload;r(n.config),d(n.persisted?null:n.error??e(`settings:brain.persistError`)),l(!1),s(!1)});return()=>{n(),i()}},[t,e]);let m=(0,X.useCallback)(e=>{l(!0),t.send({type:`brain.config.set`,payload:{patch:e}})},[t]),h=(0,X.useCallback)(e=>{r(t=>t&&{...t,maxAutoRisk:e}),m({maxAutoRisk:e})},[m]),g=(0,X.useMemo)(()=>n?.council.voters??[],[n]),_=(0,X.useCallback)(e=>{m({council:{voters:e.length>0?e:null}})},[m]),v=(0,X.useMemo)(()=>Tm(n?.personaCatalog),[n?.personaCatalog]),y=xm.includes(n?.maxAutoRisk??``)?n?.maxAutoRisk??`medium`:`medium`,b=(0,X.useCallback)(e=>{if(!n||!f)return;let t=`${e.provider}/${e.model}`;if(f===`pool`){m({models:[...n.models.map(Wm),t]});return}if(f===`judge`){m({council:{judge:t}});return}return _([...g,{provider:e.provider,model:e.model,persona:v[g.length%v.length]?.id??`executor`}]),!0},[n,v,f,m,_,g]);return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsx)(wf,{open:f!==null,mode:`provider-model`,title:f?e(Gm[f].title):``,hint:f?e(Gm[f].hint):void 0,onPick:e=>{if(e.type===`provider-model`)return b(e)},onClose:()=>p(null)}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Yn,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h3`,{className:`text-base font-semibold`,children:e(`settings:brain.heading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.headingHint`)})]}),(o||c)&&(0,Z.jsx)(Bt,{className:`ml-auto h-4 w-4 animate-spin text-muted-foreground`})]}),u&&(0,Z.jsx)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive`,children:u}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.riskHeading`)}),(0,Z.jsx)(`div`,{className:`flex gap-2 flex-wrap`,children:xm.map(e=>(0,Z.jsxs)(Y,{variant:y===e?`default`:`outline`,size:`sm`,className:U(`gap-1.5 text-xs`,y===e&&`shadow-sm`),disabled:c,onClick:()=>h(e),children:[(0,Z.jsx)(Um,{level:e}),e.toUpperCase()]},e))}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(Cm[y])})]}),n&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.escalationHeading`)}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationModeLabel`),hint:e(`settings:brain.escalationModeHint`),value:n.mode,options:[{value:`interactive`,label:e(`settings:brain.optInteractive`)},{value:`headless`,label:e(`settings:brain.optHeadless`)}],onChange:e=>m({mode:e}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationDecisionTimeoutLabel`),hint:e(`settings:brain.escalationDecisionTimeoutHint`),value:n.decisionTimeoutMs?String(n.decisionTimeoutMs):`default`,options:Vm(Em,e),onChange:e=>m({decisionTimeoutMs:e==="default"?null:Number(e)}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationHumanTimeoutLabel`),hint:e(`settings:brain.escalationHumanTimeoutHint`),value:n.humanTimeoutMs?String(n.humanTimeoutMs):`off`,options:Vm(Dm,e),onChange:e=>m({humanTimeoutMs:e===`off`?null:Number(e)}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationTerminalPolicyLabel`),hint:e(`settings:brain.escalationTerminalPolicyHint`),value:n.terminalPolicy,options:[{value:`conservative`,label:e(`settings:brain.optConservative`)},{value:`deny-all`,label:e(`settings:brain.optDenyAll`)},{value:`continue-on-recommended`,label:e(`settings:brain.optContinueRecommended`)}],onChange:e=>m({terminalPolicy:e}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.escalationDecisionLogSizeLabel`),hint:e(`settings:brain.escalationDecisionLogSizeHint`),value:String(n.decisionLogMaxEntries),options:Vm(Bm(jm,String(n.decisionLogMaxEntries)),e),onChange:e=>m({decisionLogMaxEntries:Number(e)}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.rulesHeading`)}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px]`,children:e(`settings:brain.rulesConfigured`,{count:n.rules.length})})]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.rulesBody`)}),n.rules.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1`,children:n.rules.map((t,n)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsxs)(`span`,{className:`text-muted-foreground w-4 shrink-0`,children:[n+1,`.`]}),(0,Z.jsx)(`span`,{className:`flex-1 truncate font-mono`,children:t.id}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px] shrink-0`,children:t.then.action}),t.enabled===!1&&(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px] shrink-0`,children:e(`settings:brain.rulesOff`)})]},`${t.id}-${n}`))}),n.ruleErrors.length>0&&(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-warning/40 bg-warning/10 px-2 py-1.5`,children:[(0,Z.jsx)(`span`,{className:`text-xs font-medium text-warning`,children:e(`settings:brain.rulesDropped`,{count:n.ruleErrors.length})}),n.ruleErrors.map(e=>(0,Z.jsx)(`p`,{className:`text-xs text-warning`,children:e},e))]})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.heuristicsHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.heuristicsBody`)}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsLowRiskLabel`),hint:e(`settings:brain.heuristicsLowRiskHint`),value:n.heuristics.lowRiskAutoAnswer,onChange:()=>m({heuristics:{lowRiskAutoAnswer:!n.heuristics.lowRiskAutoAnswer}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsBlockedLabel`),hint:e(`settings:brain.heuristicsBlockedHint`),value:n.heuristics.blockedResolved,onChange:()=>m({heuristics:{blockedResolved:!n.heuristics.blockedResolved}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsDeadlockLabel`),hint:e(`settings:brain.heuristicsDeadlockHint`),value:n.heuristics.deadlockSkip,onChange:()=>m({heuristics:{deadlockSkip:!n.heuristics.deadlockSkip}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsRetryLabel`),hint:e(`settings:brain.heuristicsRetryHint`),value:n.heuristics.retryExhausted,onChange:()=>m({heuristics:{retryExhausted:!n.heuristics.retryExhausted}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.heuristicsPingLabel`),hint:e(`settings:brain.heuristicsPingHint`),value:n.heuristics.continuePing,onChange:()=>m({heuristics:{continuePing:!n.heuristics.continuePing}}),disabled:c}),n.heuristics.blockedResolvedMarkers&&n.heuristics.blockedResolvedMarkers.length>0&&(0,Z.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:e(`settings:brain.heuristicsMarkers`,{markers:n.heuristics.blockedResolvedMarkers.join(`, `)})})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.qualityHeading`)}),n.circuit&&(0,Z.jsx)(Xf,{variant:n.circuit.state===`closed`?`outline`:`default`,className:`text-[10px]`,children:e(`settings:brain.qualityCircuit`,{state:n.circuit.state,count:n.circuit.consecutiveFailures})})]}),(0,Z.jsx)(Q,{label:e(`settings:brain.qualityResponseBudgetLabel`),hint:e(`settings:brain.qualityResponseBudgetHint`),value:String(n.llm.maxTokens),options:Vm(Bm(km,String(n.llm.maxTokens)),e),onChange:e=>m({llm:{maxTokens:Number(e)}}),disabled:c}),(0,Z.jsx)($,{label:e(`settings:brain.qualityRejectLabel`),hint:e(`settings:brain.qualityRejectHint`),value:n.llm.rejectUncertain,onChange:()=>m({llm:{rejectUncertain:!n.llm.rejectUncertain}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.qualityMinConfidenceLabel`),hint:e(`settings:brain.qualityMinConfidenceHint`),value:String(n.llm.minConfidence),options:Vm(Bm(Am,String(n.llm.minConfidence)),e),onChange:e=>m({llm:{minConfidence:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.qualityDenyTerminalLabel`),hint:e(`settings:brain.qualityDenyTerminalHint`),value:n.llm.denyIsTerminal,options:[{value:`never`,label:e(`settings:brain.optNeverDefault`)},{value:`when-decided`,label:e(`settings:brain.optWhenDecided`)},{value:`always`,label:e(`settings:brain.optAlways`)}],onChange:e=>m({llm:{denyIsTerminal:e}}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.traceHeading`)}),(0,Z.jsx)($,{label:e(`settings:brain.traceRecordLabel`),hint:e(`settings:brain.traceRecordHint`),value:n.trace.enabled,onChange:()=>m({trace:{enabled:!n.trace.enabled}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.traceContentLabel`),hint:e(`settings:brain.traceContentHint`),value:n.trace.content,options:[{value:`full`,label:e(`settings:brain.optFullDefault`)},{value:`redacted`,label:e(`settings:brain.optRedacted`)},{value:`none`,label:e(`settings:brain.optMetadataOnly`)}],onChange:e=>m({trace:{content:e}}),disabled:c}),n.trace.path&&(0,Z.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:n.trace.path})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.cacheHeading`)}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px]`,children:e(`settings:brain.cacheStats`,{hits:n.cache.hits,misses:n.cache.misses,size:n.cache.size})})]}),(0,Z.jsx)($,{label:e(`settings:brain.cacheReplayLabel`),hint:e(`settings:brain.cacheReplayHint`),value:n.cache.enabled,onChange:()=>m({cache:{enabled:!n.cache.enabled}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.cacheLifetimeLabel`),hint:e(`settings:brain.cacheLifetimeHint`),value:String(n.cache.ttlMs),options:Vm(Bm(Mm,String(n.cache.ttlMs)),e),onChange:e=>m({cache:{ttlMs:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.cacheMaxEntriesLabel`),hint:e(`settings:brain.cacheMaxEntriesHint`),value:String(n.cache.maxEntries),options:Vm(Bm(Nm,String(n.cache.maxEntries)),e),onChange:e=>m({cache:{maxEntries:Number(e)}}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.monitorHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.monitorBody`)}),(0,Z.jsx)($,{label:e(`settings:brain.monitorWatchLabel`),hint:e(`settings:brain.monitorWatchHint`),value:n.monitor.enabled!==!1,onChange:()=>m({monitor:{enabled:n.monitor.enabled===!1}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.monitorPolicyLabel`),hint:e(`settings:brain.monitorPolicyHint`),value:n.monitor.policy??`llm`,options:[{value:`llm`,label:e(`settings:brain.optConsultBrain`)},{value:`steer`,label:e(`settings:brain.optAlwaysSteer`)},{value:`observe`,label:e(`settings:brain.optObserveOnly`)}],onChange:e=>m({monitor:{policy:e}}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.modelsHeading`)}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px]`,children:n.usingSessionModel?e(`settings:brain.modelsSessionBadge`):e(`settings:brain.modelsResolvedBadge`,{resolved:n.poolLabels.length,total:n.models.length})})]}),(0,Z.jsx)($,{label:e(`settings:brain.modelsUseSessionLabel`),hint:e(`settings:brain.modelsUseSessionHint`),value:n.usingSessionModel,onChange:()=>{n.usingSessionModel||m({models:null})},disabled:c}),n.models.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1`,children:n.models.map((e,t)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsxs)(`span`,{className:`text-muted-foreground w-4 shrink-0`,children:[t+1,`.`]}),(0,Z.jsx)(`span`,{className:`flex-1 truncate font-mono`,children:Wm(e)}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,disabled:c||t===0,onClick:()=>{let e=n.models.map(Wm),r=e.splice(t,1)[0];r&&e.splice(t-1,0,r),m({models:e})},children:(0,Z.jsx)(Nt,{className:`h-3 w-3`})}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,disabled:c||t===n.models.length-1,onClick:()=>{let e=n.models.map(Wm),r=e.splice(t,1)[0];r&&e.splice(t+1,0,r),m({models:e})},children:(0,Z.jsx)(pr,{className:`h-3 w-3`})}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 text-destructive`,disabled:c,onClick:()=>{let e=n.models.map(Wm).filter((e,n)=>n!==t);m({models:e.length>0?e:null})},children:(0,Z.jsx)(Xt,{className:`h-3 w-3`})})]},`${Wm(e)}-${t}`))}),(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,className:`gap-1.5 text-xs`,disabled:c,onClick:()=>p(`pool`),children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),` `,e(`settings:brain.modelsAddModel`)]}),n.models.length>1&&(0,Z.jsx)(Q,{label:e(`settings:brain.modelsPoolStrategyLabel`),hint:e(`settings:brain.modelsPoolStrategyHint`),value:n.strategy,options:[{value:`fallback`,label:e(`settings:brain.optFallback`)},{value:`round-robin`,label:e(`settings:brain.optRoundRobin`)}],onChange:e=>m({strategy:e}),disabled:c})]}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.councilHeading`)}),(0,Z.jsx)(Xf,{variant:n.council.enabled?`default`:`outline`,className:`text-[10px]`,children:n.council.enabled?e(`settings:brain.councilConvened`):e(`settings:brain.councilDisabled`)})]}),(0,Z.jsx)($,{label:e(`settings:brain.councilEnableLabel`),hint:e(`settings:brain.councilEnableHint`),value:n.council.enabled,onChange:()=>m({council:{enabled:!n.council.enabled}}),disabled:c}),n.council.enabled&&n.councilLabels.length>0&&g.length===0&&(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings:brain.councilSeatsDerived`,{seats:n.councilLabels.join(`, `)})}),g.length>0&&(0,Z.jsx)(`div`,{className:`space-y-1`,children:g.map((t,n)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsx)(`span`,{className:`flex-1 truncate font-mono`,children:Wm(t)}),(0,Z.jsxs)(`select`,{value:t.persona??v[n%v.length]?.id??``,onChange:e=>_(g.map((t,r)=>r===n?{...t,persona:e.target.value}:t)),className:`h-6 rounded border bg-background px-1 text-[10px]`,title:v.find(e=>e.id===t.persona)?.description??e(`settings:brain.councilCustomLens`),children:[v.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id)),t.persona&&!v.some(e=>e.id===t.persona)&&(0,Z.jsx)(`option`,{value:t.persona,children:e(`settings:brain.councilCustomOption`,{persona:t.persona})})]}),(0,Z.jsx)(Y,{variant:t.veto?`default`:`outline`,size:`sm`,className:`h-6 px-1.5 text-[10px]`,disabled:c,onClick:()=>_(g.map((e,t)=>t===n?{...e,veto:!e.veto}:e)),children:e(`settings:brain.councilVeto`)}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 text-destructive`,disabled:c,onClick:()=>_(g.filter((e,t)=>t!==n)),children:(0,Z.jsx)(Xt,{className:`h-3 w-3`})})]},`${Wm(t)}-${n}`))}),(0,Z.jsxs)(Y,{variant:`outline`,size:`sm`,className:`gap-1.5 text-xs`,disabled:c,onClick:()=>p(`voter`),children:[(0,Z.jsx)(mr,{className:`h-3.5 w-3.5`}),` `,e(`settings:brain.councilAddVoter`)]}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilRiskFloorLabel`),hint:e(`settings:brain.councilRiskFloorHint`),value:n.council.minRisk,options:[{value:`medium`,label:e(`settings:brain.optMediumPlus`)},{value:`high`,label:e(`settings:brain.optHighPlus`)},{value:`critical`,label:e(`settings:brain.optCriticalOnly`)}],onChange:e=>m({council:{minRisk:e}}),disabled:c}),(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3 py-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`text-sm font-medium`,children:e(`settings:brain.councilJudge`)}),(0,Z.jsx)(`div`,{className:`mt-0.5 text-xs text-muted-foreground`,children:e(`settings:brain.councilJudgeDesc`)}),!n.council.judge&&n.judgeLabel&&(0,Z.jsxs)(`div`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:[e(`settings:brain.councilResolved`,{model:n.judgeLabel}),n.judgeIsVoter&&(0,Z.jsx)(`span`,{className:`ml-1 font-sans text-warning`,children:e(`settings:brain.councilAlsoVoter`)})]})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`max-w-[180px] truncate font-mono text-xs`,children:n.council.judge?Wm(n.council.judge):e(`settings:brain.councilAuto`)}),(0,Z.jsx)(Y,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,disabled:c,onClick:()=>p(`judge`),children:e(`settings:brain.councilPick`)}),n.council.judge&&(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,className:`h-7 text-xs`,disabled:c,onClick:()=>m({council:{judge:null}}),children:e(`settings:brain.councilAutoReset`)})]})]}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilQuorumLabel`),hint:e(`settings:brain.councilQuorumHint`),value:n.council.quorum===void 0?`default`:String(n.council.quorum),options:Vm(Om,e),onChange:e=>m({council:{quorum:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilApprovalLabel`),hint:e(`settings:brain.councilApprovalHint`),value:n.council.approval===void 0?`default`:String(n.council.approval),options:Vm(Om,e),onChange:e=>m({council:{approval:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilPerSeatTimeoutLabel`),hint:e(`settings:brain.councilPerSeatTimeoutHint`),value:Hm(n.council.perCallTimeoutMs),options:Vm(Bm(Pm,Hm(n.council.perCallTimeoutMs)),e),onChange:e=>m({council:{perCallTimeoutMs:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilMaxConcurrencyLabel`),hint:e(`settings:brain.councilMaxConcurrencyHint`),value:Hm(n.council.maxConcurrency),options:Vm(Bm(Fm,Hm(n.council.maxConcurrency)),e),onChange:e=>m({council:{maxConcurrency:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilDistinctnessLabel`),hint:e(`settings:brain.councilDistinctnessHint`),value:n.council.distinctness,options:[{value:`none`,label:e(`settings:brain.optNoneDefault`)},{value:`model`,label:e(`settings:brain.optDistinctModels`)},{value:`provider`,label:e(`settings:brain.optDistinctProviders`)}],onChange:e=>m({council:{distinctness:e}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilVoterBudgetLabel`),hint:e(`settings:brain.councilVoterBudgetHint`),value:Hm(n.council.voterMaxTokens),options:Vm(Bm(Im,Hm(n.council.voterMaxTokens)),e),onChange:e=>m({council:{voterMaxTokens:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.councilJudgeBudgetLabel`),hint:e(`settings:brain.councilJudgeBudgetHint`),value:Hm(n.council.judgeMaxTokens),options:Vm(Bm(Lm,Hm(n.council.judgeMaxTokens)),e),onChange:e=>m({council:{judgeMaxTokens:e==="default"?null:Number(e)}}),disabled:c}),n.council.seats.length>0&&(0,Z.jsxs)(`p`,{className:`truncate text-xs text-muted-foreground`,children:[e(`settings:brain.councilSeatTemplate`),` `,n.council.seats.map(t=>t.veto?`${t.persona} (${e(`settings:brain.councilVeto`)})`:t.persona).join(`, `)]})]}),(0,Z.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border/70 bg-muted/20 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.ledgerHeading`)}),(0,Z.jsx)($,{label:e(`settings:brain.ledgerRecordLabel`),hint:e(`settings:brain.ledgerRecordHint`),value:n.ledger.enabled,onChange:()=>m({ledger:{enabled:!n.ledger.enabled}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.ledgerAutoDenyLabel`),hint:e(`settings:brain.ledgerAutoDenyHint`),value:n.ledger.autoDenyAfterFailures===void 0?`default`:String(n.ledger.autoDenyAfterFailures),options:[{value:`default`,label:e(`settings:brain.optDefault3`)},{value:`0`,label:e(`settings:brain.optOff`)},{value:`2`,label:`2`},{value:`3`,label:`3`},{value:`5`,label:`5`}],onChange:e=>m({ledger:{autoDenyAfterFailures:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.ledgerMemoryEntriesLabel`),hint:e(`settings:brain.ledgerMemoryEntriesHint`),value:Hm(n.ledger.maxMemoryEntries),options:Vm(Bm(Rm,Hm(n.ledger.maxMemoryEntries)),e),onChange:e=>m({ledger:{maxMemoryEntries:e==="default"?null:Number(e)}}),disabled:c}),(0,Z.jsx)(Q,{label:e(`settings:brain.ledgerRetryWindowLabel`),hint:e(`settings:brain.ledgerRetryWindowHint`),value:Hm(n.ledger.interventionRetryWindowMs),options:Vm(Bm(zm,Hm(n.ledger.interventionRetryWindowMs)),e),onChange:e=>m({ledger:{interventionRetryWindowMs:e==="default"?null:Number(e)}}),disabled:c}),n.ledger.path&&(0,Z.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:n.ledger.path})]})]}),(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-card/70 p-3`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings:brain.recentHeading`,{count:i.length})}),(0,Z.jsx)(`div`,{className:`space-y-1 max-h-[300px] overflow-y-auto`,children:i.length===0?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground py-2`,children:e(`settings:brain.recentEmpty`)}):i.map(e=>(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border/50 bg-background/40 px-2 py-1.5 text-xs`,children:[(0,Z.jsx)(`span`,{className:`text-muted-foreground shrink-0 w-8`,children:e.age}),(0,Z.jsx)(Xf,{variant:`outline`,className:`text-[10px] shrink-0`,children:e.kind}),(0,Z.jsx)(`span`,{className:`flex-1 truncate`,children:e.question}),e.outcome&&(0,Z.jsx)(`span`,{className:`text-muted-foreground shrink-0 italic`,children:e.outcome})]},`${e.age}-${e.kind}-${e.question.slice(0,32)}`))})]})]})}function qm(){let{t:e}=R();return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(ar,{className:`h-5 w-5 text-info`}),(0,Z.jsx)(`h3`,{className:`text-lg font-semibold`,children:e(`activity:shadow.shadowAgent`)})]}),(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`activity:shadow.theShadowAgentMonitorsAllFleet`)}),(0,Z.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Start and stop it from the chat with`,` `,(0,Z.jsx)(`code`,{className:`font-mono text-xs`,children:`/shadow start`}),` and`,` `,(0,Z.jsx)(`code`,{className:`font-mono text-xs`,children:`/shadow stop`}),`. This panel cannot control it yet.`]})]})}function Jm({disabled:e,direct:t}){let n=e?`bg-muted-foreground`:t?`bg-success`:`bg-info`,r=e?`disabled`:t?`direct provider tool`:`lazy catalog tool`;return(0,Z.jsx)(`span`,{className:`inline-block h-2 w-2 shrink-0 rounded-full ${n}`,title:r})}function Ym({tool:e,onToggle:t,busy:n}){let{t:r}=R(),[i,a]=(0,X.useState)(!1);return(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border/70 bg-card/70 p-3 transition-colors hover:bg-card`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 sm:flex-row sm:items-start`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-2`,children:[(0,Z.jsx)(Jm,{disabled:e.disabled,direct:e.direct}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`code`,{className:`block truncate text-sm font-mono font-semibold`,title:e.name,children:e.name}),(0,Z.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-1.5`,children:[(0,Z.jsx)(Xf,{variant:`outline`,className:`px-1.5 text-[10px]`,children:e.permission}),(0,Z.jsx)(Xf,{variant:`outline`,className:`px-1.5 text-[10px]`,children:e.mutating?`mutating`:`read-only`}),(0,Z.jsx)(Xf,{variant:`outline`,className:`px-1.5 text-[10px]`,children:e.disabled?`disabled`:e.direct?`direct`:`lazy`}),(0,Z.jsx)(`span`,{className:`truncate text-[11px] text-muted-foreground`,title:e.owner,children:e.owner})]})]})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1`,children:[(0,Z.jsxs)(Y,{variant:e.disabled?`default`:`secondary`,size:`sm`,className:`h-7 gap-1 px-2 text-xs`,onClick:t,disabled:n,children:[n?(0,Z.jsx)(Bt,{className:`h-3 w-3 animate-spin`}):e.disabled?(0,Z.jsx)(x,{className:`h-3 w-3`}):(0,Z.jsx)(nt,{className:`h-3 w-3`}),e.disabled?`Enable`:`Disable`]}),(0,Z.jsx)(`button`,{type:`button`,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:()=>a(!i),"aria-label":i?`Collapse`:`Expand`,children:(0,Z.jsx)(Zt,{className:`h-4 w-4 transition-transform ${i?`rotate-180`:``}`})})]})]}),i&&(0,Z.jsxs)(`div`,{className:`space-y-1 border-t border-border/60 pt-2 text-xs text-muted-foreground sm:ml-4`,children:[(0,Z.jsx)(`p`,{children:e.description}),e.params.length>0&&(0,Z.jsxs)(`p`,{children:[r(`activity:toolsSec.params`),` `,(0,Z.jsx)(`code`,{className:`break-all font-mono`,children:e.params.join(`, `)})]})]})]})}function Xm(){let{t:e}=R(),{client:t}=zr(),[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(!0),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(new Set);(0,X.useEffect)(()=>{let e=t.on(`tools.list`,e=>{let t=e.payload;r(t.tools),a(!1)}),n=e=>{if(e.type===`tool.disabled`||e.type===`tool.enabled`){let n=e.payload;l(e=>{let t=new Set(e);return t.delete(n.name),t}),n.ok?t.send({type:`tools.list`},{echoToChat:!1}):J.error(`Tool "${n.name}" ${e.type===`tool.disabled`?`disable`:`enable`} failed.`)}},i=t.on(`tool.disabled`,n),o=t.on(`tool.enabled`,n);return()=>{e(),i(),o()}},[t]),(0,X.useEffect)(()=>{t.send({type:`tools.list`},{echoToChat:!1})},[t]);let u=(0,X.useCallback)((e,n)=>{l(t=>new Set(t).add(e)),t.send({type:n?`tool.enable`:`tool.disable`,payload:{name:e}})},[t]),d=o?n.filter(e=>e.name.toLowerCase().includes(o.toLowerCase())||e.owner.toLowerCase().includes(o.toLowerCase())):n,f=n.filter(e=>!e.disabled&&e.direct).length,p=n.filter(e=>!e.disabled&&!e.direct).length,m=n.filter(e=>e.disabled).length;return(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(tn,{className:`h-5 w-5`})}),(0,Z.jsx)(`h3`,{className:`text-base font-semibold`,children:e(`activity:toolsSec.tools`)})]}),!i&&(0,Z.jsxs)(`span`,{className:`rounded-md border border-border/60 bg-muted/30 px-2 py-1 text-xs text-muted-foreground sm:ml-auto`,children:[f,` direct · `,p,` lazy · `,m,` disabled · `,n.length,` `,`total`]})]}),(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(zt,{className:`absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground`}),(0,Z.jsx)(Ri,{placeholder:e(`activity:toolsSec.filterToolsByNameOrOwner`),value:o,onChange:e=>s(e.target.value),className:`pl-8 h-9 text-sm`})]}),i?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground gap-2`,children:[(0,Z.jsx)(Bt,{className:`h-4 w-4 animate-spin`}),e(`activity:toolsSec.loadingTools`)]}):d.length===0?(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground py-4 text-center`,children:o?`No tools matching "${o}".`:`No tools registered.`}):(0,Z.jsxs)(`div`,{className:`relative overflow-hidden rounded-lg border border-border/70 bg-background/35 shadow-inner`,children:[(0,Z.jsx)(`ul`,{className:`max-h-[min(58dvh,660px)] space-y-2 overflow-y-scroll p-2 pr-3 [scrollbar-gutter:stable]`,"aria-label":e(`activity:toolsSec.toolsList`),children:d.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(Ym,{tool:e,onToggle:()=>u(e.name,e.disabled),busy:c.has(e.name)})},e.name))}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 top-0 h-4 bg-gradient-to-b from-background/90 to-transparent`}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-gradient-to-t from-background/95 to-transparent`})]})]})}function Zm(){let{t:e}=R();return(0,Z.jsxs)(`div`,{className:`space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 pb-3 border-b border-border/50`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(ar,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`settings:security.brainHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`settings:security.brainHint`)})]})]}),(0,Z.jsx)(Km,{})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 pb-3 border-b border-border/50`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(ar,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`settings:security.shadowHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`settings:security.shadowHint`)})]})]}),(0,Z.jsx)(qm,{})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 pb-3 border-b border-border/50`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(ar,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`settings:security.toolsHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`settings:security.toolsHint`)})]})]}),(0,Z.jsx)(Xm,{})]})]})}var Qm=[{id:`general`,icon:(0,Z.jsx)(Ce,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.general`,descKey:`settings:tabs.generalDesc`},{id:`provider`,icon:(0,Z.jsx)(g,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.provider`,descKey:`settings:tabs.providerDesc`},{id:`connection`,icon:(0,Z.jsx)(gn,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.connection`,descKey:`settings:tabs.connectionDesc`},{id:`agent`,icon:(0,Z.jsx)(qt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.agent`,descKey:`settings:tabs.agentDesc`},{id:`execution`,icon:(0,Z.jsx)(sr,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.execution`,descKey:`settings:tabs.executionDesc`},{id:`fallbacks`,icon:(0,Z.jsx)(Ft,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.fallbacks`,descKey:`settings:tabs.fallbacksDesc`},{id:`routing`,icon:(0,Z.jsx)(Kt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.routing`,descKey:`settings:tabs.routingDesc`},{id:`fleet`,icon:(0,Z.jsx)(wr,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.fleet`,descKey:`settings:tabs.fleetDesc`},{id:`integrations`,icon:(0,Z.jsx)(yr,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.integrations`,descKey:`settings:tabs.integrationsDesc`},{id:`chimera`,icon:(0,Z.jsx)(Yn,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.chimera`,descKey:`settings:tabs.chimeraDesc`},{id:`context`,icon:(0,Z.jsx)(jt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.context`,descKey:`settings:tabs.contextDesc`},{id:`logs`,icon:(0,Z.jsx)(Lt,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.logs`,descKey:`settings:tabs.logsDesc`},{id:`security`,icon:(0,Z.jsx)(he,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.security`,descKey:`settings:tabs.securityDesc`},{id:`display`,icon:(0,Z.jsx)(Ce,{className:`h-3.5 w-3.5`}),labelKey:`settings:tabs.display`,descKey:`settings:tabs.displayDesc`}];function $m(){let{settingsActiveTab:e,setSettingsActiveTab:t}=K(je(e=>({settingsActiveTab:e.settingsActiveTab,setSettingsActiveTab:e.setSettingsActiveTab}))),n=$d(`settings`),r=(0,X.useRef)(!1),[i,a]=(0,X.useState)(!1),{provider:o,model:s,setProvider:c,setModel:l,wsConnected:d}=G(je(e=>({provider:e.provider,model:e.model,setProvider:e.setProvider,setModel:e.setModel,wsConnected:e.wsConnected}))),f=zr(),p=f.client,{updatePrefs:m,switchAutonomy:h}=f,g=B(),{t:_}=R(),v=Ki(!0),y=(0,X.useCallback)((e,t)=>{g.set({[e]:t}),m({[e]:t})},[g,m]),[b,x]=(0,X.useState)([]),[S,C]=(0,X.useState)({}),[w,T]=(0,X.useState)([]),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(!1),[A,j]=(0,X.useState)(!1),[ee,M]=(0,X.useState)(`catalog`),[te,N]=(0,X.useState)(``),[P,ne]=(0,X.useState)(!1),[F,I]=(0,X.useState)(!1),re=(0,X.useCallback)(()=>{g.reset(),I(!1),window.location.reload()},[g]),ie=b.find(e=>e.id===o),ae=Qm.find(t=>t.id===e);(0,X.useEffect)(()=>{let e=e=>{if(e.type===`provider.catalog`){let t=e.payload;x(t.providers.sort((e,t)=>e.id.localeCompare(t.id))),D(!1)}},t=e=>{if(e.type===`provider.models`){let t=e.payload;C(e=>({...e,[t.provider]:t.models})),k(!1)}},n=e=>{if(e.type===`providers.saved`){let t=e.payload.providers.sort((e,t)=>e.id.localeCompare(t.id));T(t),j(!1),t.length>0&&M(`saved`)}};if(!d||!p)return;let r=p.on(`provider.catalog`,e),i=p.on(`provider.models`,t),a=p.on(`providers.saved`,n);return D(!0),j(!0),p.listProviders(),p.listSavedProviders(),()=>{r?.(),i?.(),a?.()}},[d,p]);let oe=(0,X.useCallback)(e=>{c(e),S[e]||(k(!0),f.listProviderModels?.(e))},[S,c,f]),se=(0,X.useCallback)(async e=>{if(r.current)return;let t=G.getState().model,n=G.getState().provider;if(!(!n||e===t)){r.current=!0,a(!0),l(e);try{J.info(z.t(`settings:toast.switchingTo`,{provider:n,model:e}));let r=await f.switchModel?.(n,e);r?.success?J.success(z.t(r.runActive?`settings:toast.modelSwitchedRunActive`:`settings:toast.modelSwitchedNextRequest`,{from:`${n} / ${t}`,to:`${n} / ${e}`})):(l(t),J.error(r?.message??z.t(`settings:toast.modelSwitchTimeout`)))}finally{r.current=!1,a(!1)}}},[l,f]),L=(0,X.useCallback)((e,t,n)=>{f.addKey?.(e,t,n)},[f]),ce=(0,X.useCallback)((e,t)=>{f.deleteKey?.(e,t)},[f]),le=(0,X.useCallback)((e,t)=>{f.setActiveKey?.(e,t)},[f]),ue=(0,X.useCallback)((e,t,n,r,i,a)=>{f.addProvider?.(e,t,n,r,i,a)},[f]),de=(0,X.useCallback)(e=>{f.removeProvider?.(e)},[f]),fe=(0,X.useCallback)((e,t)=>{f.client.updateProvider({id:e,models:[t]}),e===G.getState().provider&&l(t)},[l,f.client]);return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-gradient-to-b from-background/90 via-background/60 to-background/80`,children:[(0,Z.jsxs)(`header`,{className:`flex items-center justify-between px-4 py-3 border-b border-border/60 bg-card/60 backdrop-blur-xl shrink-0 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Mn,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{className:`text-lg font-semibold bg-gradient-to-r from-foreground to-foreground/70 bg-clip-text text-transparent`,children:_(`settings:title`)}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-[11px] text-muted-foreground`,children:o&&s?`${o} / ${s}`:_(`settings:subtitle`)})]})]}),(0,Z.jsx)(Y,{variant:`ghost`,size:`icon`,onClick:()=>q(`chat`),children:(0,Z.jsx)(Xt,{className:`h-4 w-4`})}),(0,Z.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:()=>I(!0),children:_(`settings:resetLabel`)})]}),(0,Z.jsx)(qa,{className:`min-h-0 flex-1`,ref:n,children:(0,Z.jsx)(`div`,{className:`mx-auto max-w-7xl p-4 sm:p-6`,children:(0,Z.jsxs)(Ya,{value:e,onValueChange:t,className:`grid min-h-[calc(100dvh-9rem)] gap-3 lg:grid-cols-[13.5rem_minmax(0,1fr)] lg:gap-5`,children:[(0,Z.jsxs)(`div`,{className:`relative min-w-0`,children:[(0,Z.jsx)(Xa,{className:`flex h-auto w-full justify-start gap-0.5 overflow-x-scroll rounded-lg border border-border/60 bg-card/60 p-1.5 shadow-sm [scrollbar-gutter:stable] lg:sticky lg:top-4 lg:flex-col lg:overflow-visible lg:rounded-xl lg:bg-card/60 lg:p-2`,children:Qm.map(e=>(0,Z.jsxs)(Za,{value:e.id,className:`h-9 shrink-0 gap-2.5 rounded-md px-3 text-xs scroll-mt-2 data-[state=active]:bg-primary/10 data-[state=active]:text-primary data-[state=active]:shadow-sm lg:w-full lg:justify-start lg:px-3`,children:[(0,Z.jsx)(`span`,{className:`shrink-0`,children:e.icon}),(0,Z.jsx)(`span`,{className:`truncate`,children:_(e.labelKey)})]},e.id))}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-y-1 left-0 z-10 w-8 rounded-l-lg bg-gradient-to-r from-background via-background/90 to-transparent lg:hidden`}),(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-y-1 right-0 z-10 w-8 rounded-r-lg bg-gradient-to-l from-background via-background/90 to-transparent lg:hidden`})]}),(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-0`,children:[ae?.descKey&&(0,Z.jsxs)(`div`,{className:`mb-4 flex items-start gap-3 rounded-xl border border-border/60 bg-card/50 px-4 py-3`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:ae.icon}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-semibold`,children:_(ae.labelKey)}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:_(ae.descKey)})]})]}),(0,Z.jsx)(Qa,{value:`general`,className:`mt-0`,children:(0,Z.jsx)(Ff,{})}),(0,Z.jsxs)(Qa,{value:`provider`,className:`mt-0 space-y-4`,children:[(0,Z.jsx)(sm,{activeProvider:o,catalogProviders:b,isLoadingCatalog:E,savedProviders:w,isLoadingSaved:A,providerTab:ee,setProviderTab:M,onSelectProvider:oe,onAddKey:L,onDeleteKey:ce,onSetActiveKey:le,onAddProvider:ue,onRemoveProvider:de,onPickProviderModel:fe,ws:f.client,catalogQuery:te,setCatalogQuery:N}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`h3`,{className:`text-sm font-semibold mb-4 flex items-center gap-2`,children:[(0,Z.jsx)(vr,{className:`h-4 w-4 text-muted-foreground`}),_(`settings:model.heading`)]}),(0,Z.jsx)(op,{provider:o,catalogModels:S,currentCatalogProvider:ie,isLoadingModels:O,setIsLoadingModels:k,onModelSelect:se,isSwitching:i,refreshModels:e=>f.listProviderModels?.(e)})]})]}),(0,Z.jsx)(Qa,{value:`connection`,className:`mt-0`,children:(0,Z.jsx)(Pf,{})}),(0,Z.jsxs)(Qa,{value:`agent`,className:`mt-0 space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(u,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:agent.autonomyHeading`)})})]}),(0,Z.jsx)(Q,{label:_(`settings:agent.autonomyModeLabel`),hint:_(`settings:agent.autonomyModeHint`),value:g.autonomy,options:[{value:`off`,label:_(`settings:agent.autonomyModeOff`)},{value:`suggest`,label:_(`settings:agent.autonomyModeSuggest`)},{value:`auto`,label:_(`settings:agent.autonomyModeAuto`)},{value:`eternal`,label:_(`settings:agent.autonomyModeEternal`)},{value:`eternal-parallel`,label:_(`settings:agent.autonomyModeEternalParallel`)}],onChange:e=>{g.set({autonomy:e}),h(e)}}),(0,Z.jsx)(Nf,{label:_(`settings:agent.autonomyDelayMsLabel`),hint:_(`settings:agent.autonomyDelayMsHint`),value:g.autonomyDelayMs,min:0,max:1e4,step:500,unit:`ms`,onChange:e=>y(`autonomyDelayMs`,e)}),(0,Z.jsx)($,{label:_(`settings:agent.yoloLabel`),hint:_(`settings:agent.yoloHint`),value:g.yolo,onChange:()=>y(`yolo`,!g.yolo)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(sr,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:agent.refineHeading`)})})]}),(0,Z.jsx)($,{label:_(`settings:agent.enableRefineLabel`),hint:_(`settings:agent.enableRefineHint`),value:g.enhanceEnabled,onChange:()=>y(`enhanceEnabled`,!g.enhanceEnabled)}),(0,Z.jsx)(Nf,{label:_(`settings:agent.refineDelayLabel`),hint:_(`settings:agent.refineDelayHint`),value:g.enhanceDelayMs,min:3e4,max:12e4,step:15e3,unit:`ms`,onChange:e=>y(`enhanceDelayMs`,e)}),(0,Z.jsx)(Nf,{label:_(`settings:agent.refineCountdownLabel`),hint:_(`settings:agent.refineCountdownHint`),value:g.enhanceCountdownMs,min:1e3,max:1e4,step:1e3,unit:`ms`,onChange:e=>y(`enhanceCountdownMs`,e)}),(0,Z.jsx)(Q,{label:_(`settings:agent.refineLanguageLabel`),hint:_(`settings:agent.refineLanguageHint`),value:g.enhanceLanguage,options:[{value:`original`,label:_(`settings:agent.refineLanguageOriginal`)},{value:`english`,label:_(`settings:agent.refineLanguageEnglish`)}],onChange:e=>y(`enhanceLanguage`,e)}),(0,Z.jsxs)(`div`,{className:`pt-3`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium mb-2`,children:_(`settings:agent.refineHeading`)}),(0,Z.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 rounded-lg border border-border p-3 text-left cursor-pointer hover:bg-muted/50 transition-colors`,onClick:()=>ne(!0),children:[(0,Z.jsx)(`div`,{className:`min-w-0 flex-1`,children:g.refinerFallbackProfile?(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,Z.jsx)(`span`,{className:`text-xs font-mono text-primary bg-primary/10 px-1.5 py-0.5 rounded`,children:g.refinerFallbackProfile}),(0,Z.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[(g.fallbackProfiles[g.refinerFallbackProfile]??[]).slice(0,2).join(` → `),(g.fallbackProfiles[g.refinerFallbackProfile]??[]).length>2?` …`:``]})]}):g.refinerProvider&&g.refinerModel?(0,Z.jsxs)(`span`,{className:`text-xs font-mono`,children:[g.refinerProvider,`/`,g.refinerModel]}):g.refinerProvider?(0,Z.jsxs)(`span`,{className:`text-xs font-mono`,children:[g.refinerProvider,` /`,` `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:_(`activity:index.sessionModel`)})]}):(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:_(`settings:agent.refinerProviderDefault`)})}),(0,Z.jsx)(vr,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})]}),P&&(0,Z.jsx)(wf,{open:P,mode:`both`,title:_(`settings:agent.refineHeading`),hint:_(`settings:agent.refinerProviderHint`),fallbackProfiles:g.fallbackProfiles,clearLabel:_(`common:action.clear`),onPick:e=>{e.type===`clear`?(y(`refinerProvider`,``),y(`refinerModel`,``),y(`refinerFallbackProfile`,``)):e.type===`provider-model`?(y(`refinerProvider`,e.provider),y(`refinerModel`,e.model),y(`refinerFallbackProfile`,``)):e.type===`fallback-profile`&&(y(`refinerProvider`,``),y(`refinerModel`,``),y(`refinerFallbackProfile`,e.name)),ne(!1)},onClose:()=>ne(!1)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(vr,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:agent.reasoningHeading`)})})]}),(0,Z.jsx)(Q,{label:_(`settings:agent.reasoningModeLabel`),hint:_(`settings:agent.reasoningModeHint`),value:g.reasoningMode,options:[{value:`auto`,label:_(`settings:agent.reasoningModeAuto`)},{value:`on`,label:_(`settings:agent.reasoningModeOn`)},{value:`off`,label:_(`settings:agent.reasoningModeOff`)}],onChange:e=>y(`reasoningMode`,e)}),(0,Z.jsx)(Q,{label:_(`settings:agent.reasoningEffortLabel`),hint:_(`settings:agent.reasoningEffortHint`),value:g.reasoningEffort,options:[{value:`none`,label:_(`settings:agent.reasoningEffortNone`)},{value:`minimal`,label:_(`settings:agent.reasoningEffortMinimal`)},{value:`low`,label:_(`settings:agent.reasoningEffortLow`)},{value:`medium`,label:_(`settings:agent.reasoningEffortMedium`)},{value:`high`,label:_(`settings:agent.reasoningEffortHigh`)},{value:`xhigh`,label:_(`settings:agent.reasoningEffortXhigh`)},{value:`max`,label:_(`settings:agent.reasoningEffortMax`)}],onChange:e=>y(`reasoningEffort`,e)}),(0,Z.jsx)($,{label:_(`settings:agent.preserveThinkingLabel`),hint:_(`settings:agent.preserveThinkingHint`),value:g.reasoningPreserve,onChange:()=>y(`reasoningPreserve`,!g.reasoningPreserve)}),(0,Z.jsx)(Q,{label:_(`settings:agent.cacheTtlLabel`),hint:_(`settings:agent.cacheTtlHint`),value:g.cacheTtl,options:[{value:`default`,label:_(`settings:agent.cacheTtlDefault`)},{value:`5m`,label:_(`settings:agent.cacheTtl5m`)},{value:`1h`,label:_(`settings:agent.cacheTtl1h`)}],onChange:e=>y(`cacheTtl`,e)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-2`,children:_(`settings:agent.capsHint`)})]})]}),(0,Z.jsxs)(Qa,{value:`execution`,className:`mt-0 space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(sr,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:execution.heading`)})})]}),(0,Z.jsx)(Nf,{label:_(`settings:execution.maxIterationsLabel`),hint:_(`settings:execution.maxIterationsHint`),value:g.maxIterations,min:10,max:2e3,step:10,onChange:e=>y(`maxIterations`,e)}),(0,Z.jsx)(Nf,{label:_(`settings:execution.autoProceedMaxIterationsLabel`),hint:_(`settings:execution.autoProceedMaxIterationsHint`),value:g.autoProceedMaxIterations,min:0,max:250,step:5,onChange:e=>y(`autoProceedMaxIterations`,e)}),(0,Z.jsx)($,{label:_(`settings:execution.confirmExitLabel`),hint:_(`settings:execution.confirmExitHint`),value:g.confirmExit,onChange:()=>y(`confirmExit`,!g.confirmExit)}),(0,Z.jsx)($,{label:_(`settings:execution.chimeLabel`),hint:_(`settings:execution.chimeHint`),value:g.chime,onChange:()=>y(`chime`,!g.chime)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-warning/20 bg-warning/10 text-warning`,children:(0,Z.jsx)(he,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:execution.breakerLabel`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:_(`settings:execution.breakerHint`)})]})]}),(0,Z.jsx)($,{label:_(`settings:execution.breakerLabel`),hint:_(`settings:execution.breakerHint`),value:g.breakerEnabled,onChange:()=>y(`breakerEnabled`,!g.breakerEnabled)}),(0,Z.jsx)(Nf,{label:_(`settings:execution.breakerTimeoutLabel`),hint:_(`settings:execution.breakerTimeoutHint`),value:g.breakerAutoKillResetMs,min:0,max:6e4,step:1e3,unit:`ms`,onChange:e=>y(`breakerAutoKillResetMs`,e)})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(un,{className:`h-5 w-5`})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:execution.availabilityHeading`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:_(`settings:execution.availabilityHint`)})]})]}),(0,Z.jsx)(Sf,{value:g.modelAvailabilitySchedule,candidates:v,onChange:e=>y(`modelAvailabilitySchedule`,e)})]})]}),(0,Z.jsx)(Qa,{value:`fallbacks`,className:`mt-0`,children:(0,Z.jsx)(qf,{syncPref:y,candidates:v,provider:o,activeModel:s,setProvider:c,setModel:l,switchModel:f.switchModel})}),(0,Z.jsx)(Qa,{value:`routing`,className:`mt-0`,children:(0,Z.jsx)(bm,{syncPref:y,candidates:v})}),(0,Z.jsx)(Qa,{value:`fleet`,className:`mt-0`,children:(0,Z.jsx)(Jf,{syncPref:y})}),(0,Z.jsx)(Qa,{value:`integrations`,className:`mt-0`,children:(0,Z.jsx)(ap,{syncPref:y})}),(0,Z.jsx)(Qa,{value:`chimera`,className:`mt-0 space-y-6`,children:(0,Z.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:(0,Z.jsx)(If,{syncPref:y,sessionProvider:o,sessionModel:s})})}),(0,Z.jsxs)(Qa,{value:`context`,className:`mt-0 space-y-6`,children:[(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(jt,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:context.flagsHeading`)})})]}),(0,Z.jsxs)(`div`,{className:`grid gap-1 sm:grid-cols-2`,children:[(0,Z.jsx)($,{label:_(`settings:context.mcpLabel`),hint:_(`settings:context.mcpHint`),value:g.featureMcp,onChange:()=>y(`featureMcp`,!g.featureMcp)}),(0,Z.jsx)($,{label:_(`settings:context.pluginsLabel`),hint:_(`settings:context.pluginsHint`),value:g.featurePlugins,onChange:()=>y(`featurePlugins`,!g.featurePlugins)}),(0,Z.jsx)($,{label:_(`settings:context.memoryLabel`),hint:_(`settings:context.memoryHint`),value:g.featureMemory,onChange:()=>y(`featureMemory`,!g.featureMemory)}),(0,Z.jsx)($,{label:_(`settings:context.skillsLabel`),hint:_(`settings:context.skillsHint`),value:g.featureSkills,onChange:()=>y(`featureSkills`,!g.featureSkills)}),(0,Z.jsx)($,{label:_(`settings:context.modelsRegistryLabel`),hint:_(`settings:context.modelsRegistryHint`),value:g.featureModelsRegistry,onChange:()=>y(`featureModelsRegistry`,!g.featureModelsRegistry)}),(0,Z.jsx)($,{label:_(`settings:context.indexOnStartLabel`),hint:_(`settings:context.indexOnStartHint`),value:g.indexOnStart,onChange:()=>y(`indexOnStart`,!g.indexOnStart)})]})]}),(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(jt,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:context.compactorStrategyLabel`)})})]}),(0,Z.jsx)($,{label:_(`settings:context.autoCompactLabel`),hint:_(`settings:context.autoCompactHint`),value:g.contextAutoCompact,onChange:()=>y(`contextAutoCompact`,!g.contextAutoCompact)}),(0,Z.jsx)(Q,{label:_(`settings:context.compactorStrategyLabel`),hint:_(`settings:context.compactorStrategyHint`),value:g.contextStrategy,options:[{value:`hybrid`,label:_(`settings:context.compactorStrategyHybrid`)},{value:`intelligent`,label:_(`settings:context.compactorStrategyIntelligent`)},{value:`selective`,label:_(`settings:context.compactorStrategySelective`)}],onChange:e=>y(`contextStrategy`,e)}),(0,Z.jsx)(Q,{label:_(`settings:context.contextModeLabel`),hint:_(`settings:context.contextModeHint`),value:g.contextMode,options:[{value:`balanced`,label:_(`settings:context.contextModeBalanced`)},{value:`frugal`,label:_(`settings:context.contextModeFrugal`)},{value:`deep`,label:_(`settings:context.contextModeDeep`)}],onChange:e=>y(`contextMode`,e)}),(0,Z.jsx)(Q,{label:_(`settings:context.tokenSavingLabel`),hint:_(`settings:context.tokenSavingHint`),value:g.tokenSavingTier,options:[{value:`auto`,label:_(`settings:context.tokenSavingAuto`)},{value:`off`,label:_(`settings:context.tokenSavingOff`)},{value:`minimal`,label:_(`settings:context.tokenSavingMinimal`)},{value:`light`,label:_(`settings:context.tokenSavingLight`)},{value:`medium`,label:_(`settings:context.tokenSavingMedium`)},{value:`aggressive`,label:_(`settings:context.tokenSavingAggressive`)}],onChange:e=>y(`tokenSavingTier`,e)})]}),(0,Z.jsx)(dp,{})]}),(0,Z.jsx)(Qa,{value:`logs`,className:`mt-0 space-y-6`,children:(0,Z.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/80 p-5 shadow-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/20 bg-primary/10 text-primary`,children:(0,Z.jsx)(Lt,{className:`h-5 w-5`})}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_(`settings:logs.heading`)})})]}),(0,Z.jsx)(Q,{label:_(`settings:logs.logLevelLabel`),hint:_(`settings:logs.logLevelHint`),value:g.logLevel,options:[{value:`debug`,label:_(`settings:logs.logLevelDebug`)},{value:`info`,label:_(`settings:logs.logLevelInfo`)},{value:`warn`,label:_(`settings:logs.logLevelWarn`)},{value:`error`,label:_(`settings:logs.logLevelError`)}],onChange:e=>y(`logLevel`,e)}),(0,Z.jsx)(Q,{label:_(`settings:logs.auditLevelLabel`),hint:_(`settings:logs.auditLevelHint`),value:g.auditLevel,options:[{value:`minimal`,label:_(`settings:logs.auditLevelMinimal`)},{value:`standard`,label:_(`settings:logs.auditLevelStandard`)},{value:`full`,label:_(`settings:logs.auditLevelFull`)}],onChange:e=>y(`auditLevel`,e)}),(0,Z.jsx)(Q,{label:_(`settings:logs.fsAccessLabel`),hint:_(`settings:logs.fsAccessHint`),value:g.fsAccess,options:[{value:`unrestricted`,label:_(`settings:logs.fsAccessUnrestricted`)},{value:`project`,label:_(`settings:logs.fsAccessProject`)}],onChange:e=>y(`fsAccess`,e)}),(0,Z.jsx)($,{label:_(`settings:logs.debugStreamLabel`),hint:_(`settings:logs.debugStreamHint`),value:g.debugStream,onChange:()=>y(`debugStream`,!g.debugStream)})]})}),(0,Z.jsx)(Qa,{value:`security`,className:`mt-0`,children:(0,Z.jsx)(Zm,{})}),(0,Z.jsx)(Qa,{value:`display`,className:`mt-0`,children:(0,Z.jsx)(Vf,{syncPref:y})})]})]})})}),(0,Z.jsx)(Li,{open:F,onOpenChange:I,children:(0,Z.jsxs)(Pi,{showCloseButton:!1,children:[(0,Z.jsxs)(Mi,{children:[(0,Z.jsx)(Fi,{children:_(`settings:resetConfirmTitle`)}),(0,Z.jsx)(Ii,{children:_(`settings:resetConfirmBody`)})]}),(0,Z.jsxs)(Ni,{className:`gap-2 sm:gap-0`,children:[(0,Z.jsx)(Y,{variant:`outline`,onClick:()=>I(!1),children:_(`settings:cancel`)}),(0,Z.jsx)(Y,{variant:`destructive`,onClick:re,children:_(`settings:resetConfirmAction`)})]})]})})]})}var eh=(0,X.lazy)(()=>V(()=>import(`./AnalyticsDashboard-CvEY3lEY.js`).then(e=>({default:e.AnalyticsDashboard})),__vite__mapDeps([28,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23]))),th=(0,X.lazy)(()=>V(()=>import(`./AgentRosterView-X4NWBm16.js`).then(e=>({default:e.AgentRosterView})),__vite__mapDeps([29,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,0,8,21,20,22,23,24,26,30,18,25,31]))),nh=(0,X.lazy)(()=>V(()=>import(`./ChangesView-DplR2Twb.js`).then(e=>({default:e.ChangesView})),__vite__mapDeps([32,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,33,34]))),rh=(0,X.lazy)(()=>V(()=>import(`./ChronicleDashboard-BpykJceZ.js`).then(e=>({default:e.ChronicleDashboard})),__vite__mapDeps([35,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8]))),ih=(0,X.lazy)(()=>V(()=>import(`./CodeEditor-DQDKQlAo.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([36,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,20,21,19,22,23,24,33,34,37,38,39]))),ah=(0,X.lazy)(()=>V(()=>import(`./CodeMap-CnlnHM8P.js`).then(e=>({default:e.CodeMap})),__vite__mapDeps([40,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,20,25]))),oh=(0,X.lazy)(()=>V(()=>import(`./DebugDashboard-d4ETqxOe.js`).then(e=>({default:e.DebugDashboard})),__vite__mapDeps([41,1,2,3,4,5,6,10,11,12,13,14,15,16,17]))),sh=(0,X.lazy)(()=>V(()=>import(`./DesignGalleryView-3jRTmgzx.js`).then(e=>({default:e.DesignGalleryView})),__vite__mapDeps([42,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26]))),ch=(0,X.lazy)(()=>V(()=>import(`./GoalView-CoMRM0Vo.js`).then(e=>({default:e.GoalView})),__vite__mapDeps([43,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,18,0,8,20,21,22,23,24,25,26,38,44,27,45]))),lh=(0,X.lazy)(()=>V(()=>import(`./KanbanView-BMHq13vg.js`).then(e=>({default:e.KanbanView})),__vite__mapDeps([46,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,27,30,18,24,25,26,47]))),uh=(0,X.lazy)(()=>V(()=>import(`./MailboxDetailView-C0n5fMGN.js`).then(e=>({default:e.MailboxDetailView})),__vite__mapDeps([48,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,22,23,24,33]))),dh=(0,X.lazy)(()=>V(()=>import(`./OfficeMapPanel-TIRw1a9O.js`).then(e=>({default:e.OfficeMapPanel})),__vite__mapDeps([49,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,50]))),fh=(0,X.lazy)(()=>V(()=>import(`./RefreshDebugView-DA6cPIhw.js`).then(e=>({default:e.RefreshDebugView})),__vite__mapDeps([51,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,8,23]))),ph=(0,X.lazy)(()=>V(()=>import(`./SageTabs-BR09lBUK.js`).then(e=>({default:e.SageTabs})),__vite__mapDeps([52,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7]))),mh=(0,X.lazy)(()=>V(()=>import(`./RequirementIntakeView-CN7Yympd.js`).then(e=>({default:e.RequirementIntakeView})),__vite__mapDeps([53,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,38,45]))),hh=(0,X.lazy)(()=>V(()=>import(`./SddHub-CkjrCykN.js`).then(e=>({default:e.SddHub})),__vite__mapDeps([54,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,30,47,55]))),gh=(0,X.lazy)(()=>V(()=>import(`./SessionsDashboard-CwuOKWQc.js`).then(e=>({default:e.SessionsDashboard})),__vite__mapDeps([56,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,57,44,27,38,45]))),_h=(0,X.lazy)(()=>V(()=>import(`./SessionInspectView-Bf3X0qK8.js`).then(e=>({default:e.SessionInspectView})),__vite__mapDeps([58,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,57,44,27,38,45]))),vh=(0,X.lazy)(()=>V(()=>import(`./SkillDetailView-CULufBnT.js`).then(e=>({default:e.SkillDetailView})),__vite__mapDeps([59,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,33]))),yh=(0,X.lazy)(()=>V(()=>import(`./TechStackView-B2v5LoJp.js`).then(e=>({default:e.TechStackView})),__vite__mapDeps([60,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,21,19,0,8,20,22,23,38,45]))),bh=(0,X.lazy)(()=>V(()=>import(`./DeadCodeScanPanel-Dp6vW6pV.js`).then(e=>({default:e.DeadCodeScanPanel})),__vite__mapDeps([61,1,2,3,4,5,6,10,11,12,13,14,15,16,17])));function xh({sessionId:e,desktopShell:t}){let{t:n}=R(),{currentView:r,terminalOpen:i,setTerminalOpen:a}=K(je(e=>({currentView:e.currentView,terminalOpen:e.terminalOpen,setTerminalOpen:e.setTerminalOpen})));return(0,Z.jsxs)(Z.Fragment,{children:[r===`chat`&&(0,Z.jsxs)(Z.Fragment,{children:[e&&(0,Z.jsx)(`div`,{className:`ws-workspace-dock-wrap shrink-0 px-3 pt-2 sm:px-4`,children:(0,Z.jsx)(El,{})}),(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.chat`),children:(0,Z.jsx)(Qd,{})})]}),r===`settings`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.settings`),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)($m,{})})}),r===`memory`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sageMemory`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.sageMemory`)})}),children:(0,Z.jsx)(ph,{})})}),r===`roster`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.agentRoster`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.agentRoster`)})}),children:(0,Z.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Z.jsx)(th,{})})})}),r===`context`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.contextDashboard`),children:(0,Z.jsx)(yf,{})}),r===`setup`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.setup`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(Sh,{})})})}),r===`goal`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.goal`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(ch,{onClose:()=>q(`chat`)})})})}),r===`sddhub`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sddHub`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(hh,{})})})}),r===`kanban`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.kanban`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(lh,{onClose:()=>q(`chat`)})})})}),r===`sessions`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sessions`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(gh,{})})})}),r===`session-inspect`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.sessionInspect`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.sessionInspect`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(_h,{})})})}),r===`chronicle`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.chronicle`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(rh,{})})})}),r===`intake`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.requirementsIntake`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(mh,{})})})}),r===`debug`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.debugDashboard`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(oh,{})})})}),r===`refresh-debug`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.refreshDebug`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(fh,{})})})}),r===`files`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.editor`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.editor`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(ih,{})})})}),r===`changes`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.changes`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.changes`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(nh,{className:`h-full min-h-0`})})})}),r===`mailbox`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.mailbox`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(uh,{className:`h-full min-h-0`})})})}),r===`design-gallery`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.designGallery`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(sh,{className:`h-full`})})})}),r===`skill`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.skill`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(vh,{className:`h-full`})})})}),r===`officemap`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.officeMap`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.officeMap`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(dh,{})})})}),r===`analytics`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.analytics`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(eh,{})})})}),r===`codemap`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.codemap`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.codemap`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(ah,{})})})}),r===`techstack`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.techstack`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.techstack`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-hidden`,children:(0,Z.jsx)(yh,{})})})}),r===`deadcode`&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.deadcode`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.deadcode`)})}),children:(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 min-w-0 overflow-y-auto`,children:(0,Z.jsx)(bh,{})})})}),i&&(0,Z.jsx)(ks,{level:`panel`,name:n(`activity:panels.terminal`),children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(bf,{label:n(`common:loadingNamed`,{name:n(`activity:panels.terminal`)})}),children:(0,Z.jsx)(Ch,{desktopShell:t,onClose:()=>a(!1)})})})]})}var Sh=(0,X.lazy)(()=>V(()=>import(`./SetupScreen-DZUvrhr0.js`).then(e=>({default:e.SetupScreen})),__vite__mapDeps([62,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,45]))),Ch=(0,X.lazy)(()=>V(()=>import(`./TerminalPanel-Pq97A882.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([63,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,64,65])));(0,X.lazy)(()=>V(()=>import(`./AnalyticsDashboard-CvEY3lEY.js`).then(e=>({default:e.AnalyticsDashboard})),__vite__mapDeps([28,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23]))),(0,X.lazy)(()=>V(()=>import(`./CodeMap-CnlnHM8P.js`).then(e=>({default:e.CodeMap})),__vite__mapDeps([40,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,20,25]))),(0,X.lazy)(()=>V(()=>import(`./ChronicleDashboard-BpykJceZ.js`).then(e=>({default:e.ChronicleDashboard})),__vite__mapDeps([35,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8]))),(0,X.lazy)(()=>V(()=>import(`./GoalView-CoMRM0Vo.js`).then(e=>({default:e.GoalView})),__vite__mapDeps([43,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,18,0,8,20,21,22,23,24,25,26,38,44,27,45]))),(0,X.lazy)(()=>V(()=>import(`./ChangesView-DplR2Twb.js`).then(e=>({default:e.ChangesView})),__vite__mapDeps([32,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,33,34])));var wh=(0,X.lazy)(()=>V(()=>import(`./CronJobsPanel-Dp9xc7vb.js`).then(e=>({default:e.CronJobsPanel})),__vite__mapDeps([66,1,2,3,4,5,6,10,11,12,13,14,15,16,17,21,19,7,0,8,20,22,23,27])));(0,X.lazy)(()=>V(()=>import(`./CodeEditor-DQDKQlAo.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([36,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,20,21,19,22,23,24,33,34,37,38,39]))),(0,X.lazy)(()=>V(()=>import(`./DebugDashboard-d4ETqxOe.js`).then(e=>({default:e.DebugDashboard})),__vite__mapDeps([41,1,2,3,4,5,6,10,11,12,13,14,15,16,17]))),(0,X.lazy)(()=>V(()=>import(`./DesignGalleryView-3jRTmgzx.js`).then(e=>({default:e.DesignGalleryView})),__vite__mapDeps([42,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26]))),(0,X.lazy)(()=>V(()=>import(`./MailboxDetailView-C0n5fMGN.js`).then(e=>({default:e.MailboxDetailView})),__vite__mapDeps([48,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,22,23,24,33]))),(0,X.lazy)(()=>V(()=>import(`./SageTabs-BR09lBUK.js`).then(e=>({default:e.SageTabs})),__vite__mapDeps([52,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7]))),(0,X.lazy)(()=>V(()=>import(`./AgentRosterView-X4NWBm16.js`).then(e=>({default:e.AgentRosterView})),__vite__mapDeps([29,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,0,8,21,20,22,23,24,26,30,18,25,31]))),(0,X.lazy)(()=>V(()=>import(`./KanbanView-BMHq13vg.js`).then(e=>({default:e.KanbanView})),__vite__mapDeps([46,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,27,30,18,24,25,26,47]))),(0,X.lazy)(()=>V(()=>import(`./OfficeMapPanel-TIRw1a9O.js`).then(e=>({default:e.OfficeMapPanel})),__vite__mapDeps([49,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,50])));var Th=(0,X.lazy)(()=>V(()=>import(`./ProcessMonitor-SLnEEbRY.js`).then(e=>({default:e.ProcessMonitor})),__vite__mapDeps([9,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27]))),Eh=(0,X.lazy)(()=>V(()=>import(`./QueuePanel-BszNSrlq.js`).then(e=>({default:e.QueuePanel})),__vite__mapDeps([67,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,21,0,8,20,22,23,27])));(0,X.lazy)(()=>V(()=>import(`./RefreshDebugView-DA6cPIhw.js`).then(e=>({default:e.RefreshDebugView})),__vite__mapDeps([51,1,19,2,3,4,5,6,7,10,11,12,13,14,15,16,17,8,23]))),(0,X.lazy)(()=>V(()=>import(`./SddHub-CkjrCykN.js`).then(e=>({default:e.SddHub})),__vite__mapDeps([54,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,30,47,55]))),(0,X.lazy)(()=>V(()=>import(`./SessionsDashboard-CwuOKWQc.js`).then(e=>({default:e.SessionsDashboard})),__vite__mapDeps([56,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,57,44,27,38,45]))),(0,X.lazy)(()=>V(()=>import(`./SetupScreen-DZUvrhr0.js`).then(e=>({default:e.SetupScreen})),__vite__mapDeps([62,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,38,45]))),(0,X.lazy)(()=>V(()=>import(`./SkillDetailView-CULufBnT.js`).then(e=>({default:e.SkillDetailView})),__vite__mapDeps([59,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,27,33]))),(0,X.lazy)(()=>V(()=>import(`./SpecsView-Do8eQuTN.js`).then(e=>({default:e.SpecsView})),__vite__mapDeps([55,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,7,0,8,20,21,22,23,24,25,26,38]))),(0,X.lazy)(()=>V(()=>import(`./TechStackView-B2v5LoJp.js`).then(e=>({default:e.TechStackView})),__vite__mapDeps([60,1,2,3,4,5,6,10,11,12,13,14,15,16,17,7,21,19,0,8,20,22,23,38,45]))),(0,X.lazy)(()=>V(()=>import(`./TerminalPanel-Pq97A882.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([63,1,2,3,4,5,6,10,11,12,13,14,15,16,17,0,7,8,21,19,20,22,23,64,65])));function Dh(){let{t:e}=R(),{theme:t}=Ga(),n=Br(),{currentView:i,sidebarOpen:a,toggleSidebar:o,setSearchOpen:s,setSidebarOpen:c,setInspectorTab:l,setPaletteOpen:u,setShortcutsOpen:d,setModelSwitcherOpen:f,setPromptLibraryOpen:p,toggleInspector:m,setFleetMonitorOpen:h,setAgentsMonitorOpen:g,processMonitorOpen:_,setProcessMonitorOpen:v,queuePanelOpen:y,setQueuePanelOpen:b,cronJobsOpen:x,setCronJobsOpen:S,setTerminalOpen:C}=K(je(e=>({currentView:e.currentView,sidebarOpen:e.sidebarOpen,toggleSidebar:e.toggleSidebar,setSearchOpen:e.setSearchOpen,setSidebarOpen:e.setSidebarOpen,setInspectorTab:e.setInspectorTab,setPaletteOpen:e.setPaletteOpen,setShortcutsOpen:e.setShortcutsOpen,setModelSwitcherOpen:e.setModelSwitcherOpen,setPromptLibraryOpen:e.setPromptLibraryOpen,toggleInspector:e.toggleInspector,setFleetMonitorOpen:e.setFleetMonitorOpen,setAgentsMonitorOpen:e.setAgentsMonitorOpen,processMonitorOpen:e.processMonitorOpen,setProcessMonitorOpen:e.setProcessMonitorOpen,queuePanelOpen:e.queuePanelOpen,setQueuePanelOpen:e.setQueuePanelOpen,cronJobsOpen:e.cronJobsOpen,setCronJobsOpen:e.setCronJobsOpen,setTerminalOpen:e.setTerminalOpen}))),w=r(e=>e.isLoading),T=W(e=>e.iteration),E=W(e=>e.projectName),D=W(e=>e.session?.title),O=W(e=>e.session?.id),k=K(e=>O?e.sessionNicknames[O]:void 0),A=K(e=>e.sideContextBreakdownOpen),j=K(e=>e.setSideContextBreakdownOpen);ti(e=>e.agents),Ba({setPaletteOpen:u,setSearchOpen:s,setShortcutsOpen:d,setModelSwitcherOpen:f,setPromptLibraryOpen:p,setFleetMonitorOpen:h,setAgentsMonitorOpen:g,setProcessMonitorOpen:v,setQueuePanelOpen:b,setCronJobsOpen:S,setTerminalOpen:C}),(0,X.useEffect)(()=>{typeof window>`u`||(window.location.pathname===`/debug`?Oi(`debug`):window.location.pathname===`/analytics`?Oi(`analytics`):window.location.pathname===`/refresh-debug`&&Oi(`refresh-debug`))},[]),(0,X.useEffect)(()=>{let e=e=>{let{filePath:t}=e.detail,n=H(G.getState().wsUrl);n&&n.send({type:`files.read`,payload:{filePath:t}})};return window.addEventListener(`wrongstack:open-file`,e),()=>window.removeEventListener(`wrongstack:open-file`,e)},[]),(0,X.useEffect)(()=>{let e=e=>{let{filePath:t}=e.detail,n=ui.getState().openFiles.find(e=>e.path===t);if(!n)return;let r=H(G.getState().wsUrl);r&&r.send({type:`files.write`,payload:{filePath:t,content:n.content}})};return window.addEventListener(`wrongstack:save-file`,e),()=>window.removeEventListener(`wrongstack:save-file`,e)},[]);let{isMobile:ee}=Lr();(0,X.useEffect)(()=>{ee&&K.getState().sidebarOpen&&c(!1)},[ee,c]);let M=ee&&a;return Fr(),Va(),(0,X.useEffect)(()=>{let e=[];if(w){let t=T?` iter ${T.index}${T.max?`/${T.max}`:``}`:``;e.push(`●${t}`)}let t=k?.trim()||D?.trim(),n=E?.trim();t&&e.push(t),n&&e.push(n),e.length===0&&e.push(n||`AI Agent`);let r=e.filter(Boolean).join(` · `);return document.title=r,()=>{document.title=E||`AI Agent`}},[w,T,E,D,k]),Ha({toggleSidebar:o,setSearchOpen:s,toggleInspector:m,setInspectorTab:l}),(0,Z.jsxs)(`div`,{"data-shell":n?`desktop`:`browser`,className:U(`ws-app-root flex min-h-0 min-w-0 overflow-hidden`,n&&`ws-desktop-shell`,t),children:[(0,Z.jsx)(`a`,{href:`#main-content`,className:`sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-[100] focus:rounded-md focus:bg-background focus:px-3 focus:py-1.5 focus:text-sm focus:font-medium focus:shadow-lg focus:ring-2 focus:ring-primary`,children:e(`activity:app.skipToContent`)}),i!==`setup`&&(0,Z.jsx)(Ta,{desktopShell:n}),a&&i!==`setup`&&(0,Z.jsx)(Wc,{desktopShell:n}),(0,Z.jsxs)(`main`,{id:`main-content`,className:`flex-1 min-w-0 min-h-0 flex flex-col overflow-hidden bg-background/70`,...M?{inert:!0}:{},children:[i!==`setup`&&(0,Z.jsx)(fs,{currentView:i,projectName:E,sessionLabel:k||D||O||void 0,isLoading:w,iteration:T??null,onPalette:()=>u(!0),onSearch:()=>s(!0),onModel:()=>f(!0),onSettings:()=>ki(`settings`)}),i!==`setup`&&(0,Z.jsx)(Cs,{}),i!==`setup`&&(0,Z.jsx)(ws,{}),(0,Z.jsx)(xh,{sessionId:O??null,desktopShell:n})]}),i!==`setup`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.inspector`),children:(0,Z.jsx)(as,{})}),O&&i===`chat`&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.workspaceInspector`),children:(0,Z.jsx)(Ol,{sessionId:O})})]}),_&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.processMonitor`),children:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Th,{open:_,onClose:()=>v(!1)})})}),y&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.queue`),children:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Eh,{open:y,onClose:()=>b(!1)})})}),x&&(0,Z.jsx)(ks,{level:`panel`,name:e(`activity:panels.cronJobs`),children:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(wh,{open:x,onClose:()=>S(!1)})})}),(0,Z.jsx)(Ns,{}),A&&(0,Z.jsx)(Ds,{open:A,onClose:()=>j(!1)}),(0,Z.jsx)(Ss,{}),(0,Z.jsx)(Ui,{}),(0,Z.jsx)(Bi,{}),(0,Z.jsx)(Ra,{}),(0,Z.jsx)(zs,{}),(0,Z.jsx)(Fs,{}),(0,Z.jsx)(Is,{}),(0,Z.jsx)(ji,{})]})}function Oh(){return(0,Z.jsx)(ks,{children:(0,Z.jsx)(Wa,{defaultTheme:`system`,children:(0,Z.jsx)(Dh,{})})})}Ji.createRoot(t(document.getElementById(`root`))).render((0,Z.jsx)(X.StrictMode,{children:(0,Z.jsx)(Oh,{})}));export{Ya as C,qa as D,Za as E,Ga as O,Po as S,Xa as T,Js as _,pp as a,Ko as b,$d as c,Yu as d,qu as f,Zs as g,hl as h,yp as i,Ed as l,yl as m,bp as n,Xf as o,xl as p,xp as r,Kf as s,Sp as t,Zu as u,_s as v,Qa as w,Go as x,hs as y};
|