@openchambery/web 2.0.0-beta.6 → 2.0.0-beta.7
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/{AgentAvatar-BBmQXYDq.js → AgentAvatar-CzTtVMnI.js} +1 -1
- package/dist/assets/{AssistantView-BpvbpZBC.js → AssistantView-QJBDn5r6.js} +3 -3
- package/dist/assets/{DiagramView-UwKDr8HS.js → DiagramView-DdJh8nnv.js} +1 -1
- package/dist/assets/{FadeInOnReveal-w_BQ7K7K.js → FadeInOnReveal-DCqrQkkz.js} +1 -1
- package/dist/assets/{Icon-B9kZgYZn.js → Icon-B8fSTLdP.js} +1 -1
- package/dist/assets/{MarkdownRenderer-C8tDsO5F.js → MarkdownRenderer-mDkW7fMx.js} +2 -2
- package/dist/assets/{MarkdownRendererImpl-DRZ1iTbg.js → MarkdownRendererImpl-BzFzx1Um.js} +1 -1
- package/dist/assets/{MarkstreamRendererImpl-fU6uhDTr.js → MarkstreamRendererImpl-DybFWmDa.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-MXUDe0nG.js → MobileDetailNavigation-L9ItollZ.js} +1 -1
- package/dist/assets/{MobileShareBridge-C7x4jOGb.js → MobileShareBridge-DyUqMvTH.js} +1 -1
- package/dist/assets/{MobileSurface-BQSmXYJ_.js → MobileSurface-CP23L9re.js} +1 -1
- package/dist/assets/{MultiRunWindow-ClfxxgP5.js → MultiRunWindow-CdXC_r5j.js} +1 -1
- package/dist/assets/{OnboardingScreen-BxItVnnO.js → OnboardingScreen-O4cGdz5p.js} +1 -1
- package/dist/assets/{OverlayScrollbar-B4e0QD05.js → OverlayScrollbar-S-7EePsU.js} +1 -1
- package/dist/assets/{SettingsView-DtWgey4y.js → SettingsView-BQ34wp4Z.js} +1 -1
- package/dist/assets/{SettingsWindow-Du8y1EI8.js → SettingsWindow-BUWWhd18.js} +1 -1
- package/dist/assets/{TerminalView-DL9qkQDj.js → TerminalView-Bdmk0H5m.js} +1 -1
- package/dist/assets/{ToolOutputDialog-BXawDmmf.js → ToolOutputDialog-C-_stNqU.js} +1 -1
- package/dist/assets/{appThemeRegistry-DsSahEsq.js → appThemeRegistry-DzON5yeB.js} +1 -1
- package/dist/assets/{button-CwXyux0a.js → button-DIIrsMjW.js} +1 -1
- package/dist/assets/{collapsible-BZ6_cYJd.js → collapsible-CnvUeYst.js} +1 -1
- package/dist/assets/{context-menu-DHrRifPE.js → context-menu-BGBUpZEQ.js} +1 -1
- package/dist/assets/{diagram-BwnPNKWt.js → diagram-rvn7_qBM.js} +1 -1
- package/dist/assets/{dialog-Dp0lQv5K.js → dialog-CQ63sc9E.js} +1 -1
- package/dist/assets/{es-DicJ8lKD.js → es-Dsmc0A_3.js} +1 -1
- package/dist/assets/{fileMentionTouchSelection-PZQrywzZ.js → fileMentionTouchSelection-C9p8h-Ie.js} +1 -1
- package/dist/assets/{fr-lhgVcBW_.js → fr-C_ZlZDI2.js} +1 -1
- package/dist/assets/{gitApi-C1oGENfw.js → gitApi-BMo0uaL3.js} +1 -1
- package/dist/assets/{input-Biw8aNzR.js → input-BVu-iykl.js} +1 -1
- package/dist/assets/{insertionBoundaries-BmQh-tke.js → insertionBoundaries-BpukOKbq.js} +1 -1
- package/dist/assets/{ja-B9EZwOcw.js → ja-BqqTaWTi.js} +1 -1
- package/dist/assets/{ko-Dxk-uJRb.js → ko-DP2XPM37.js} +1 -1
- package/dist/assets/{main-BnyE5H4i.js → main-DXVRrh7X.js} +4 -4
- package/dist/assets/{main-DOgXHO44.js → main-w14j2TkM.js} +2 -2
- package/dist/assets/{markdownHeightCache-BOOrGCuG.js → markdownHeightCache-D9-B1wdY.js} +1 -1
- package/dist/assets/{mcpQueries-D9Dyzcve.js → mcpQueries-Bce7XemU.js} +1 -1
- package/dist/assets/{miniChat-C7FecHIX.js → miniChat-Cl2nrLSA.js} +2 -2
- package/dist/assets/{mobile-_zrfbam4.js → mobile-12ThSAzk.js} +2 -2
- package/dist/assets/{multirun-BLFbv4I9.js → multirun-C0A5kRne.js} +1 -1
- package/dist/assets/{pl-CFhwWLJj.js → pl-BCf5uLlK.js} +1 -1
- package/dist/assets/{projectMeta-BCdCRuYS.js → projectMeta-dAvoTdWm.js} +1 -1
- package/dist/assets/{pt-BR-Ba6GfZ6J.js → pt-BR-W09Q2pvn.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-QQq7dj-0.js → renderElectronMiniChatApp-CRgsYMpA.js} +2 -2
- package/dist/assets/{renderMobileApp-BVIkeTKi.js → renderMobileApp-Bhh5JnT6.js} +4 -4
- package/dist/assets/{runtimeConfig-S9D4fVI5.js → runtimeConfig-DtMsmzDW.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-B6eE14f9.js → runtimeEndpointReset-BsqJbOWK.js} +1 -1
- package/dist/assets/{sessionChangeSummary-DLo3Iv_g.js → sessionChangeSummary-DUrbLwSm.js} +1 -1
- package/dist/assets/{sessionLookup-BXXTw54z.js → sessionLookup-CMoWFtbN.js} +1 -1
- package/dist/assets/{sortable-tabs-strip-CTY_wG46.js → sortable-tabs-strip-BsObV7Pl.js} +1 -1
- package/dist/assets/{store-DmowK-GO.js → store-jaP79mqI.js} +2 -2
- package/dist/assets/{textarea-QxsmcBGj.js → textarea-BoXpPjTd.js} +1 -1
- package/dist/assets/{tooltip-CpMLl5_k.js → tooltip-DYeQ_Hvy.js} +1 -1
- package/dist/assets/{uk-ChchBzy6.js → uk-BgFzz8m2.js} +1 -1
- package/dist/assets/{useAppFontEffects-BDs0O2qK.js → useAppFontEffects-D-k7nO1V.js} +42 -42
- package/dist/assets/{useDesktopWindowControlsLayout-ojoBEglc.js → useDesktopWindowControlsLayout-BY2efZLX.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-B_nHyDMJ.js → useEffectiveDirectory-B1MaasbE.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-D_96D661.js → useMobileNavigationStore-DztaW6eA.js} +6 -6
- package/dist/assets/{useSessionAutoCleanup-Dw34f-EW.js → useSessionAutoCleanup-2t3bSPWk.js} +1 -1
- package/dist/assets/{useWorkerHighlightedLines-CNlfP7nA.js → useWorkerHighlightedLines-B8TVySRJ.js} +1 -1
- package/dist/assets/{zh-CN-Z_bkUQk5.js → zh-CN-BhqSLgUY.js} +1 -1
- package/dist/assets/{zh-TW-CZeTm7kd.js → zh-TW-BsaBgY-p.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/mini-chat.html +2 -2
- package/dist/mobile.html +2 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{E as n}from"./runtime-auth-D66yq6ie.js";import{c as r,i,l as a,n as o,r as s,t as c}from"./runtime-switch-LvWDU-SL.js";import{n as l}from"./runtime-fetch-Fs9ZV2V8.js";import{Cn as u,D as d,E as f,Gt as p,Ht as m,Jt as h,O as g,Qt as _,R as v,Sn as y,Ut as b,Wt as x,Yt as S,Zt as C,_n as w,a as T,d as E,f as D,fn as O,gn as k,i as A,k as j,l as M,nn as N,nt as P,r as F,tn as I,u as L,un as R,vn as z}from"./persistence-D0y7226-.js";import{a as B,g as V,h as H,i as ee,l as U,m as te,n as W,p as ne,r as re,t as ie,u as ae}from"./desktopHosts-JGFqhlaM.js";import{n as oe}from"./desktopRelayRestore-CHEwrI93.js";import{a as se,i as ce,r as le,t as ue}from"./vendor-zustand-B4dlGEM2.js";import{nt as de,rt as fe}from"./vendor-base-ui-CnHfUmDN.js";import{Ct as pe,Nt as me,n as he,t as ge}from"./platform-D_c-T5nO.js";import{b as _e,d as ve,i as ye,n as G,o as be,s as xe}from"./useUIStore-syVmbuDA.js";import{n as Se}from"./vendor-react-DLPElpoQ.js";import{n as Ce}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{l as we,n as Te,o as Ee,s as De}from"./vendor-tanstack-react-query-D7pys_c9.js";import{W as Oe}from"./vendor-codemirror-autocomplete-DHomsvW7.js";import{r as ke}from"./vendor-sonner-DVzioF3d.js";import{c as Ae,n as je}from"./vendor-reactuses-core-Dq5ocTF8.js";import{d as Me,f as Ne,o as Pe,p as Fe,r as K,t as q}from"./button-CwXyux0a.js";import{a as Ie,i as Le,r as Re}from"./MobileShareBridge-C7x4jOGb.js";import{_ as ze,a as Be,d as Ve,g as He,h as Ue,i as We,m as Ge,s as Ke,t as qe,v as Je,x as Ye,y as Xe}from"./MobileDetailNavigation-MXUDe0nG.js";import{$a as Ze,Ba as Qe,Fa as $e,Fn as et,Ga as tt,Ha as nt,Ia as rt,In as it,Ja as at,Ka as ot,La as st,Pa as ct,Qa as lt,Ra as ut,Tr as J,Ua as dt,Va as ft,Wa as pt,Xa as mt,Ya as ht,Za as gt,_a as _t,aa as vt,ao as yt,ba as bt,ca as xt,ci as St,co as Ct,eo as wt,ha as Tt,ia as Et,io as Dt,la as Ot,lo as kt,ma as At,mi as jt,no as Mt,o as Nt,pi as Pt,qa as Ft,qt as It,ra as Lt,ro as Rt,sa as zt,to as Bt,ui as Vt,uo as Ht,va as Ut,ya as Wt,yi as Gt,za as Kt}from"./useMobileNavigationStore-D_96D661.js";import{i as qt}from"./useAssistantUIStore-Bz4tRflF.js";import{a as Jt,i as Yt,n as Xt,o as Zt,r as Qt,t as $t}from"./dialog-Dp0lQv5K.js";import{t as en}from"./AgentAvatar-BBmQXYDq.js";import{n as Y}from"./Icon-B9kZgYZn.js";import{T as tn,_ as nn,a as rn,b as an,h as on,i as sn,j as cn,k as ln,m as un,n as dn,x as fn}from"./projectMeta-BCdCRuYS.js";import{t as pn}from"./input-Biw8aNzR.js";import{i as mn,n as hn,t as gn}from"./tooltip-CpMLl5_k.js";import{At as _n,Bt as vn,Ct as yn,E as bn,F as xn,Ft as Sn,Ht as Cn,I as wn,It as Tn,J as En,K as Dn,L as On,Lt as kn,Mt as An,N as jn,Nt as Mn,O as Nn,Pt as Pn,Qt as Fn,R as In,Rt as X,St as Ln,T as Rn,V as zn,Vt as Bn,Wt as Vn,Zt as Hn,a as Un,an as Wn,at as Gn,bt as Kn,ct as qn,dt as Jn,en as Yn,gt as Xn,ht as Zn,i as Qn,it as $n,j as er,jt as tr,k as nr,kt as rr,mt as ir,nn as ar,o as or,on as sr,rn as cr,rt as lr,st as ur,t as dr,tn as fr,tt as pr,u as mr,ut as hr,xt as gr,z as _r,zt as vr}from"./useSessionAutoCleanup-Dw34f-EW.js";import{n as yr}from"./useThemeSystem-DMzWVJaW.js";import{i as br,r as xr}from"./OverlayScrollbar-B4e0QD05.js";import{n as Sr}from"./useRuntimeAPIs-DSLXJybW.js";import{n as Cr,t as wr}from"./textarea-QxsmcBGj.js";import{P as Tr,i as Er,j as Dr,n as Or}from"./appThemeRegistry-DsSahEsq.js";import{n as kr}from"./MarkdownRenderer-C8tDsO5F.js";import{a as Ar}from"./url-CGbJbiJq.js";import{l as jr}from"./markdown-worker-bS5OgGO3.js";import{t as Mr}from"./sortable-tabs-strip-CTY_wG46.js";import{A as Nr,B as Pr,C as Fr,D as Ir,E as Lr,F as Rr,G as zr,H as Br,I as Vr,J as Hr,K as Ur,L as Wr,M as Gr,N as Kr,O as qr,P as Jr,R as Yr,S as Xr,T as Zr,U as Qr,V as $r,W as ei,Y as ti,_ as ni,a as ri,b as ii,c as ai,f as oi,g as si,h as ci,j as li,k as ui,l as di,m as fi,n as pi,q as mi,s as hi,u as gi,v as _i,x as vi,z as Z}from"./MobileSurface-BQSmXYJ_.js";import{a as yi,c as bi,i as xi,l as Si,o as Ci,r as wi,s as Ti}from"./mcpQueries-D9Dyzcve.js";import{a as Ei,n as Di,r as Oi,t as ki}from"./context-menu-DHrRifPE.js";import{n as Ai,r as ji,t as Mi}from"./collapsible-BZ6_cYJd.js";import{n as Ni,t as Pi}from"./vendor-yaml-C9KlJAlj.js";import{t as Fi}from"./vendor-qrcode-DAuVxiQR.js";var Ii=Se(),Q=e(fe(),1),$=de(),Li=`https://github.com/yee94/openchamber`,Ri=`${Li}/issues/new`,zi=`https://discord.gg/ZYRSdnwwKA`,Bi=`https://x.com/openchamber_dev`,Vi=800,Hi={"manual-global":`settings.openchamber.about.opencodeManagement.manual-global`,"manual-external":`settings.openchamber.about.opencodeManagement.manual-external`,bundled:`settings.openchamber.about.opencodeManagement.bundled`,"in-app":`settings.openchamber.about.opencodeManagement.in-app`,none:`settings.openchamber.about.opencodeManagement.none`},Ui=e=>typeof e==`string`&&e.trim()?e.trim():null,Wi=(e,t,n)=>({queryKey:[t,`about`,n,e],queryFn:async({signal:r})=>{if(t!==i()||n!==o())throw Error(`Stale About runtime`);let a=await l(e,{method:`GET`,headers:{Accept:`application/json`},signal:r});if(!a.ok)throw Error(`About snapshot: ${a.status}`);let s=await a.json();if(!s||typeof s!=`object`||Array.isArray(s))throw Error(`Invalid About snapshot`);if(r.aborted||t!==i()||n!==o())throw Error(`Stale About runtime`);return s},retry:!1,staleTime:3e4}),Gi=()=>{try{let e=Ce;return((typeof e.getConfig==`function`?e.getConfig():void 0)??e.config)?.OpenChamberOTA?.channel===`stable`?`stable`:`beta`}catch{return`beta`}},Ki=({initialUpdateDialogOpen:e=!1})=>{let{t}=Ne(),[n,a]=Q.useState(e),[s,c]=Q.useState(!1),[l,u]=Q.useState(!1),[d,f]=Q.useState(null),[p,m]=Q.useState(null),h=Q.useSyncExternalStore(r,i,i),g=Q.useSyncExternalStore(r,o,o),_=De(Wi(`/api/system/info`,h,g)),v=De(Wi(`/api/opencode/upgrade-status`,h,g)),y=Ui(_.data?.openchamberVersion),b=v.data,x=Ui(b?.serveVersion)??Ui(b?.currentVersion),S=Ui(b?.management),C=S&&Object.hasOwn(Hi,S)?Hi[S]:null,w=b?.canManage===!1&&C?t(C):null,T=x&&w?t(`settings.openchamber.about.opencodeVersionWithManagement`,{version:x,management:w}):x,E=b?.canManage===!1?S===`manual-global`?t(`settings.openchamber.about.opencodeGuidance.manualGlobal`):S===`manual-external`?t(`settings.openchamber.about.opencodeGuidance.manualExternal`):S===`bundled`?t(`settings.openchamber.about.opencodeGuidance.bundled`):null:null,D=Qr(ue(e=>({info:e.info,checking:e.checking,available:e.available,error:e.error,downloading:e.downloading,downloaded:e.downloaded,progress:e.progress,runtimeType:e.runtimeType,checkForUpdates:e.checkForUpdates,downloadUpdate:e.downloadUpdate,restartToUpdate:e.restartToUpdate}))),{isMobile:O}=br(),k=G(e=>e.otaChannelOverride),A=G(e=>e.setOtaChannelOverride),j=he(),M=Gi(),N=k===`beta`||k===null&&M===`beta`,[P,F]=Q.useState(!1),[I,L]=Q.useState(()=>jt()),R=je(e=>{Gt(e),L(e)}),z=je(async e=>{if(e){A(`beta`),await Qr.getState().checkForUpdates();return}A(`stable`),await Qr.getState().checkForUpdates();let{info:t,otaDecision:n}=Qr.getState();t?.isChannelRollback===!0&&n?.primaryAction===`apply_ota`&&c(!0)}),B=je(()=>{c(!1),A(`beta`),Qr.getState().checkForUpdates()}),V=je(()=>{c(!1),a(!0),Qr.getState().downloadUpdate()}),H=je(e=>{e||B()}),ee=d||t(`settings.openchamber.about.state.unknown`),U=je(async()=>{if(!P){F(!0);try{let{outcome:e,eventCount:n}=await Pt();if(e===`cancelled`)return;if(e===`failed`){J.error(t(`settings.openchamber.about.diagnostics.toast.failed`));return}J.success(t(n>0?`settings.openchamber.about.diagnostics.toast.exported`:`settings.openchamber.about.diagnostics.toast.empty`))}catch{J.error(t(`settings.openchamber.about.diagnostics.toast.failed`))}finally{F(!1)}}});Q.useEffect(()=>{let e=!1;return Ur().then(t=>{e||f(t)}),zr().then(t=>{e||m(t)}),()=>{e=!0}},[]);let te=ei(d,p)??ee,W=Q.useRef(!1);Q.useEffect(()=>{if(D.checking)u(!0),W.current=!0;else if(l){let e=setTimeout(()=>{u(!1),W.current&&D.error?(J.error(t(`settings.openchamber.about.toast.checkFailed`),{description:D.error}),W.current=!1):W.current&&!D.available&&!D.error&&(J.success(t(`settings.openchamber.about.toast.latestVersion`)),W.current=!1)},Vi);return()=>clearTimeout(e)}},[t,D.checking,l,D.available,D.error]);let ne=D.checking||l;return O?(0,$.jsxs)(`div`,{className:`w-full space-y-6 pb-2`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,$.jsx)(X,{width:72,height:72}),(0,$.jsx)(`h2`,{className:`mt-4 typography-ui-header font-semibold text-foreground`,children:`OpenChamber`})]}),(0,$.jsxs)(Z,{children:[(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.clientVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:te})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenChamberVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:y||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenCodeVersion`),description:E,children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:T||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{children:(0,$.jsxs)(`div`,{className:`flex flex-nowrap items-center justify-end gap-2`,children:[(0,$.jsx)(q,{asChild:!0,variant:`outline`,size:`sm`,className:`whitespace-nowrap`,children:(0,$.jsxs)(`a`,{href:Ri,target:`_blank`,rel:`noopener noreferrer`,children:[(0,$.jsx)(Y,{name:`question`,className:`size-4`}),t(`settings.openchamber.about.actions.submitFeedback`)]})}),!ne&&D.available?(0,$.jsxs)(q,{type:`button`,variant:`default`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>a(!0),children:[(0,$.jsx)(Y,{name:`download`,className:`size-4`}),D.info?.inAppApply?t(`settings.openchamber.about.actions.applyOtaToVersion`,{version:D.info?.version||``}):D.info?.manualUpdate?t(`settings.openchamber.about.actions.installNativeToVersion`,{version:D.info?.version||``}):t(`settings.openchamber.about.actions.updateToVersion`,{version:D.info?.version||``})]}):(0,$.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>D.checkForUpdates(),disabled:ne,children:[ne?(0,$.jsx)(Y,{name:`loader`,className:`size-4 animate-spin`}):(0,$.jsx)(Y,{name:`refresh`,className:`size-4`}),t(ne?`settings.openchamber.about.state.checking`:`settings.openchamber.about.actions.checkForUpdates`)]})]})}),D.error&&(0,$.jsx)(Pr,{children:(0,$.jsx)(`p`,{className:`typography-meta text-[var(--status-error)]`,children:D.error})}),j&&(0,$.jsx)($r,{itemId:`about.beta-updates`,checked:N,onChange:z,label:t(`settings.openchamber.about.betaUpdates.label`),description:t(`settings.openchamber.about.betaUpdates.description`),ariaLabel:t(`settings.openchamber.about.betaUpdates.label`),disabled:ne}),(0,$.jsx)($r,{itemId:`about.diagnostics`,checked:I,onChange:R,label:t(`settings.openchamber.about.diagnostics.label`),ariaLabel:t(`settings.openchamber.about.diagnostics.label`)}),I&&(0,$.jsx)(Pr,{itemId:`about.export-diagnostics`,label:t(`settings.openchamber.about.diagnostics.export`),children:(0,$.jsx)(q,{type:`button`,variant:`outline`,size:`sm`,disabled:P,onClick:()=>void U(),children:t(P?`settings.openchamber.about.diagnostics.exporting`:`settings.openchamber.about.diagnostics.export`)})})]}),(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 text-center`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-5`,children:[(0,$.jsxs)(`a`,{href:Li,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 typography-ui-label text-muted-foreground transition-colors hover:text-foreground`,children:[(0,$.jsx)(Y,{name:`github-fill`,className:`size-5`}),(0,$.jsx)(`span`,{children:`GitHub`})]}),(0,$.jsxs)(`a`,{href:zi,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 typography-ui-label text-muted-foreground transition-colors hover:text-foreground`,children:[(0,$.jsx)(Y,{name:`discord-fill`,className:`size-5`}),(0,$.jsx)(`span`,{children:`Discord`})]})]}),(0,$.jsxs)(`a`,{href:Bi,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 typography-ui-label text-muted-foreground transition-colors hover:text-foreground`,children:[(0,$.jsx)(Y,{name:`twitter-xfill`,className:`size-5`}),(0,$.jsx)(`span`,{children:`@openchamber_dev`})]})]}),(0,$.jsx)(`p`,{className:`text-center typography-ui text-muted-foreground/60`,children:t(`aboutDialog.footerNote`)}),(0,$.jsx)(Br,{open:n,onOpenChange:a,info:D.info,downloading:D.downloading,downloaded:D.downloaded,progress:D.progress,error:D.error,onDownload:D.downloadUpdate,onRestart:D.restartToUpdate,runtimeType:D.runtimeType}),(0,$.jsx)($t,{open:s,onOpenChange:H,children:(0,$.jsxs)(Xt,{showCloseButton:!1,className:`max-w-sm gap-5`,children:[(0,$.jsxs)(Jt,{children:[(0,$.jsx)(Zt,{children:t(`settings.openchamber.about.betaUpdates.rollback.title`)}),(0,$.jsx)(Qt,{children:t(`settings.openchamber.about.betaUpdates.rollback.description`,{version:D.info?.version||``})})]}),(0,$.jsxs)(Yt,{children:[(0,$.jsx)(q,{type:`button`,size:`sm`,variant:`ghost`,onClick:B,children:t(`settings.openchamber.about.betaUpdates.rollback.actions.cancel`)}),(0,$.jsx)(q,{type:`button`,size:`sm`,onClick:V,children:t(`settings.openchamber.about.betaUpdates.rollback.actions.confirm`)})]})]})})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(Z,{label:t(`settings.openchamber.about.title`),children:[(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.clientVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:ee})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenChamberVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:y||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenCodeVersion`),description:E,children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:T||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{children:(0,$.jsxs)(`div`,{className:`flex flex-nowrap items-center justify-end gap-3`,children:[(0,$.jsx)(q,{asChild:!0,variant:`outline`,size:`sm`,className:`whitespace-nowrap`,children:(0,$.jsxs)(`a`,{href:Ri,target:`_blank`,rel:`noopener noreferrer`,children:[(0,$.jsx)(Y,{name:`question`,className:`size-4`}),t(`settings.openchamber.about.actions.submitFeedback`)]})}),D.checking&&(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader`,className:`h-4 w-4 animate-spin`}),(0,$.jsx)(`span`,{className:`typography-meta`,children:t(`settings.openchamber.about.state.checking`)})]}),!D.checking&&D.available&&(0,$.jsxs)(q,{size:`sm`,variant:`default`,onClick:()=>a(!0),children:[(0,$.jsx)(Y,{name:`download`,className:`h-4 w-4 mr-1`}),t(`settings.openchamber.about.actions.updateToVersion`,{version:D.info?.version||``})]}),!D.checking&&!D.available&&!D.error&&(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:t(`settings.openchamber.about.state.upToDate`)}),(0,$.jsx)(q,{size:`sm`,variant:`outline`,onClick:()=>D.checkForUpdates(),disabled:D.checking,children:t(`settings.openchamber.about.actions.checkForUpdates`)})]})}),D.error&&(0,$.jsx)(Pr,{children:(0,$.jsx)(`p`,{className:`typography-meta text-[var(--status-error)]`,children:D.error})}),(0,$.jsx)($r,{itemId:`about.diagnostics`,checked:I,onChange:R,label:t(`settings.openchamber.about.diagnostics.label`),ariaLabel:t(`settings.openchamber.about.diagnostics.label`)}),I&&(0,$.jsx)(Pr,{itemId:`about.export-diagnostics`,label:t(`settings.openchamber.about.diagnostics.export`),children:(0,$.jsx)(q,{type:`button`,variant:`outline`,size:`sm`,disabled:P,onClick:()=>void U(),children:t(P?`settings.openchamber.about.diagnostics.exporting`:`settings.openchamber.about.diagnostics.export`)})}),(0,$.jsxs)(Pr,{controlClassName:`flex-wrap`,children:[(0,$.jsxs)(`a`,{href:Li,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 text-muted-foreground hover:text-foreground typography-meta transition-colors`,children:[(0,$.jsx)(Y,{name:`github-fill`,className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:`GitHub`})]}),(0,$.jsxs)(`a`,{href:Bi,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 text-muted-foreground hover:text-foreground typography-meta transition-colors`,children:[(0,$.jsx)(Y,{name:`twitter-xfill`,className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:`@openchamber_dev`})]})]})]}),(0,$.jsx)(Br,{open:n,onOpenChange:a,info:D.info,downloading:D.downloading,downloaded:D.downloaded,progress:D.progress,error:D.error,onDownload:D.downloadUpdate,onRestart:D.restartToUpdate,runtimeType:D.runtimeType})]})},qi=`/assets/android-direct-share-1a0lp154.jpg`,Ji=`/assets/ios-share-sheet-B3Dlufnc.jpg`,Yi=`/assets/select-assistant-C89IRspC.jpg`,Xi=`openchamber:assistant-share-welcome:v1`,Zi=[{image:Ji,titleKey:`assistants.shareWelcome.example.chat.title`,descriptionKey:`assistants.shareWelcome.example.chat.description`},{image:qi,titleKey:`assistants.shareWelcome.example.article.title`,descriptionKey:`assistants.shareWelcome.example.article.description`},{image:Yi,titleKey:`assistants.shareWelcome.example.note.title`,descriptionKey:`assistants.shareWelcome.example.note.description`}],Qi=e=>{let t=(0,Ii.c)(40),{enabled:n,open:r,onOpenChange:i}=e,a=n!==void 0&&n,{t:o}=Ne(),[s,c]=Ae(Xi,!1),l=r!==void 0,u=l?r:a&&s!==!0,d;t[0]!==l||t[1]!==i||t[2]!==c?(d=()=>{l||c(!0),i?.(!1)},t[0]=l,t[1]=i,t[2]=c,t[3]=d):d=t[3];let f=je(d),p;t[4]!==f||t[5]!==i?(p=e=>{e?i?.(!0):f()},t[4]=f,t[5]=i,t[6]=p):p=t[6];let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-interactive-selection text-interactive-selection-foreground sm:size-12`,children:(0,$.jsx)(Y,{name:`share-2`,className:`size-5`})}),t[7]=m):m=t[7];let h;t[8]===o?h=t[9]:(h=o(`assistants.shareWelcome.title`),t[8]=o,t[9]=h);let g;t[10]===h?g=t[11]:(g=(0,$.jsx)(Zt,{className:`typography-ui-header text-left sm:text-3xl`,children:h}),t[10]=h,t[11]=g);let _;t[12]===o?_=t[13]:(_=o(`assistants.shareWelcome.description`),t[12]=o,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,$.jsx)(Qt,{className:`typography-ui text-left leading-6 sm:max-w-3xl sm:text-base sm:leading-7`,children:_}),t[14]=_,t[15]=v);let y;t[16]!==g||t[17]!==v?(y=(0,$.jsxs)(Jt,{className:`flex-row items-start gap-3 px-5 pb-5 pt-6 text-left sm:gap-4 sm:px-8 sm:pb-6 sm:pt-8`,children:[m,(0,$.jsxs)(`div`,{className:`min-w-0 space-y-1.5 sm:space-y-2`,children:[g,v]})]}),t[16]=g,t[17]=v,t[18]=y):y=t[18];let b;t[19]===o?b=t[20]:(b=o(`assistants.shareWelcome.examplesAria`),t[19]=o,t[20]=b);let x;t[21]===o?x=t[22]:(x=Zi.map((e,t)=>(0,$.jsxs)(`article`,{className:`w-[min(78vw,19rem)] shrink-0 snap-center overflow-hidden rounded-xl border border-border bg-background lg:w-auto lg:min-w-0`,children:[(0,$.jsxs)(`div`,{className:`relative overflow-hidden border-b border-border bg-muted`,children:[(0,$.jsx)(`img`,{src:e.image,alt:``,className:`h-72 w-full object-cover object-bottom lg:h-[min(38vh,23rem)]`}),(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`absolute left-3 top-3 flex size-7 items-center justify-center rounded-full bg-[var(--surface-elevated)] typography-meta font-semibold text-foreground shadow-sm`,children:t+1})]}),(0,$.jsxs)(`div`,{className:`space-y-1 px-4 py-3.5 lg:min-h-25`,children:[(0,$.jsx)(`h2`,{className:`typography-ui-label font-semibold text-foreground`,children:o(e.titleKey)}),(0,$.jsx)(`p`,{className:`typography-meta leading-5 text-muted-foreground`,children:o(e.descriptionKey)})]})]},e.titleKey)),t[21]=o,t[22]=x);let S;t[23]!==b||t[24]!==x?(S=(0,$.jsx)(`div`,{className:`overflow-hidden px-5 pb-5 sm:px-8 sm:pb-7`,children:(0,$.jsx)(`div`,{className:`flex snap-x snap-mandatory gap-3 overflow-x-auto pb-2 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden lg:grid lg:grid-cols-3 lg:overflow-visible lg:pb-0`,"aria-label":b,children:x})}),t[23]=b,t[24]=x,t[25]=S):S=t[25];let C;t[26]===o?C=t[27]:(C=o(`assistants.shareWelcome.action`),t[26]=o,t[27]=C);let w;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(Y,{name:`arrow-right-s`,className:`size-4`}),t[28]=w):w=t[28];let T;t[29]!==f||t[30]!==C?(T=(0,$.jsx)(Yt,{className:`border-t border-border px-5 py-4 sm:px-8 sm:py-5`,children:(0,$.jsxs)(q,{size:`lg`,className:`w-full lg:mx-auto lg:w-72`,onClick:f,children:[C,w]})}),t[29]=f,t[30]=C,t[31]=T):T=t[31];let E;t[32]!==S||t[33]!==T||t[34]!==y?(E=(0,$.jsxs)(Xt,{showCloseButton:!1,className:`w-[min(100%,31rem)] max-w-none gap-0 overflow-hidden rounded-2xl border-border bg-[var(--surface-elevated)] p-0 sm:w-[min(calc(100%-3rem),44rem)] lg:w-[min(calc(100%-4rem),74rem)]`,containerClassName:`fixed inset-0 z-50 flex items-end justify-center px-0 pt-8 sm:items-center sm:p-6`,children:[y,S,T]}),t[32]=S,t[33]=T,t[34]=y,t[35]=E):E=t[35];let D;return t[36]!==u||t[37]!==E||t[38]!==p?(D=(0,$.jsx)($t,{open:u,onOpenChange:p,children:E}),t[36]=u,t[37]=E,t[38]=p,t[39]=D):D=t[39],D},$i=`useCommandsStore`,ea=new Set([`init`,`review`]),ta=e=>ea.has(e.name),na=async(e,t)=>{await Mt(L,e,t),i()===t&&Ct(`commands`,{source:$i})},ra=se()(le(ce(e=>({selectedCommandName:null,commandDraft:null,setSelectedCommand:t=>e({selectedCommandName:t}),setCommandDraft:t=>e({commandDraft:t}),loadCommands:async()=>{let e=Rt(),t=i();try{return await Mt(L,e,t),!0}catch{return!1}},createCommand:async t=>ia(`POST`,t.name,t,e),updateCommand:async(t,n)=>ia(`PATCH`,t,n,e),deleteCommand:async t=>ia(`DELETE`,t,void 0,e),getCommandByName:e=>Bt().find(t=>t.name===e)}),{name:`commands-store`,storage:_e(),partialize:e=>({selectedCommandName:e.selectedCommandName})}),{name:`commands-store`}));async function ia(e,t,n,r){let a=Rt(),o=i();try{let s={};if(e===`POST`&&(s.template=n?.template||``,n?.description&&(s.description=n.description),n?.agent&&(s.agent=n.agent),n?.model&&(s.model=n.model),n?.scope&&(s.scope=n.scope)),e===`PATCH`)for(let e of[`description`,`agent`,`model`,`template`])n?.[e]!==void 0&&(s[e]=n[e]);let c=a?`?directory=${encodeURIComponent(a)}`:``,u=await l(`/api/config/commands/${encodeURIComponent(t)}${c}`,{method:e,headers:e===`DELETE`?a?{"x-opencode-directory":a}:void 0:{"Content-Type":`application/json`,...a?{"x-opencode-directory":a}:{}},...e===`DELETE`?{}:{body:JSON.stringify(s)}}),d=await u.json().catch(()=>null);if(!u.ok)throw Error(d?.error||`Failed to ${e.toLowerCase()} command`);return i()!==o||(await na(a,o),i()!==o)||e===`DELETE`&&r({selectedCommandName:null}),!0}catch(e){return console.error(`[CommandsStore] Command mutation failed:`,e),!1}}typeof window<`u`&&(window.__zustand_commands_store__=ra),Ht(e=>{e.source!==$i&&kt(e,`commands`)&&ra.getState().loadCommands()});var aa=()=>{try{let e=yt.getState().getActiveProject?.();if(e?.path?.trim())return e.path.trim();let t=me.getDirectory();if(t?.trim())return t.trim()}catch(e){console.warn(`[McpConfigStore] Error resolving config directory:`,e)}return null},oa=e=>e?Object.entries(e).map(([e,t])=>({key:e,value:t})):[],sa=e=>{let t=e.filter(e=>e.key.trim());if(t.length!==0)return Object.fromEntries(t.map(e=>[e.key.trim(),e.value]))},ca=e=>{if(typeof e==`string`)return e.trim()||void 0},la=se()(le(ce((e,t)=>({selectedMcpName:null,mcpDraft:null,setSelectedMcp:t=>e({selectedMcpName:t}),setMcpDraft:t=>e({mcpDraft:t}),loadMcpConfigs:async e=>{let t=aa();try{return!e?.force&&wi(L,t).length>0||await yi(L,t,i()),!0}catch(e){return console.error(`[McpConfigStore] Failed to load MCP configs:`,e),!1}},createMcp:async(e,t)=>{let n=`directory`in(t??{})?t?.directory?.trim()||null:aa(),r=t?.transportIdentity??i();try{let t=ua(e),a=n?`?directory=${encodeURIComponent(n)}`:``,o=await l(`/api/config/mcp/${encodeURIComponent(e.name)}${a}`,{method:`POST`,headers:{"Content-Type":`application/json`,...n?{"x-opencode-directory":n}:{}},body:JSON.stringify(t)}),s=await o.json().catch(()=>null);if(!o.ok)throw Error(s?.error||`Failed to create MCP server`);return i()===r?(await yi(L,n,r),await Ci(L,n,r),{ok:!0,reloadFailed:s?.reloadFailed===!0,message:s?.message,warning:s?.warning}):{ok:!0}}catch(e){return console.error(`[McpConfigStore] Failed to create MCP:`,e),{ok:!1}}},updateMcp:async(e,t,n)=>{let r=`directory`in(n??{})?n?.directory?.trim()||null:aa(),a=n?.transportIdentity??i();try{let n=ua(t),o=r?`?directory=${encodeURIComponent(r)}`:``,s=await l(`/api/config/mcp/${encodeURIComponent(e)}${o}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,...r?{"x-opencode-directory":r}:{}},body:JSON.stringify(n)}),c=await s.json().catch(()=>null);if(!s.ok)throw Error(c?.error||`Failed to update MCP server`);return i()===a?(await yi(L,r,a),await Ci(L,r,a),{ok:!0,reloadFailed:c?.reloadFailed===!0,message:c?.message,warning:c?.warning}):{ok:!0}}catch(e){throw console.error(`[McpConfigStore] Failed to update MCP:`,e),e}},deleteMcp:async(n,r)=>{let a=`directory`in(r??{})?r?.directory?.trim()||null:aa(),o=r?.transportIdentity??i();try{let r=a?`?directory=${encodeURIComponent(a)}`:``,s=await l(`/api/config/mcp/${encodeURIComponent(n)}${r}`,{method:`DELETE`,headers:a?{"x-opencode-directory":a}:void 0}),c=await s.json().catch(()=>null);if(!s.ok)throw Error(c?.error||`Failed to delete MCP server`);return mi.getState().clearDiagnostic(n,a,o),i()===o?(t().selectedMcpName===n&&e({selectedMcpName:null}),await yi(L,a,o),await Ci(L,a,o),{ok:!0,reloadFailed:c?.reloadFailed===!0,message:c?.message,warning:c?.warning}):{ok:!0}}catch(e){return console.error(`[McpConfigStore] Failed to delete MCP:`,e),{ok:!1}}}}),{name:`mcp-config-store`,storage:_e(),partialize:e=>({selectedMcpName:e.selectedMcpName})}),{name:`mcp-config-store`}));function ua(e){let t={};if(e.scope!==void 0&&(t.scope=e.scope),e.type!==void 0&&(t.type=e.type),(e.type===`local`||e.command!==void 0)&&(t.command=(e.command??[]).filter(e=>e.trim())),(e.type===`remote`||e.url!==void 0)&&(t.url=e.url?.trim()??``),e.environment!==void 0&&(t.environment=sa(e.environment)??{}),e.headers!==void 0&&(t.headers=sa(e.headers)??{}),e.oauthEnabled!==void 0||e.oauthClientId!==void 0||e.oauthClientSecret!==void 0||e.oauthScope!==void 0||e.oauthRedirectUri!==void 0)if(e.oauthEnabled===!1)t.oauth=!1;else{let n={clientId:ca(e.oauthClientId),clientSecret:ca(e.oauthClientSecret),scope:ca(e.oauthScope),redirectUri:ca(e.oauthRedirectUri)};t.oauth=n.clientId||n.clientSecret||n.scope||n.redirectUri?n:e.oauthEnabled?{}:!1}if(e.timeout!==void 0){let n=Number(e.timeout);t.timeout=Number.isFinite(n)&&n>0?n:null}return e.enabled!==void 0&&(t.enabled=e.enabled),t}var da=()=>{let e=me.getDirectory();if(typeof e==`string`&&e.trim().length>0)return e;try{let e=window.__zustand_directory_store__;if(e)return e.getState().currentDirectory}catch{}return null},fa=`useSkillsStore`,pa=e=>{if(e&&Object.prototype.hasOwnProperty.call(e,`directory`))return typeof e.directory==`string`&&e.directory.trim()||null;let t=da();return typeof t==`string`&&t.trim()||null},ma=se()(le(ce((e,t)=>({selectedSkillName:null,skillDraft:null,setSelectedSkill:t=>{e({selectedSkillName:t})},setSkillDraft:t=>{e({skillDraft:t})},loadSkills:async()=>{try{return await ft(L,da(),i()),!0}catch{return!1}},getSkillDetail:async e=>{try{let t=da(),n=t?`?directory=${encodeURIComponent(t)}`:``,r=await l(`/api/config/skills/${encodeURIComponent(e)}${n}`);return r.ok?await r.json():null}catch{return null}},createSkill:async(e,t)=>{try{let n={name:e.name,description:e.description};e.instructions&&(n.instructions=e.instructions),e.scope&&(n.scope=e.scope),e.source&&(n.source=e.source),e.supportingFiles&&(n.supportingFiles=e.supportingFiles);let r=pa(t),a=i(),o=r?`?directory=${encodeURIComponent(r)}`:``,s=await l(`/api/config/skills/${encodeURIComponent(e.name)}${o}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)}),c=await s.json().catch(()=>null);if(!s.ok){let e=c?.error||`Failed to create skill`;throw Error(e)}return await ha({directory:r,transportIdentity:a}),!0}catch{return!1}},updateSkill:async(e,t,n)=>{try{let r={};t.description!==void 0&&(r.description=t.description),t.instructions!==void 0&&(r.instructions=t.instructions),t.supportingFiles!==void 0&&(r.supportingFiles=t.supportingFiles),t.targetPath!==void 0&&(r.targetPath=t.targetPath);let a=pa(n),o=i(),s=a?`?directory=${encodeURIComponent(a)}`:``,c=await l(`/api/config/skills/${encodeURIComponent(e)}${s}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),u=await c.json().catch(()=>null);if(!c.ok){let e=u?.error||`Failed to update skill`;throw Error(e)}return await ha({directory:a,transportIdentity:o}),!0}catch{return!1}},deleteSkill:async(n,r)=>{try{let a=pa(r),o=i(),s=a?`?directory=${encodeURIComponent(a)}`:``,c=await l(`/api/config/skills/${encodeURIComponent(n)}${s}`,{method:`DELETE`}),u=await c.json().catch(()=>null);if(!c.ok){let e=u?.error||`Failed to delete skill`;throw Error(e)}return await ha({directory:a,transportIdentity:o}),i()===o&&t().selectedSkillName===n&&e({selectedSkillName:null}),!0}catch{return!1}},getSkillByName:e=>Qe(L,da()).find(t=>t.name===e),readSupportingFile:async(e,t)=>{try{let n=da(),r=n?`&directory=${encodeURIComponent(n)}`:``,i=await l(`/api/config/skills/${encodeURIComponent(e)}/files/${encodeURIComponent(t)}?${r.slice(1)}`);return i.ok?(await i.json()).content??null:null}catch{return null}},writeSupportingFile:async(e,t,n)=>{try{let r=da(),i=r?`?directory=${encodeURIComponent(r)}`:``;return(await l(`/api/config/skills/${encodeURIComponent(e)}/files/${encodeURIComponent(t)}${i}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:n})})).ok}catch{return!1}},deleteSupportingFile:async(e,t)=>{try{let n=da(),r=n?`?directory=${encodeURIComponent(n)}`:``;return(await l(`/api/config/skills/${encodeURIComponent(e)}/files/${encodeURIComponent(t)}${r}`,{method:`DELETE`})).ok}catch{return!1}}}),{name:`skills-store`,storage:_e(),partialize:e=>({selectedSkillName:e.selectedSkillName})}),{name:`skills-store`}));typeof window<`u`&&(window.__zustand_skills_store__=ma);async function ha(e){let t=e&&`directory`in e?e.directory?.trim()||null:da(),n=e?.transportIdentity??i();i()===n&&(await ft(L,t,n),i()===n&&(await ot(L,t,n),i()===n&&Ct(`skills`,{source:fa})))}var ga=null;ga||=Ht(e=>{if(e.source!==fa&&kt(e,`skills`)){let e=da(),t=i();ft(L,e,t).then(()=>ot(L,e,t)).catch(()=>void 0)}});var _a=/^#[0-9a-fA-F]{6}$/,va=/^\{file:.+\}$/i,ya=e=>[...e].sort((e,t)=>{let n=e.permission.localeCompare(t.permission);return n===0?e.pattern.localeCompare(t.pattern):n}),ba=(e,t)=>{let n=ya(e),r=ya(t);return n.length===r.length&&n.every((e,t)=>{let n=r[t];return e.permission===n.permission&&e.pattern===n.pattern&&e.action===n.action})},xa=(e,t)=>t?e.globalPermission!==t.globalPermission||!ba(e.permissionRules,t.permissionRules):!1,Sa=e=>e===`bash`?`shell`:e===`task`?`subagent`:e===`write`||e===`patch`?`edit`:e,Ca=(e,t)=>{let n=[{action:`*`,resource:`*`,effect:e}];for(let e of t)!e.permission||!e.pattern||(e.permission!==`*`||e.pattern!==`*`)&&n.push({action:Sa(e.permission),resource:e.pattern,effect:e.action});return n},wa=e=>{let t=e.trim();return t===``?null:t},Ta=({isNewAgent:e,agentName:t,draftScope:n,initialScope:r,draftHasExplicitPermission:i,current:a,initial:o,confirmDrop:s})=>{let c=Ca(a.globalPermission,a.permissionRules);if(e){let e=a.description.trim(),r=wa(a.model),l=a.system.trim(),u=xa(a,o)||i;return{name:t,mode:a.mode,...e?{description:e}:{},...r?{model:r}:{},...l?{system:l}:{},...u?{permissions:c}:{},...n?{scope:n}:{},...s?{confirmDrop:!0}:{}}}let l={name:t,...s?{confirmDrop:!0}:{}};return o?(a.description!==o.description&&(l.description=a.description.trim()||null),a.mode!==o.mode&&(l.mode=a.mode),a.model!==o.model&&(l.model=wa(a.model)),a.system!==o.system&&(l.system=a.system.trim()||null),xa(a,o)&&(l.permissions=c),n&&r&&n!==r&&(l.scope=n),l):l},Ea=e=>{if(e){if(typeof e.prompt==`string`)return va.test(e.prompt.trim())?void 0:e.prompt;if(typeof e.system==`string`)return e.system}},Da=e=>{let t=e?.model?.providerID,n=e?.model?.modelID||e?.model?.id;if(!t||!n)return``;let r=e?.model?.variant||e?.variant;return r?`${t}/${n}#${r}`:`${t}/${n}`},Oa=e=>{let t=e.trim(),n=t.indexOf(`/`);if(n<=0||n>=t.length-1)return null;let r=t.slice(0,n),i=t.slice(n+1),a=i.indexOf(`#`);return a===-1?{providerId:r,modelId:i,variant:``}:{providerId:r,modelId:i.slice(0,a),variant:i.slice(a+1)}},ka=e=>_a.test(e.trim()),Aa=e=>{let t=e.trim();return t&&t.charAt(0).toUpperCase()+t.slice(1)},ja=e=>{let t=(0,Ii.c)(37),{className:n}=e,{t:r}=Ne(),i=yt(Ma),a=yt(Na),o=yt(Pa),s=I(),c;t[0]===i?c=t[1]:(c=[...i].sort(Fa),t[0]=i,t[1]=c);let l=c,u;bb0:{if(l.length===0){u=null;break bb0}let e;t[2]!==a||t[3]!==l?(e=l.find(e=>e.id===a)??l[0],t[2]=a,t[3]=l,t[4]=e):e=t[4],u=e}let d=u;if(s||l.length===0)return null;let f;t[5]!==d?.path||t[6]!==r?(f=d?.path.split(`/`).filter(Boolean).pop()||d?.path||r(`settings.shared.projectSelector.fallbackProject`),t[5]=d?.path,t[6]=r,t[7]=f):f=t[7];let p=f,m;t[8]===n?m=t[9]:(m=K(n),t[8]=n,t[9]=m);let h;t[10]===r?h=t[11]:(h=r(`settings.shared.projectSelector.switchProjectAria`),t[10]=r,t[11]=h);let g;t[12]===r?g=t[13]:(g=r(`settings.shared.projectSelector.switchProjectTitle`),t[12]=r,t[13]=g);let _,v;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=K(`text-foreground border border-border/80 appearance-none flex h-8 w-full min-w-0 rounded-lg bg-transparent px-3 py-1 outline-none`,`hover:border-input focus-visible:ring-1 focus-visible:ring-primary/50 focus-visible:border-primary/70`,`flex items-center gap-1.5 text-left`),v=(0,$.jsx)(Y,{name:`folder`,className:`h-4 w-4 text-muted-foreground`}),t[14]=_,t[15]=v):(_=t[14],v=t[15]);let y;t[16]===p?y=t[17]:(y=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-ui-label font-medium`,children:p}),t[16]=p,t[17]=y);let b;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(Y,{name:`arrow-down-s`,className:`size-4 opacity-50`}),t[18]=b):b=t[18];let x;t[19]!==h||t[20]!==g||t[21]!==y?(x=(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-label":h,title:g,className:_,children:[v,y,b]})}),t[19]=h,t[20]=g,t[21]=y,t[22]=x):x=t[22];let S=d?.id??``,C;t[23]===o?C=t[24]:(C=e=>{e&&o(e)},t[23]=o,t[24]=C);let w;t[25]===l?w=t[26]:(w=l.map(Ia),t[25]=l,t[26]=w);let T;t[27]!==S||t[28]!==C||t[29]!==w?(T=(0,$.jsx)($n,{align:`start`,className:`w-auto`,children:(0,$.jsx)(ur,{value:S,onValueChange:C,children:w})}),t[27]=S,t[28]=C,t[29]=w,t[30]=T):T=t[30];let E;t[31]!==x||t[32]!==T?(E=(0,$.jsxs)(lr,{children:[x,T]}),t[31]=x,t[32]=T,t[33]=E):E=t[33];let D;return t[34]!==E||t[35]!==m?(D=(0,$.jsx)(`div`,{className:m,children:E}),t[34]=E,t[35]=m,t[36]=D):D=t[36],D};function Ma(e){return e.projects}function Na(e){return e.activeProjectId}function Pa(e){return e.setActiveProject}function Fa(e,t){return(e.label||e.path).localeCompare(t.label||t.path)}function Ia(e){let t=e.path.split(`/`).filter(Boolean).pop()||e.path;return(0,$.jsx)(qn,{value:e.id,children:(0,$.jsx)(`span`,{className:`min-w-0 truncate typography-ui`,children:t})},e.id)}function La(e,t){return`opencode:sidebar-group:${e}:${t}`}var Ra=e=>{let t=(0,Ii.c)(57),{label:n,count:r,storageKey:i,defaultExpanded:a,variant:o,labelPrefix:s,children:c}=e,l=a===void 0||a,u=o===void 0?`sidebar`:o,d;t[0]!==n||t[1]!==i?(d=La(i,n),t[0]=n,t[1]=i,t[2]=d):d=t[2];let f=d,p=Q.useId(),m;t[3]!==l||t[4]!==f?(m=()=>{try{let e=localStorage.getItem(f);if(e!==null)return e===`true`}catch{}return l},t[3]=l,t[4]=f,t[5]=m):m=t[5];let[h,g]=(0,Q.useState)(m),_,v;if(t[6]!==h||t[7]!==f?(_=()=>{try{localStorage.setItem(f,String(h))}catch{}},v=[f,h],t[6]=h,t[7]=f,t[8]=_,t[9]=v):(_=t[8],v=t[9]),(0,Q.useEffect)(_,v),u===`settings-card`){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>g(za),t[10]=e):e=t[10];let i;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(i=K(`flex w-full items-center gap-1 text-left`,`text-inherit transition-colors duration-150 hover:text-foreground`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`),t[11]=i):i=t[11];let a=!h&&`-rotate-90`,o;t[12]===a?o=t[13]:(o=K(`h-3.5 w-3.5 flex-shrink-0 transition-transform duration-200`,a),t[12]=a,t[13]=o);let l;t[14]===o?l=t[15]:(l=(0,$.jsx)(Y,{name:`arrow-down-s`,className:o}),t[14]=o,t[15]=l);let u=s?`${s} · `:``,d;t[16]!==n||t[17]!==u?(d=(0,$.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[u,n]}),t[16]=n,t[17]=u,t[18]=d):d=t[18];let f;t[19]===r?f=t[20]:(f=(0,$.jsx)(`span`,{className:`ml-1 tabular-nums opacity-60`,children:r}),t[19]=r,t[20]=f);let m;t[21]!==p||t[22]!==h||t[23]!==l||t[24]!==d||t[25]!==f?(m=(0,$.jsxs)(`button`,{type:`button`,onClick:e,"aria-expanded":h,"aria-controls":p,className:i,children:[l,d,f]}),t[21]=p,t[22]=h,t[23]=l,t[24]=d,t[25]=f,t[26]=m):m=t[26];let _=!h&&`hidden`,v;t[27]===_?v=t[28]:(v=K(_),t[27]=_,t[28]=v);let y;return t[29]!==c||t[30]!==p||t[31]!==m||t[32]!==v?(y=(0,$.jsx)(Z,{label:m,cardClassName:v,cardId:p,children:c}),t[29]=c,t[30]=p,t[31]=m,t[32]=v,t[33]=y):y=t[33],y}let y;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>g(Ba),t[34]=y):y=t[34];let b;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(b=K(`flex w-full items-center gap-1 rounded-md px-2 py-1 text-left`,`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,`hover:bg-[var(--interactive-hover)] transition-colors duration-150`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`),t[35]=b):b=t[35];let x=!h&&`-rotate-90`,S;t[36]===x?S=t[37]:(S=K(`h-3.5 w-3.5 flex-shrink-0 transition-transform duration-200`,x),t[36]=x,t[37]=S);let C;t[38]===S?C=t[39]:(C=(0,$.jsx)(Y,{name:`arrow-down-s`,className:S}),t[38]=S,t[39]=C);let w;t[40]===n?w=t[41]:(w=(0,$.jsx)(`span`,{className:`flex-1 truncate`,children:n}),t[40]=n,t[41]=w);let T;t[42]===r?T=t[43]:(T=(0,$.jsx)(`span`,{className:`ml-1 tabular-nums opacity-60`,children:r}),t[42]=r,t[43]=T);let E;t[44]!==p||t[45]!==h||t[46]!==C||t[47]!==w||t[48]!==T?(E=(0,$.jsxs)(`button`,{type:`button`,onClick:y,"aria-expanded":h,"aria-controls":p,className:b,children:[C,w,T]}),t[44]=p,t[45]=h,t[46]=C,t[47]=w,t[48]=T,t[49]=E):E=t[49];let D=!h,O;t[50]!==c||t[51]!==p||t[52]!==D?(O=(0,$.jsx)(`div`,{id:p,hidden:D,className:`mt-0.5 space-y-0.5 ml-2 pl-3 border-l-2 border-[var(--interactive-border)]`,children:c}),t[50]=c,t[51]=p,t[52]=D,t[53]=O):O=t[53];let k;return t[54]!==E||t[55]!==O?(k=(0,$.jsxs)(`div`,{children:[E,O]}),t[54]=E,t[55]=O,t[56]=k):k=t[56],k};function za(e){return!e}function Ba(e){return!e}var Va=e=>e===`bash`?`shell`:e===`task`?`subagent`:e===`write`||e===`patch`?`edit`:e,Ha=e=>{let t=_r(e).map(e=>({action:Va(e.action),resource:e.resource,effect:e.effect}));return t.length>0?t:void 0},Ua=(e,t)=>{let n=e,r=ct(e)?void 0:typeof n.system==`string`?n.system:typeof e.prompt==`string`?e.prompt:void 0,i=typeof n.color==`string`&&ka(n.color)?n.color:void 0;return{name:t,scope:n.scope||`user`,description:e.description,model:Da(e)||null,...r?{system:r}:{},mode:e.mode,...typeof n.steps==`number`?{steps:n.steps}:{},...e.hidden===!0?{hidden:!0}:{},...n.disabledOverride?{disabled:!0}:{},...i?{color:i}:{},permissions:Ha(n.permissions??e.permission)}},Wa=({onItemSelect:e})=>{let{t}=Ne(),[n,r]=Q.useState(null),[i,a]=Q.useState(``),[o,s]=Q.useState(null),[c,l]=Q.useState(null),[u,d]=Q.useState(!1),[f,p]=Q.useState(null),{selectedAgentName:m,setSelectedAgent:h,setAgentDraft:g,createAgent:_,deleteAgent:v,loadAgents:y}=Kt(ue(e=>({selectedAgentName:e.selectedAgentName,setSelectedAgent:e.setSelectedAgent,setAgentDraft:e.setAgentDraft,createAgent:e.createAgent,deleteAgent:e.deleteAgent,loadAgents:e.loadAgents}))),{data:b=[]}=Ze();Q.useEffect(()=>{y()},[y]);let x=()=>{let t=`new-agent`,n=t,r=1;for(;b.some(e=>e.name===n);)n=`${t}-${r}`,r++;g({name:n,scope:`user`}),h(n),e?.()},S=async e=>{if(ct(e)){J.error(t(`settings.agents.sidebar.toast.builtInCannotDelete`));return}s(e),l(`delete`)},C=async e=>{ct(e)&&(s(e),l(`reset`))},w=()=>{s(null),l(null)},T=async()=>{if(!(!o||!c)){d(!0);try{let e=await v(o.name,o.scope);e.ok?(e.requiresManualRestart?J.warning(t(`settings.agents.page.toast.savedManualRestart`)):c===`delete`?J.success(t(`settings.agents.sidebar.toast.agentDeleted`,{name:o.name})):J.success(t(`settings.agents.sidebar.toast.agentReset`,{name:o.name})),w()):c===`delete`?J.error(t(`settings.agents.sidebar.toast.deleteFailed`)):J.error(t(`settings.agents.sidebar.toast.resetFailed`))}catch(e){let n=e instanceof Error?e.message:``,r=/built-in|not deletable|not found/i.test(n);c===`delete`?J.error(t(r?`settings.agents.sidebar.toast.definitionNotFound`:`settings.agents.sidebar.toast.deleteFailed`)):J.error(t(`settings.agents.sidebar.toast.resetFailed`))}d(!1)}},E=e=>{let t=e.name,n=1,r=`${t}-copy`;for(;b.some(e=>e.name===r);)n++,r=`${t}-copy-${n}`;g(Ua(e,r)),h(r)},D=e=>{a(e.name),r(e)},O=async()=>{if(!n)return;let e=i.trim().replace(/\s+/g,`-`);if(!e){J.error(t(`settings.agents.sidebar.toast.agentNameRequired`));return}if(e===n.name){r(null);return}if(b.some(t=>t.name===e)){J.error(t(`settings.agents.sidebar.toast.agentExists`));return}let a=n,o=await _({...Ua(n,e),scope:a.scope});if(o.ok){let r=await v(n.name,a.scope);r.ok?(o.requiresManualRestart||r.requiresManualRestart?J.warning(t(`settings.agents.page.toast.savedManualRestart`)):J.success(t(`settings.agents.sidebar.toast.agentRenamed`,{name:e})),h(e)):J.error(t(`settings.agents.sidebar.toast.removeOldAfterRenameFailed`))}else J.error(t(`settings.agents.sidebar.toast.renameFailed`));r(null)},k=e=>{switch(e){case`primary`:return(0,$.jsx)(Y,{name:`ai-agent`,className:`h-3 w-3 text-primary`});case`all`:return(0,$.jsx)(Y,{name:`ai-agent-fill`,className:`h-3 w-3 text-primary`});case`subagent`:return(0,$.jsx)(Y,{name:`robot`,className:`h-3 w-3 text-primary`});default:return null}},A=b.filter(e=>{let t=e;return!$e(e)||!!t.scope||t.disabledOverride===!0}),j=A.filter(ct),M=A.filter(e=>!ct(e)),{groupedCustomAgents:N,ungroupedCustomAgents:P}=(0,Q.useMemo)(()=>{let e={},t=[];for(let n of M){let r=n;r.group?(e[r.group]||(e[r.group]=[]),e[r.group].push(n)):t.push(n)}return{groupedCustomAgents:Object.keys(e).sort((e,t)=>e.localeCompare(t)).map(t=>({name:t,agents:e[t]})),ungroupedCustomAgents:t}},[M]),F=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,$.jsx)(`span`,{children:t(`settings.agents.sidebar.section.custom`)}),(0,$.jsx)(q,{"data-settings-item":`agents.create`,size:`icon`,variant:`ghost`,onClick:x,"aria-label":t(`settings.agents.page.title.new`),children:(0,$.jsx)(Y,{name:`add`,className:`h-4 w-4`})})]});return(0,$.jsxs)(`div`,{className:`oc-settings-page-content h-full overflow-y-auto bg-background p-3`,children:[(0,$.jsx)(ja,{}),(0,$.jsx)($.Fragment,{children:A.length===0?(0,$.jsx)(Z,{children:(0,$.jsxs)(`div`,{className:`oc-settings-group-row py-12 text-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`robot-2`,className:`mx-auto mb-3 h-10 w-10 opacity-50`}),(0,$.jsx)(`p`,{className:`typography-ui-label font-medium`,children:t(`settings.agents.sidebar.empty.title`)}),(0,$.jsx)(`p`,{className:`typography-meta mt-1 opacity-75`,children:t(`settings.agents.sidebar.empty.description`)})]})}):(0,$.jsxs)($.Fragment,{children:[j.length>0&&(0,$.jsx)(Z,{label:t(`settings.agents.sidebar.section.builtIn`),children:j.map(t=>(0,$.jsx)(Ga,{agent:t,isSelected:m===t.name,onSelect:()=>{h(t.name),e?.()},onReset:()=>C(t),onDuplicate:()=>E(t),getAgentModeIcon:k,isMenuOpen:f===t.name,onMenuOpenChange:e=>p(e?t.name:null)},t.name))}),M.length>0&&(0,$.jsxs)($.Fragment,{children:[N.map(({name:n,agents:r})=>(0,$.jsx)(Ra,{label:n,count:r.length,storageKey:`agents`,variant:`settings-card`,labelPrefix:t(`settings.agents.sidebar.section.custom`),children:r.map(t=>(0,$.jsx)(Ga,{agent:t,isSelected:m===t.name,onSelect:()=>{h(t.name),e?.()},onRename:()=>D(t),onDelete:()=>S(t),onDuplicate:()=>E(t),getAgentModeIcon:k,isMenuOpen:f===t.name,onMenuOpenChange:e=>p(e?t.name:null)},t.name))},n)),P.length>0?(0,$.jsx)(Z,{label:F,children:P.map(t=>(0,$.jsx)(Ga,{agent:t,isSelected:m===t.name,onSelect:()=>{h(t.name),e?.()},onRename:()=>D(t),onDelete:()=>S(t),onDuplicate:()=>E(t),getAgentModeIcon:k,isMenuOpen:f===t.name,onMenuOpenChange:e=>p(e?t.name:null)},t.name))}):(0,$.jsx)(Z,{label:F,cardClassName:`hidden`,children:(0,$.jsx)(`span`,{})})]}),M.length===0&&(0,$.jsx)(Z,{label:F,cardClassName:`hidden`,children:(0,$.jsx)(`span`,{})})]})}),(0,$.jsx)($t,{open:o!==null&&c!==null,onOpenChange:e=>{!e&&!u&&w()},children:(0,$.jsxs)(Xt,{className:`max-w-md`,children:[(0,$.jsxs)(Jt,{children:[(0,$.jsx)(Zt,{children:t(c===`delete`?`settings.agents.sidebar.dialog.deleteTitle`:`settings.agents.sidebar.dialog.resetTitle`)}),(0,$.jsx)(Qt,{children:t(c===`delete`?`settings.agents.sidebar.dialog.deleteDescription`:`settings.agents.sidebar.dialog.resetDescription`,{name:o?.name??``})})]}),(0,$.jsxs)(Yt,{children:[(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:w,disabled:u,children:t(`settings.common.actions.cancel`)}),(0,$.jsx)(q,{size:`sm`,onClick:T,disabled:u,children:t(c===`delete`?`settings.common.actions.delete`:`settings.common.actions.reset`)})]})]})}),(0,$.jsx)($t,{open:n!==null,onOpenChange:e=>!e&&r(null),children:(0,$.jsxs)(Xt,{children:[(0,$.jsxs)(Jt,{children:[(0,$.jsx)(Zt,{children:t(`settings.agents.sidebar.renameDialog.title`)}),(0,$.jsx)(Qt,{children:t(`settings.agents.sidebar.renameDialog.description`,{name:n?.name??``})})]}),(0,$.jsx)(pn,{value:i,onChange:e=>a(e.target.value),placeholder:t(`settings.agents.sidebar.renameDialog.placeholder`),className:`text-foreground placeholder:text-muted-foreground`,onKeyDown:e=>{e.key===`Enter`&&O()}}),(0,$.jsxs)(Yt,{children:[(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>r(null),children:t(`settings.common.actions.cancel`)}),(0,$.jsx)(q,{size:`sm`,onClick:O,children:t(`settings.common.actions.rename`)})]})]})})]})},Ga=e=>{let t=(0,Ii.c)(55),{agent:n,isSelected:r,onSelect:i,onDelete:a,onReset:o,onRename:s,onDuplicate:c,getAgentModeIcon:l,isMenuOpen:u,onMenuOpenChange:d}=e,{t:f}=Ne(),p=n,m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=xr(),t[0]=m):m=t[0];let h=m,[g,_]=Q.useState(!1),v;t[1]!==a||t[2]!==c||t[3]!==s||t[4]!==o||t[5]!==f?(v=e=>(0,$.jsxs)($.Fragment,{children:[s&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),s()},children:[(0,$.jsx)(Y,{name:`edit`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.rename`)]}),(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),c()},children:[(0,$.jsx)(Y,{name:`file-copy`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.duplicate`)]}),o&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),o()},children:[(0,$.jsx)(Y,{name:`restart`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.reset`)]}),a&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),a()},className:`text-destructive focus:text-destructive`,children:[(0,$.jsx)(Y,{name:`delete-bin`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.delete`)]})]}),t[1]=a,t[2]=c,t[3]=s,t[4]=o,t[5]=f,t[6]=v):v=t[6];let y=v,b=r?`bg-interactive-selection`:`hover:bg-interactive-hover`,x;t[7]===b?x=t[8]:(x=K(`oc-settings-group-row group relative flex items-center transition-colors duration-150 select-none`,b),t[7]=b,t[8]=x);let S;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(S=h?void 0:e=>{e.preventDefault(),_(!0)},t[9]=S):S=t[9];let C;t[10]===x?C=t[11]:(C=(0,$.jsx)(`div`,{className:x,onContextMenu:S}),t[10]=x,t[11]=C);let w;t[12]===n.name?w=t[13]:(w=Aa(n.name),t[12]=n.name,t[13]=w);let T;t[14]===w?T=t[15]:(T=(0,$.jsx)(`span`,{className:`typography-ui-label font-normal truncate text-foreground`,children:w}),t[14]=w,t[15]=T);let E;t[16]!==n.mode||t[17]!==l?(E=l(n.mode),t[16]=n.mode,t[17]=l,t[18]=E):E=t[18];let D;t[19]!==n||t[20]!==p.disabledOverride||t[21]!==p.scope||t[22]!==f?(D=(p.scope||ct(n)||p.disabledOverride)&&(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground bg-muted px-1 rounded flex-shrink-0 leading-none pb-px border border-border/50`,children:p.disabledOverride?f(`settings.agents.sidebar.badge.disabled`):ct(n)?f(`settings.agents.sidebar.badge.system`):p.scope===`project`?f(`settings.common.scope.project`):f(`settings.common.scope.global`)}),t[19]=n,t[20]=p.disabledOverride,t[21]=p.scope,t[22]=f,t[23]=D):D=t[23];let O;t[24]!==D||t[25]!==T||t[26]!==E?(O=(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[T,E,D]}),t[24]=D,t[25]=T,t[26]=E,t[27]=O):O=t[27];let k;t[28]===n.description?k=t[29]:(k=n.description&&(0,$.jsx)(`div`,{className:`typography-micro text-muted-foreground/60 truncate leading-tight`,children:n.description}),t[28]=n.description,t[29]=k);let A;t[30]!==i||t[31]!==O||t[32]!==k?(A=(0,$.jsxs)(`button`,{onClick:i,className:`flex min-w-0 flex-1 flex-col gap-0 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,tabIndex:0,children:[O,k]}),t[30]=i,t[31]=O,t[32]=k,t[33]=A):A=t[33];let j;t[34]===d?j=t[35]:(j=e=>{e&&_(!1),d(e)},t[34]=d,t[35]=j);let M;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsx)(q,{size:`sm`,variant:`ghost`,className:`h-6 w-6 px-0 flex-shrink-0 -mr-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(Y,{name:`more-2`,className:`h-3.5 w-3.5`})})}),t[36]=M):M=t[36];let N;t[37]===y?N=t[38]:(N=(0,$.jsx)($n,{align:`end`,className:`w-fit min-w-20`,children:y(Gn)}),t[37]=y,t[38]=N);let P;t[39]!==u||t[40]!==j||t[41]!==N?(P=(0,$.jsxs)(lr,{open:u,onOpenChange:j,children:[M,N]}),t[39]=u,t[40]=j,t[41]=N,t[42]=P):P=t[42];let F;t[43]!==A||t[44]!==P?(F=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:[A,P]}),t[43]=A,t[44]=P,t[45]=F):F=t[45];let I;t[46]!==F||t[47]!==C?(I=(0,$.jsx)(Ei,{render:C,children:F}),t[46]=F,t[47]=C,t[48]=I):I=t[48];let L;t[49]===y?L=t[50]:(L=(0,$.jsx)(Di,{className:`w-fit min-w-20`,children:y(Oi)}),t[49]=y,t[50]=L);let R;return t[51]!==g||t[52]!==I||t[53]!==L?(R=(0,$.jsxs)(ki,{open:g,onOpenChange:_,children:[I,L]}),t[51]=g,t[52]=I,t[53]=L,t[54]=R):R=t[54],R};function Ka(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function qa(e){return typeof e==`string`&&e.length>0?e:void 0}function Ja(e){let t=Ka(e)?e:null,n=t&&Array.isArray(t.data)?t.data:Array.isArray(e)?e:null;if(!n)throw Error(`permission saved: expected list payload`);return n.map(e=>{if(!Ka(e))throw Error(`permission saved: invalid rule`);let t=qa(e.id),n=qa(e.projectID),r=qa(e.action),i=qa(e.resource);if(!t||!n||!r||!i)throw Error(`permission saved: invalid rule`);return{id:t,projectID:n,action:r,resource:i}})}async function Ya(e,t){if(!e.trim())throw Error(`permission saved: directory required`);t?.throwIfAborted();let n=await me.getApiClient().location.get({location:{directory:e}},{signal:t});t?.throwIfAborted();let r=qa(n?.project?.id);if(!r)throw Error(`permission saved: project ID required`);return r}async function Xa(e){e.signal?.throwIfAborted();let t=await me.getApiClient().permission.saved.list({projectID:e.projectID??void 0},{signal:e.signal});e.signal?.throwIfAborted();let n=Ja(t);if(e.projectID&&n.some(t=>t.projectID!==e.projectID))throw Error(`permission saved: project mismatch`);return n}async function Za(e){e.signal?.throwIfAborted(),await me.getApiClient().permission.saved.remove({id:e.id},{signal:e.signal})}function Qa(e){if(e.transport!==i()||e.generation!==o())throw Error(`Saved permission runtime changed`)}var $a=e=>Ee({queryKey:[e.transport,e.generation,`saved-permission-project`,e.directory],queryFn:async({signal:t})=>{Qa(e);let n=await Ya(e.directory,t);return Qa(e),n},retry:!1}),eo=e=>Ee({queryKey:[e.transport,e.generation,`saved-permissions`,e.directory,e.projectID],queryFn:async({signal:t})=>{if(Qa(e),!e.directory||!e.projectID)throw Error(`Saved permission scope required`);let n=await Xa({projectID:e.projectID,signal:t});return Qa(e),n},retry:!1});function to(e){let t=(0,Ii.c)(3),n=(0,Q.useSyncExternalStore)(r,o,o),a={transport:i(),generation:n,directory:e.trim()},s=De({...$a(a),enabled:!!a.directory}),c={...a,projectID:s.data??``},l=eo(c),u=!!(a.directory&&s.data)&&!s.isError,d;return t[0]!==l||t[1]!==u?(d={...l,enabled:u},t[0]=l,t[1]=u,t[2]=d):d=t[2],{project:s,list:De(d),scope:c}}async function no(e,t,n){Qa(t);let r=eo(t).queryKey;if(!e.getQueryData(r)?.some(e=>e.id===n&&e.projectID===t.projectID))throw Error(`Saved permission is outside the captured scope`);await Za({id:n}),t.transport===i()&&t.generation===o()&&(await e.cancelQueries({queryKey:r,exact:!0}),t.transport===i()&&t.generation===o()&&e.setQueryData(r,e=>e?.filter(e=>e.id!==n)))}var ro=()=>{let e=(0,Ii.c)(49),{t}=Ne(),n=pe(io),r=we(),{project:i,list:a,scope:o}=to(n),s;e[0]===r?s=e[1]:(s={mutationFn:e=>{let{scope:t,id:n}=e;return no(r,t,n)}},e[0]=r,e[1]=s);let c=Te(s),l;e[2]!==c.variables||e[3]!==o?(l=c.variables&&JSON.stringify(c.variables.scope)===JSON.stringify(o),e[2]=c.variables,e[3]=o,e[4]=l):l=e[4];let u=l,d=i.isError||a.isError,f=!!o.directory&&(i.isPending||a.isPending)&&!d,p;e[5]===a.data?p=e[6]:(p=a.data??[],e[5]=a.data,e[6]=p);let m=p,h;e[7]!==c||e[8]!==o?(h=e=>c.mutate({scope:o,id:e}),e[7]=c,e[8]=o,e[9]=h):h=e[9];let g=je(h),_;e[10]!==a||e[11]!==i?(_=()=>{i.isError?i.refetch():a.refetch()},e[10]=a,e[11]=i,e[12]=_):_=e[12];let v=je(_);if(!d&&!f&&m.length===0)return null;let y;e[13]===t?y=e[14]:(y=t(`settings.permissions.saved.title`),e[13]=t,e[14]=y);let b;e[15]!==f||e[16]!==t?(b=f?t(`common.loading`):void 0,e[15]=f,e[16]=t,e[17]=b):b=e[17];let x;e[18]!==d||e[19]!==a.isFetching||e[20]!==i.isFetching||e[21]!==v||e[22]!==t?(x=d&&(0,$.jsx)(Pr,{label:(0,$.jsx)(`span`,{role:`alert`,children:t(`settings.permissions.saved.loadFailed`)}),children:(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`xs`,onClick:v,disabled:i.isFetching||a.isFetching,children:t(`settings.permissions.saved.retry`)})}),e[18]=d,e[19]=a.isFetching,e[20]=i.isFetching,e[21]=v,e[22]=t,e[23]=x):x=e[23];let S;e[24]!==c.isError||e[25]!==u||e[26]!==t?(S=u&&c.isError&&(0,$.jsx)(Pr,{label:(0,$.jsx)(`span`,{role:`alert`,children:t(`settings.permissions.saved.deleteFailed`)}),children:null}),e[24]=c.isError,e[25]=u,e[26]=t,e[27]=S):S=e[27];let C;if(e[28]!==c.isPending||e[29]!==d||e[30]!==g||e[31]!==m||e[32]!==f||e[33]!==u||e[34]!==t){let n;e[36]!==c.isPending||e[37]!==d||e[38]!==g||e[39]!==f||e[40]!==u||e[41]!==t?(n=e=>(0,$.jsx)(Pr,{label:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{children:e.action}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground font-mono`,children:e.resource})]}),children:(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`xs`,disabled:d||f||!!(u&&c.isPending),onClick:()=>void g(e.id),children:t(`settings.permissions.saved.delete`)})},e.id),e[36]=c.isPending,e[37]=d,e[38]=g,e[39]=f,e[40]=u,e[41]=t,e[42]=n):n=e[42],C=m.map(n),e[28]=c.isPending,e[29]=d,e[30]=g,e[31]=m,e[32]=f,e[33]=u,e[34]=t,e[35]=C}else C=e[35];let w;return e[43]!==y||e[44]!==b||e[45]!==x||e[46]!==S||e[47]!==C?(w=(0,$.jsx)(`div`,{"data-settings-item":`permissions.saved`,className:`mb-6`,children:(0,$.jsxs)(Z,{label:y,description:b,children:[x,S,C]})}),e[43]=y,e[44]=b,e[45]=x,e[46]=S,e[47]=C,e[48]=w):w=e[48],w};function io(e){return e.currentDirectory}var ao=[`*`,`read`,`edit`,`glob`,`grep`,`shell`,`subagent`,`skill`,`webfetch`,`websearch`,`question`,`external_directory`,`execute`,`browser`],oo={"*":`settings.agents.page.permissions.defaultLabel`,shell:`settings.agents.page.permissions.shell`,bash:`settings.agents.page.permissions.shell`,subagent:`settings.agents.page.permissions.subagent`,task:`settings.agents.page.permissions.subagent`,edit:`settings.agents.page.permissions.edit`,write:`settings.agents.page.permissions.edit`,patch:`settings.agents.page.permissions.edit`,apply_patch:`settings.agents.page.permissions.edit`,multiedit:`settings.agents.page.permissions.edit`,external_directory:`settings.agents.page.permissions.externalDirectory`,question:`settings.agents.page.permissions.question`,read:`settings.agents.page.permissions.read`,glob:`settings.agents.page.permissions.glob`,grep:`settings.agents.page.permissions.grep`,skill:`settings.agents.page.permissions.skill`,webfetch:`settings.agents.page.permissions.webfetch`,websearch:`settings.agents.page.permissions.websearch`,execute:`settings.agents.page.permissions.execute`,browser:`settings.agents.page.permissions.browser`,session_rename:`chat.tools.display.session_rename`,session_move:`chat.tools.display.session_move`},so=e=>e===`allow`||e===`ask`||e===`deny`,co=(e,t)=>`${e}::${t}`,lo=e=>e===`bash`?`shell`:e===`task`?`subagent`:e===`write`||e===`patch`?`edit`:e,uo=e=>{let t=new Map;for(let n of e){let e=lo(n.permission);!e||e===`invalid`||n.pattern&&so(n.action)&&t.set(co(e,n.pattern),{permission:e,pattern:n.pattern,action:n.action})}return Array.from(t.values())},fo=e=>{let t=new Map;for(let n of uo(e))t.set(co(n.permission,n.pattern),n);return t},po=e=>[...e].sort((e,t)=>{let n=e.permission.localeCompare(t.permission);return n===0?e.pattern.localeCompare(t.pattern):n}),mo=(e,t)=>{let n=po(uo(e)),r=po(uo(t));return n.length===r.length&&n.every((e,t)=>{let n=r[t];return e.permission===n.permission&&e.pattern===n.pattern&&e.action===n.action})},ho=e=>e.find(e=>e.permission===`*`&&e.pattern===`*`)?.action??`allow`,go=(e,t)=>uo(e).filter(e=>e.permission!==`*`||e.pattern!==`*`).filter(e=>e.pattern!==`*`||e.action!==t),_o=e=>{if(Array.isArray(e))return uo(e.flatMap(e=>!e||typeof e!=`object`||typeof e.action!=`string`||typeof e.resource!=`string`||!so(e.effect)?[]:[{permission:e.action,pattern:e.resource,action:e.effect}]));if(so(e))return[{permission:`*`,pattern:`*`,action:e}];if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=[];for(let[n,r]of Object.entries(e))if(n!==`__originalKeys`){if(so(r)){t.push({permission:n,pattern:`*`,action:r});continue}if(r&&typeof r==`object`&&!Array.isArray(r))for(let[e,i]of Object.entries(r))so(i)&&t.push({permission:n,pattern:e,action:i})}return t},vo=()=>{let{t:e}=Ne(),{selectedAgentName:t,getAgentByName:n,createAgent:r,updateAgent:i,agentDraft:a,setAgentDraft:o}=Kt(ue(e=>({selectedAgentName:e.selectedAgentName,getAgentByName:e.getAgentByName,createAgent:e.createAgent,updateAgent:e.updateAgent,agentDraft:e.agentDraft,setAgentDraft:e.setAgentDraft}))),{data:s=[]}=Ze(),c=t?n(t):null,u=!!(a&&a.name===t&&!c),[d,f]=Q.useState(``),[p,m]=Q.useState(`user`),[h,g]=Q.useState(``),[_,v]=Q.useState(`subagent`),[y,b]=Q.useState(``),[x,S]=Q.useState(``),[C,w]=Q.useState(!1),[T,E]=Q.useState(`allow`),[D,O]=Q.useState([]),[k,A]=Q.useState([]),[j,M]=Q.useState(``),[N,P]=Q.useState(`*`),[F,I]=Q.useState(!1),[L,R]=Q.useState(!1),z=Q.useRef(null),B=pe(e=>e.currentDirectory??null),[V,H]=Q.useState([]),ee=It(e=>e.permission);Q.useEffect(()=>{let e=!1;return(async()=>{let t=await me.listToolIds({directory:B});if(e)return;let n=new Set([`write`,`patch`,`multiedit`]),r=t.map(e=>typeof e==`string`?e.trim():``).filter(Boolean).filter(e=>e!==`*`).filter(e=>e!==`invalid`).filter(e=>!n.has(e));H(Array.from(new Set(r)).sort((e,t)=>e.localeCompare(t)))})(),()=>{e=!0}},[B]);let U=Q.useMemo(()=>{let e=new Set;for(let t of s){let n=uo(_o(t.permissions??t.permission));for(let t of n)t.permission&&t.permission!==`*`&&t.permission!==`invalid`&&e.add(t.permission)}for(let t of Object.values(ee))for(let n of t){let t=n.permission?.trim();t&&t!==`invalid`&&e.add(t)}for(let t of V)e.add(t);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[s,ee,V]),te=Q.useMemo(()=>fo(D),[D]),W=Q.useMemo(()=>fo(k),[k]),ne=e=>W.get(co(e,`*`))?.action,re=e=>k.filter(t=>t.permission===e&&t.pattern!==`*`).sort((e,t)=>e.pattern.localeCompare(t.pattern)),ie=Q.useMemo(()=>{let e=new Set;for(let t of ao)e.add(t);for(let t of U)e.add(t);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[U]),ae=e=>{let t=e===`*`?T:ne(e)??T,n=re(e),r=n.reduce((e,t)=>(e[t.action]=(e[t.action]??0)+1,e),{allow:0,ask:0,deny:0}),i=[`allow`,`ask`,`deny`].filter(e=>r[e]>0).map(e=>`${r[e]} ${e}`).join(`, `);return{defaultAction:t,patternRulesCount:n.length,patternSummary:i,hasDefaultHint:!1}},oe=t=>e(t===`allow`?`settings.common.permission.allow`:t===`deny`?`settings.common.permission.deny`:`settings.common.permission.ask`),se=t=>t===`global`?e(`settings.common.scope.global`):oe(t),ce=Q.useMemo(()=>{let e=new Set;for(let t of ao)e.add(t);for(let t of U)e.add(t);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[U]),le=(e,t,n)=>{A(r=>{let i=fo(r);return i.set(co(e,t),{permission:e,pattern:t,action:n}),Array.from(i.values())})},de=(e,t)=>{A(n=>{let r=fo(n);return r.delete(co(e,t)),Array.from(r.values())})},fe=(e,t)=>{let n=te.get(co(e,t));if(n){le(e,t,n.action);return}de(e,t)},he=(e,t,n)=>{le(e,t,n)},ge=e=>{E(e),A(t=>t.filter(t=>t.pattern!==`*`||t.action!==e))},_e=t=>{let n=j.trim();if(!n){J.error(e(`settings.agents.page.toast.permissionNameRequired`));return}let r=N.trim()||`*`;if(n===`*`&&r===`*`){ge(t),M(``),P(`*`);return}r===`*`&&n!==`*`&&t===T?de(n,`*`):le(n,r,t),M(``),P(`*`)},ve=t=>{let n=oo[t];return n?e(n):t.split(/[_-]+/g).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)};Q.useEffect(()=>{M(``),P(`*`);let e=e=>{let t=uo(e),n=ho(t),r=go(t,n);return E(n),O(r),A(r),{global:n,rules:r}};if(u&&a){let t=a.name||``,n=a.scope||`user`,r=a.description||``,i=a.mode||`subagent`,o=a.model||``,s=a.system||``;f(t),m(n),g(r),v(i),b(o),S(s),w(!1);let c=e(_o(a.permissions));z.current={draftName:t,draftScope:n,description:r,mode:i,model:o,system:s,globalPermission:c.global,permissionRules:c.rules};return}if(c&&t===c.name){let t=c,n=c.description||``,r=c.mode||`subagent`,i=Da(c),a=t.scope===`project`?`project`:`user`;m(a),g(n),v(r),b(i),S(``),w(!1);let o=e(_o(t.permissions??c.permission));z.current={draftName:``,draftScope:a,description:n,mode:r,model:i,system:``,globalPermission:o.global,permissionRules:o.rules}}},[a,u,c,t]),Q.useEffect(()=>{if(!t||u)return;let e=new AbortController,n=Rt();return l(`/api/config/agents/${encodeURIComponent(t)}/config`,{signal:e.signal,headers:n?{"x-opencode-directory":n}:{}}).then(async t=>{if(!t.ok||e.signal.aborted)return;let n=Ea((await t.json()).config);e.signal.aborted||n===void 0||!z.current||(S(n),z.current={...z.current,system:n})}).catch(()=>void 0),()=>e.abort()},[u,t]);let ye=Q.useMemo(()=>{let e=z.current;return e?!!(u&&d!==e.draftName||p!==e.draftScope||h!==e.description||_!==e.mode||y!==e.model||x!==e.system||T!==e.globalPermission||!mo(k,e.permissionRules)):!1},[h,d,p,T,u,_,y,k,x]),G=(!u&&c?c.document:void 0)?.dropped?.map(e=>e.key)??[],be=!L&&ye;return t?(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[(0,$.jsx)(ro,{}),(0,$.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`typography-ui-header font-semibold text-foreground truncate`,children:u?e(`settings.agents.page.title.new`):Aa(t??``)}),(0,$.jsx)(`p`,{className:`typography-meta text-muted-foreground truncate`,children:e(u?`settings.agents.page.subtitle.new`:`settings.agents.page.subtitle.edit`)})]}),(0,$.jsx)(q,{type:`button`,onClick:async()=>{let n=u?d.trim().replace(/\s+/g,`-`):t?.trim();if(!n){J.error(e(`settings.agents.sidebar.toast.agentNameRequired`));return}if(u&&s.some(e=>e.name===n)){J.error(e(`settings.agents.sidebar.toast.agentExists`));return}R(!0);try{let t={description:h,mode:_,model:y,system:x,globalPermission:T,permissionRules:k},s=z.current,c=s?{description:s.description,mode:s.mode,model:s.model,system:s.system,globalPermission:s.globalPermission,permissionRules:s.permissionRules}:null,l=Ta({isNewAgent:u,agentName:n,draftScope:p,initialScope:s?.draftScope,draftHasExplicitPermission:u&&a?.permissions!==void 0,current:t,initial:c,confirmDrop:C}),d;u?(d=await r(l),d.ok&&o(null)):d=await i(n,l),d.ok?d.requiresManualRestart?J.warning(e(`settings.agents.page.toast.savedManualRestart`)):J.success(e(`settings.agents.page.toast.savedNextRequest`)):J.error(e(u?`settings.agents.page.toast.createFailed`:`settings.agents.page.toast.updateFailed`))}catch(t){console.error(`Error saving agent:`,t);let n=t instanceof Error&&t.message?t.message:e(`settings.agents.page.toast.saveUnexpectedError`);J.error(n)}finally{R(!1)}},disabled:!be,children:e(L?`settings.common.actions.saving`:`settings.common.actions.saveChanges`)})]}),G.length>0?(0,$.jsxs)(`div`,{className:`mt-3 flex flex-col gap-2`,children:[(0,$.jsx)(`p`,{className:`typography-meta text-muted-foreground`,children:e(`settings.agents.page.legacy.dropped`,{fields:G.join(`, `)})}),(0,$.jsxs)(`label`,{className:`flex items-center gap-2 typography-meta text-foreground`,children:[(0,$.jsx)(cn,{checked:C,onChange:w,ariaLabel:e(`settings.agents.page.legacy.confirmDrop`)}),e(`settings.agents.page.legacy.confirmDrop`)]})]}):null,(0,$.jsxs)(Z,{label:e(`settings.agents.page.section.identityRole`),children:[(0,$.jsx)(Pr,{itemId:`agents.scope`,label:e(`settings.agents.page.field.scope`),children:(0,$.jsxs)(un,{value:p,onValueChange:e=>m(e),children:[(0,$.jsx)(an,{className:`w-fit min-w-[100px]`,children:(0,$.jsx)(fn,{placeholder:e(`settings.agents.page.field.scopePlaceholder`),children:t=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:t===`project`?`folder`:`user-3`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(t===`project`?`settings.common.scope.project`:`settings.common.scope.global`)})]})})}),(0,$.jsxs)(on,{align:`end`,children:[(0,$.jsx)(nn,{value:`user`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:`user-3`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(`settings.common.scope.global`)})]})}),(0,$.jsx)(nn,{value:`project`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:`folder`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(`settings.common.scope.project`)})]})})]})]})}),u&&(0,$.jsx)(Pr,{itemId:`agents.name`,label:e(`settings.agents.page.field.agentName`),children:(0,$.jsxs)(`div`,{className:`flex items-center`,children:[(0,$.jsx)(`span`,{className:`typography-ui-label text-muted-foreground mr-1`,children:`@`}),(0,$.jsx)(pn,{value:d,onChange:e=>f(e.target.value),placeholder:e(`settings.agents.page.field.agentNamePlaceholder`),className:`h-7 w-40 px-2`})]})}),(0,$.jsx)(Pr,{label:e(`settings.common.field.description`),className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,value:h,onChange:e=>g(e.target.value),placeholder:e(`settings.agents.page.field.descriptionPlaceholder`),rows:2,className:`w-full resize-none min-h-[60px] bg-transparent`})}),(0,$.jsx)(Pr,{itemId:`agents.mode`,className:`oc-settings-agents-mode-row`,label:(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(`span`,{children:e(`settings.agents.page.field.mode`)}),(0,$.jsxs)(gn,{children:[(0,$.jsx)(mn,{asChild:!0,children:(0,$.jsx)(Y,{name:`information`,className:`h-3.5 w-3.5 text-muted-foreground/60 cursor-help`})}),(0,$.jsx)(hn,{sideOffset:8,className:`max-w-xs`,children:e(`settings.agents.page.field.modeTooltip`)})]})]}),children:(0,$.jsxs)(`div`,{className:`flex flex-nowrap items-center justify-end gap-1`,children:[(0,$.jsx)(q,{variant:`chip`,size:`xs`,"aria-pressed":_===`primary`,onClick:()=>v(`primary`),className:`!font-normal shrink-0`,children:e(`settings.agents.page.mode.primary`)}),(0,$.jsx)(q,{variant:`chip`,size:`xs`,"aria-pressed":_===`subagent`,onClick:()=>v(`subagent`),className:`!font-normal shrink-0`,children:e(`settings.agents.page.mode.subagent`)}),(0,$.jsx)(q,{variant:`chip`,size:`xs`,"aria-pressed":_===`all`,onClick:()=>v(`all`),className:`!font-normal shrink-0`,children:e(`settings.agents.page.mode.all`)})]})})]}),(0,$.jsx)(Z,{label:e(`settings.agents.page.section.modelParameters`),children:(0,$.jsx)(Pr,{itemId:`agents.model`,label:e(`settings.agents.page.field.overrideModel`),children:(0,$.jsx)(En,{providerId:Oa(y)?.providerId??``,modelId:Oa(y)?.modelId??``,variant:Oa(y)?.variant??``,onChange:(e,t,n)=>{b(e&&t?n?`${e}/${t}#${n}`:`${e}/${t}`:``)},className:`oc-settings-inline-value`})})}),(0,$.jsx)(Yr,{itemId:`agents.system-prompt`,label:e(`settings.agents.page.section.systemPrompt`),className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,value:x,onChange:e=>S(e.target.value),placeholder:e(`settings.agents.page.field.systemPromptPlaceholder`),rows:8,className:`w-full font-mono typography-meta min-h-[120px] max-h-[60vh] bg-transparent resize-y`})}),(0,$.jsx)(`div`,{"data-settings-item":`agents.permissions`,children:(0,$.jsx)(Z,{label:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,$.jsx)(`span`,{children:e(`settings.agents.page.section.toolPermissions`)}),(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>I(e=>!e),children:e(F?`settings.agents.page.permissions.hideEditor`:`settings.agents.page.permissions.advancedEditor`)})]}),children:F?(0,$.jsxs)(`div`,{className:`space-y-6 p-2`,children:[(0,$.jsx)(Pr,{label:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{children:e(`settings.agents.page.permissions.globalDefault`)}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground/70 font-mono`,children:`*`})]}),children:(0,$.jsxs)(un,{value:T,onValueChange:e=>ge(e),children:[(0,$.jsx)(an,{className:`w-[100px]`,children:(0,$.jsx)(fn,{children:oe(T)})}),(0,$.jsxs)(on,{children:[(0,$.jsx)(nn,{value:`allow`,children:e(`settings.common.permission.allow`)}),(0,$.jsx)(nn,{value:`ask`,children:e(`settings.common.permission.ask`)}),(0,$.jsx)(nn,{value:`deny`,children:e(`settings.common.permission.deny`)})]})]})}),(0,$.jsx)(`div`,{className:`space-y-4`,children:ie.filter(e=>e!==`*`).map(t=>{let n=ve(t),{defaultAction:r,patternRulesCount:i}=ae(t),a=ne(t),o=a??`global`,s=re(t),c=[`allow`,`ask`,`deny`].filter(e=>e!==T);return(0,$.jsxs)(`div`,{className:`border-t border-[var(--surface-subtle)] pt-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-ui-label text-foreground`,children:n}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground/70 font-mono`,children:t})]}),(0,$.jsx)(`div`,{className:`typography-micro text-muted-foreground`,children:i>0?e(`settings.agents.page.permissions.globalSummary`,{summary:r}):r})]}),(0,$.jsxs)(`div`,{className:`space-y-1 pl-2 mt-1`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 py-0.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground`,children:e(`settings.agents.page.permissions.pattern`)}),(0,$.jsx)(`span`,{className:`typography-micro font-mono text-foreground bg-[var(--surface-muted)] px-1 rounded`,children:`*`}),a&&(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>fe(t,`*`),className:`px-1.5 py-0 h-5`,children:(0,$.jsx)(Y,{name:`subtract`,className:`h-3.5 w-3.5 text-muted-foreground hover:text-foreground`})})]}),(0,$.jsxs)(un,{value:o,onValueChange:e=>{if(e===`global`){de(t,`*`);return}le(t,`*`,e)},children:[(0,$.jsx)(an,{className:`w-[90px]`,children:(0,$.jsx)(fn,{children:se(o)})}),(0,$.jsxs)(on,{children:[(0,$.jsx)(nn,{value:`global`,children:e(`settings.common.scope.global`)}),c.map(e=>(0,$.jsx)(nn,{value:e,className:`capitalize`,children:oe(e)},e))]})]})]}),s.map(t=>{let n=co(t.permission,t.pattern),r=te.get(n),i=!r,a=!!(r&&r.action!==t.action);return(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 py-0.5 border-t border-[var(--surface-subtle)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground`,children:e(`settings.agents.page.permissions.pattern`)}),(0,$.jsx)(`span`,{className:`typography-micro font-mono text-foreground bg-[var(--surface-muted)] px-1 rounded`,children:t.pattern}),i&&(0,$.jsx)(`span`,{className:`typography-micro text-[var(--status-success)]`,children:e(`settings.common.badge.new`)}),a&&(0,$.jsx)(`span`,{className:`typography-micro text-[var(--status-warning)]`,children:e(`settings.common.badge.modified`)}),(i||a)&&(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>i?de(t.permission,t.pattern):fe(t.permission,t.pattern),className:`px-1.5 py-0 h-5`,children:(0,$.jsx)(Y,{name:`subtract`,className:`h-3.5 w-3.5 text-muted-foreground hover:text-foreground`})})]}),(0,$.jsxs)(un,{value:t.action,onValueChange:e=>he(t.permission,t.pattern,e),children:[(0,$.jsx)(an,{className:`w-[90px]`,children:(0,$.jsx)(fn,{children:oe(t.action)})}),(0,$.jsxs)(on,{children:[(0,$.jsx)(nn,{value:`allow`,children:e(`settings.common.permission.allow`)}),(0,$.jsx)(nn,{value:`ask`,children:e(`settings.common.permission.ask`)}),(0,$.jsx)(nn,{value:`deny`,children:e(`settings.common.permission.deny`)})]})]})]},n)})]})]},t)})}),(0,$.jsxs)(`div`,{className:`border-t border-[var(--surface-subtle)] pt-3`,children:[(0,$.jsx)(`h4`,{className:`typography-ui-label text-foreground mb-2`,children:e(`settings.agents.page.permissions.addCustomRule`)}),(0,$.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-end sm:items-center gap-2`,children:[(0,$.jsxs)(un,{value:j,onValueChange:M,children:[(0,$.jsx)(an,{className:`w-full sm:w-[160px]`,children:j?(0,$.jsx)(`span`,{className:`truncate`,children:ve(j)}):(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:e(`settings.agents.page.permissions.permissionPlaceholder`)})}),(0,$.jsx)(on,{children:ce.map(e=>(0,$.jsx)(nn,{value:e,children:(0,$.jsx)(`div`,{className:`flex items-center justify-between gap-2 w-full`,children:(0,$.jsx)(`span`,{children:ve(e)})})},e))})]}),(0,$.jsx)(pn,{value:N,onChange:e=>P(e.target.value),placeholder:e(`settings.agents.page.permissions.patternPlaceholder`),className:`h-7 flex-1 font-mono text-xs`}),(0,$.jsxs)(`div`,{className:`flex gap-1`,children:[(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>_e(`allow`),children:e(`settings.common.permission.allow`)}),(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>_e(`ask`),children:e(`settings.common.permission.ask`)}),(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>_e(`deny`),children:e(`settings.common.permission.deny`)})]})]})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`typography-micro text-muted-foreground px-3 pt-2`,children:e(`settings.agents.page.permissions.lastMatchHint`)}),In(_r(k)).map((e,t)=>(0,$.jsx)(Pr,{label:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground font-mono`,children:t+1}),(0,$.jsx)(`span`,{children:e.action}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground/70 font-mono`,children:e.resource})]}),children:(0,$.jsx)(`span`,{className:K(`typography-micro capitalize px-1.5 py-0.5 rounded`,e.effect===`allow`?`text-[var(--status-success)] bg-[var(--status-success)]/10`:e.effect===`deny`?`text-[var(--status-error)] bg-[var(--status-error)]/10`:`text-[var(--status-warning)] bg-[var(--status-warning)]/10`),children:e.effect})},`${e.action}::${e.resource}::${t}`))]})})})]})}):(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[(0,$.jsx)(ro,{}),(0,$.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,$.jsxs)(`div`,{className:`text-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`robot-2`,className:`mx-auto mb-3 h-12 w-12 opacity-50`}),(0,$.jsx)(`p`,{className:`typography-body`,children:e(`settings.agents.page.empty.title`)}),(0,$.jsx)(`p`,{className:`typography-meta mt-1 opacity-75`,children:e(`settings.agents.page.empty.description`)})]})})]})})},yo=e=>{let t=(0,Ii.c)(23),{title:n,metadata:r,selected:i,onSelect:a,icon:o,actions:s,className:c}=e,l=i!==void 0&&i,u=s&&s.length>0,d=l?`bg-interactive-selection`:`hover:bg-interactive-hover`,f;t[0]!==c||t[1]!==d?(f=K(`oc-settings-group-row group relative flex items-center transition-colors duration-150`,d,c),t[0]=c,t[1]=d,t[2]=f):f=t[2];let p;t[3]===n?p=t[4]:(p=(0,$.jsx)(`span`,{className:`typography-ui-label font-normal truncate text-foreground`,children:n}),t[3]=n,t[4]=p);let m;t[5]!==o||t[6]!==p?(m=(0,$.jsxs)(`div`,{className:`flex max-w-full min-w-0 items-center gap-1.5`,children:[o,p]}),t[5]=o,t[6]=p,t[7]=m):m=t[7];let h;t[8]===r?h=t[9]:(h=r&&(0,$.jsx)(`div`,{className:`max-w-full truncate typography-micro leading-tight text-muted-foreground/60`,children:r}),t[8]=r,t[9]=h);let g;t[10]!==a||t[11]!==m||t[12]!==h?(g=(0,$.jsxs)(`button`,{onClick:a,"data-mobile-press-feedback":`soft`,className:`flex min-w-0 flex-1 self-stretch flex-col justify-center gap-0 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,tabIndex:0,children:[m,h]}),t[10]=a,t[11]=m,t[12]=h,t[13]=g):g=t[13];let _;t[14]!==s||t[15]!==u?(_=u&&(0,$.jsxs)(lr,{children:[(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsx)(q,{size:`icon`,variant:`ghost`,className:`h-6 w-6 flex-shrink-0 -mr-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(Y,{name:`more-2`,className:`h-3.5 w-3.5`})})}),(0,$.jsx)($n,{align:`end`,className:`w-fit min-w-20`,children:s.map(bo)})]}),t[14]=s,t[15]=u,t[16]=_):_=t[16];let v;t[17]!==g||t[18]!==_?(v=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 self-stretch items-center`,children:[g,_]}),t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;return t[20]!==f||t[21]!==v?(y=(0,$.jsx)(`div`,{className:f,children:v}),t[20]=f,t[21]=v,t[22]=y):y=t[22],y};function bo(e){let t=e.icon;return(0,$.jsxs)(Gn,{onClick:t=>{t.stopPropagation(),e.onClick()},className:K(e.destructive&&`text-destructive focus:text-destructive`),children:[t&&(0,$.jsx)(Y,{name:t,className:`h-4 w-4 mr-px`}),e.label]},e.label)}var xo=e=>{let t=(0,Ii.c)(8),{header:n,footer:r,children:i,className:a,variant:o}=e,s=o===void 0?`sidebar`:o,c=I(),l=s===`background`||c?`bg-background`:`bg-sidebar`,u;t[0]!==l||t[1]!==a?(u=K(`oc-settings-page-content h-full overflow-y-auto p-3`,l,a),t[0]=l,t[1]=a,t[2]=u):u=t[2];let d;return t[3]!==i||t[4]!==r||t[5]!==n||t[6]!==u?(d=(0,$.jsxs)(`div`,{className:u,children:[n,i,r]}),t[3]=i,t[4]=r,t[5]=n,t[6]=u,t[7]=d):d=t[7],d},So=`__managed_workspace__`,Co=`__current_workspace__`,wo=`默认助理`,To=()=>{let e=At.getState(),t=e.settingsDefaultModel;if(t){let e=bt(t);if(e?.providerId&&e?.modelId)return{providerID:e.providerId,modelID:e.modelId}}if(e.currentProviderId&&e.currentModelId)return{providerID:e.currentProviderId,modelID:e.currentModelId};let n=e.providers;for(let e of n){let t=e.models;if(Array.isArray(t)&&t.length>0){let n=t[0];if(n?.id)return{providerID:e.id,modelID:n.id}}}return null},Eo=(e=``)=>{let t=To();return{enabled:!0,name:e,defaultPrompt:``,workspacePath:null,providerID:t?.providerID??``,modelID:t?.modelID??``,variant:null}},Do=e=>({enabled:e.enabled,name:e.name,defaultPrompt:e.defaultPrompt,workspacePath:e.workspacePath,providerID:e.providerID,modelID:e.modelID,variant:e.variant}),Oo=e=>({enabled:e.enabled,name:e.name,defaultPrompt:e.defaultPrompt,workspacePath:e.workspacePath,providerID:e.providerID,modelID:e.modelID,variant:e.variant??null}),ko=e=>e.label?.trim()||e.path.replace(/[\\/]+$/,``).split(/[\\/]/).filter(Boolean).at(-1)||e.path,Ao=e=>{let t=Array.isArray(e.schedule.times)?e.schedule.times:e.schedule.time?[e.schedule.time]:[];return Array.from(new Set(t.filter(e=>/^([01]\d|2[0-3]):([0-5]\d)$/.test(e)))).sort((e,t)=>e.localeCompare(t))},jo=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Mo=e=>{if(!jo(e)||!jo(e.schedule)||!jo(e.execution)||!jo(e.state))return!1;let t=e.schedule.times===void 0||Array.isArray(e.schedule.times)&&e.schedule.times.every(e=>typeof e==`string`),n=e.schedule.weekdays===void 0||Array.isArray(e.schedule.weekdays)&&e.schedule.weekdays.every(e=>typeof e==`number`),r=e.state.lastStatus===void 0||e.state.lastStatus===`idle`||e.state.lastStatus===`running`||e.state.lastStatus===`success`||e.state.lastStatus===`error`;return typeof e.id==`string`&&typeof e.name==`string`&&typeof e.enabled==`boolean`&&(e.schedule.kind===`daily`||e.schedule.kind===`weekly`||e.schedule.kind===`once`||e.schedule.kind===`cron`)&&t&&n&&r&&typeof e.execution.prompt==`string`&&typeof e.execution.providerID==`string`&&typeof e.execution.modelID==`string`},No=(e,t)=>{let n=Ao(e).join(`, `)||`—`,r=e=>t(e===0?`sessions.scheduledTasks.dialog.schedule.weekdayShort.sun`:e===1?`sessions.scheduledTasks.dialog.schedule.weekdayShort.mon`:e===2?`sessions.scheduledTasks.dialog.schedule.weekdayShort.tue`:e===3?`sessions.scheduledTasks.dialog.schedule.weekdayShort.wed`:e===4?`sessions.scheduledTasks.dialog.schedule.weekdayShort.thu`:e===5?`sessions.scheduledTasks.dialog.schedule.weekdayShort.fri`:e===6?`sessions.scheduledTasks.dialog.schedule.weekdayShort.sat`:`sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown`);if(e.schedule.kind===`daily`)return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.dailyWithTimezone`,{time:n,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.daily`,{time:n});if(e.schedule.kind===`weekly`){let i=(e.schedule.weekdays??[]).map(r).join(`, `);return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone`,{days:i,time:n,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.weekly`,{days:i,time:n})}if(e.schedule.kind===`once`){let n=e.schedule.date?.trim()||t(`sessions.scheduledTasks.dialog.schedule.unknownDate`),r=e.schedule.time?.trim()||`—`;return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.onceWithTimezone`,{date:n,time:r,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.once`,{date:n,time:r})}return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.cronWithTimezone`,{cron:e.schedule.cron??``,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.cron`,{cron:e.schedule.cron??``})},Po={paused:{icon:`pause`,className:`text-muted-foreground`},idle:{icon:`pulse`,className:`text-muted-foreground`},running:{icon:`loader-4`,className:`text-[var(--status-warning)]`},success:{icon:`checkbox-circle`,className:`text-[var(--status-success)]`},error:{icon:`error-warning`,className:`text-[var(--status-error)]`}},Fo=e=>`${e.projectId}:${e.task.id}`,Io=e=>{let t=(0,Ii.c)(31),{assistantID:n}=e,{t:r}=Ne(),i=Je(n),a=i.isError,o=ze(n,a),s=Ye(a),c=new Set;for(let e of o.data?.messages??[])for(let t of e.cards)t.cardType===`schedule`&&c.add(`${t.projectID}:${t.taskID}`);let l=(i.data?.tasks??[]).flatMap(Bo),u;t[0]===i.data?.tasks?u=t[1]:(u=i.data?.tasks.some(Vo),t[0]=i.data?.tasks,t[1]=u);let d=!!u,f=(s.data?.tasks??[]).filter(e=>c.has(Fo(e))),p=[...i.data?l:a?f:[]].sort(Ho),m=(s.data?.failedProjectIds??[]).some(e=>Array.from(c).some(t=>t.startsWith(`${e}:`))),h=i.isPending||a&&(o.isPending||s.isPending),g=i.isError||o.isError||s.isError||m||d,_=je(Uo),v;t[2]!==o||t[3]!==a||t[4]!==s||t[5]!==i?(v=()=>{i.refetch(),a&&(o.refetch(),s.refetch())},t[2]=o,t[3]=a,t[4]=s,t[5]=i,t[6]=v):v=t[6];let y=je(v),b=Z,x;t[7]===r?x=t[8]:(x=r(`assistants.settings.scheduledTasks.title`),t[7]=r,t[8]=x);let S;t[9]===r?S=t[10]:(S=r(`assistants.settings.scheduledTasks.title`),t[9]=r,t[10]=S);let C=h&&p.length===0?(0,$.jsx)(Pr,{label:r(`common.loading`),children:(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin text-muted-foreground`})}):null,w;t[11]!==_||t[12]!==r?(w=e=>{let t=e.task.enabled?e.task.state?.lastStatus??`idle`:`paused`,n=Po[t],i=r(t===`paused`?`sessions.scheduledTasks.dialog.taskToggle.paused`:t===`running`?`sessions.scheduledTasks.dialog.status.running`:t===`success`?`sessions.scheduledTasks.dialog.status.success`:t===`error`?`sessions.scheduledTasks.dialog.status.error`:`sessions.scheduledTasks.dialog.status.idle`);return(0,$.jsxs)(Pr,{className:`group relative cursor-pointer transition-colors hover:bg-interactive-hover`,label:(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3`,children:[(0,$.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-lg bg-[var(--surface-muted)] text-muted-foreground`,children:(0,$.jsx)(Y,{name:`calendar`,className:`size-3.5`})}),(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`span`,{className:`block truncate typography-ui-label font-medium text-foreground`,children:e.task.name}),(0,$.jsx)(`span`,{className:`mt-0.5 block typography-micro truncate text-muted-foreground`,children:No(e.task,r)})]})]}),controlClassName:`min-w-fit`,children:[(0,$.jsxs)(`span`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 typography-micro ${n.className}`,children:[(0,$.jsx)(Y,{name:n.icon,className:`size-3.5 ${t===`running`?`animate-spin`:``}`}),i]}),(0,$.jsx)(Y,{name:`arrow-right-s`,className:`size-4`})]}),(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute inset-0 z-10 h-auto w-auto rounded-none bg-transparent p-0 hover:bg-transparent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--interactive-focus-ring)]`,onClick:_,"aria-label":r(`assistants.settings.scheduledTasks.open`,{name:e.task.name}),children:(0,$.jsx)(`span`,{className:`sr-only`,children:r(`assistants.settings.scheduledTasks.open`,{name:e.task.name})})})]},Fo(e))},t[11]=_,t[12]=r,t[13]=w):w=t[13];let T=p.map(w),E;t[14]!==g||t[15]!==y||t[16]!==r?(E=g?(0,$.jsx)(Pr,{label:r(`assistants.settings.scheduledTasks.loadError`),children:(0,$.jsx)(q,{variant:`outline`,size:`sm`,onClick:y,children:r(`assistants.actions.retry`)})}):null,t[14]=g,t[15]=y,t[16]=r,t[17]=E):E=t[17];let D;t[18]!==g||t[19]!==h||t[20]!==r||t[21]!==p?(D=!h&&!g&&p.length===0?(0,$.jsx)(Pr,{label:r(`assistants.settings.scheduledTasks.empty`),children:(0,$.jsx)(Y,{name:`calendar`,className:`size-4 text-muted-foreground`})}):null,t[18]=g,t[19]=h,t[20]=r,t[21]=p,t[22]=D):D=t[22];let O;return t[23]!==b||t[24]!==x||t[25]!==S||t[26]!==C||t[27]!==T||t[28]!==E||t[29]!==D?(O=(0,$.jsxs)(b,{label:x,ariaLabel:S,children:[C,T,E,D]}),t[23]=b,t[24]=x,t[25]=S,t[26]=C,t[27]=T,t[28]=E,t[29]=D,t[30]=O):O=t[30],O},Lo=e=>{let t=(0,Ii.c)(11),{name:n,path:r,icon:i}=e,a=i===void 0?`folder`:i,o;t[0]===a?o=t[1]:(o=(0,$.jsx)(Y,{name:a,className:`size-4 shrink-0 text-muted-foreground`}),t[0]=a,t[1]=o);let s=r?`max-w-[40%] shrink-0 truncate typography-ui-label text-foreground`:`min-w-0 truncate typography-ui-label text-foreground`,c;t[2]!==n||t[3]!==s?(c=(0,$.jsx)(`span`,{className:s,children:n}),t[2]=n,t[3]=s,t[4]=c):c=t[4];let l;t[5]===r?l=t[6]:(l=r?(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-micro text-muted-foreground`,title:r,children:r}):null,t[5]=r,t[6]=l);let u;return t[7]!==o||t[8]!==c||t[9]!==l?(u=(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[o,c,l]}),t[7]=o,t[8]=c,t[9]=l,t[10]=u):u=t[10],u},Ro=({onItemSelect:e})=>{let{t}=Ne(),n=Xe(),r=He(),i=n.data,a=qt(e=>e.settingsSelectedAssistantID),o=qt(e=>e.selectSettingsAssistant),s=qt(e=>e.requestCreate),[c,l]=Q.useState(!1);Q.useEffect(()=>{!e&&a===null&&i?.assistants[0]&&o(i.assistants[0].id)},[e,o,a,i?.assistants]),Q.useEffect(()=>{n.isSuccess&&a&&a!==`new`&&!i?.assistants.some(e=>e.id===a)&&o(e?null:i?.assistants[0]?.id??null)},[e,o,a,i?.assistants,n.isSuccess]);let u=je(()=>{s(),e?.()}),d=je(async e=>{if(i)try{if(await Ge(e,i.revision),e&&i.assistants.length===0){let e=To();if(e){let t=await We({enabled:!0,name:wo,defaultPrompt:``,workspacePath:null,providerID:e.providerID,modelID:e.modelID});o(t.id)}}}catch{ke.error(t(`assistants.settings.toast.toggleFailed`))}});return r.isSuccess&&!r.data.supported?null:(0,$.jsx)(xo,{variant:`background`,header:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Z,{description:(0,$.jsxs)($.Fragment,{children:[t(`assistants.settings.description`),(0,$.jsx)(`a`,{href:`#assistant-share-welcome`,className:`underline underline-offset-2`,onClick:e=>{e.preventDefault(),l(!0)},children:t(`assistants.settings.descriptionLearnMore`)})]}),children:(0,$.jsx)($r,{itemId:`assistants.instance-enabled`,checked:i?.enabled??!1,onChange:d,label:t(`assistants.settings.instanceEnabled`),ariaLabel:t(`assistants.settings.instanceEnabled`)})}),(0,$.jsx)(Qi,{open:c,onOpenChange:l})]}),children:(0,$.jsx)(Z,{label:(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:t(`assistants.settings.listTitle`)}),(0,$.jsx)(q,{"data-settings-item":`assistants.create`,variant:`ghost`,size:`icon`,onClick:u,"aria-label":t(`assistants.settings.create`),children:(0,$.jsx)(Y,{name:`add`,className:`size-4`})})]}),children:n.isPending||r.isPending?(0,$.jsxs)(`div`,{className:`oc-settings-group-row flex items-center justify-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`mr-2 size-4 animate-spin`}),t(`common.loading`)]}):i?.assistants.length?i.assistants.map(t=>{let n=Ie(t.name);return(0,$.jsx)(yo,{title:n.displayName,selected:a===t.id,onSelect:()=>{o(t.id),e?.()},icon:(0,$.jsx)(en,{name:t.id,emoji:n.avatarEmoji,size:24,label:n.displayName||t.name,shape:`circle`})},t.id)}):(0,$.jsx)(`div`,{className:`oc-settings-group-row text-muted-foreground`,children:t(`assistants.settings.empty`)})})})},zo=({onItemDeleted:e,assistantID:t})=>{let{t:n}=Ne(),r=Xe(),i=He(),a=r.data,o=yt(e=>e.projects),s=qt(e=>t??e.settingsSelectedAssistantID),c=qt(e=>e.selectSettingsAssistant),l=qt(e=>e.defaultShareAssistant),u=qt(e=>e.setDefaultShareAssistant),d=qt(e=>e.createRequestRevision),f=qt(e=>e.requestCreate),[p,m]=Q.useState(Eo),[h,g]=Q.useState(!1),_=Q.useRef(0),v=a?.assistants.find(e=>e.id===s)??null,y=v?Ie(v.name):null,b=Ie(p.name),x=p.workspacePath??v?.managedWorkspacePath??null,S=wt(x,{enabled:!0}).data??[];Q.useEffect(()=>{v&&m(Do(v))},[v]),Q.useEffect(()=>{t===void 0&&r.isSuccess&&s&&s!==`new`&&!v&&c(null)},[t,c,v,s,r.isSuccess]),Q.useEffect(()=>{s!==`new`||d<=_.current||(_.current=d,m(Eo(a?.assistants.length?``:wo)),window.requestAnimationFrame(()=>document.getElementById(`assistant-name`)?.focus()))},[d,s,a?.assistants.length]),Q.useEffect(()=>{r.isSuccess&&i.data?.serverInstanceID&&l?.serverInstanceID===i.data.serverInstanceID&&!a?.assistants.some(e=>e.id===l.assistantID)&&u(null)},[i.data,l,u,a?.assistants,r.isSuccess]),Q.useEffect(()=>{r.isSuccess&&Le()},[a?.revision,r.isSuccess]);let C=(e,t)=>{m(n=>({...n,[e]:t}))},w=je(()=>f()),T=je(async()=>{if(!(t!==void 0&&!v)){if(!p.name.trim()||!p.providerID||!p.modelID){ke.error(n(`assistants.settings.validation.required`));return}g(!0);try{let e=v?await Ue(v,Oo(p)):await We(p);t===void 0&&c(e.id),ke.success(n(`assistants.settings.toast.saved`))}catch{ke.error(n(`assistants.settings.toast.saveFailed`))}finally{g(!1)}}}),E=je(async()=>{if(!(!v||!window.confirm(n(`assistants.settings.deleteConfirm`,{name:v.name})))){g(!0);try{if(await Be(v),l?.assistantID===v.id){let e=await Ke();e.serverInstanceID&&l.serverInstanceID===e.serverInstanceID&&u(null)}t===void 0&&c(null),e?.(),ke.success(n(`assistants.settings.toast.deleted`))}catch{ke.error(n(`assistants.settings.toast.deleteFailed`))}finally{g(!1)}}}),D=je(async(e,t)=>{if(!t){u(null),Re();return}try{let t=await Ke();if(!t.supported||!t.serverInstanceID)return;u({serverInstanceID:t.serverInstanceID,assistantID:e}),await Re()}catch{ke.error(n(`assistants.settings.toast.toggleFailed`))}}),O=p.workspacePath===null?null:o.find(e=>e.path===p.workspacePath)??null,k=p.workspacePath!==null&&!O?p.workspacePath:null,A=p.workspacePath===null?So:O?O.id:Co,j=p.workspacePath===null?(0,$.jsx)(Lo,{name:n(`assistants.settings.workspacePlaceholder`),icon:`cloud`}):O?(0,$.jsx)(Lo,{name:ko(O),path:O.path}):(0,$.jsx)(Lo,{name:n(`assistants.settings.workspaceCurrentPath`),path:k??``,icon:`history`});return i.isSuccess&&!i.data.supported?null:r.isPending||i.isPending?(0,$.jsxs)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`mr-2 size-4 animate-spin`}),n(`common.loading`)]}):r.isError&&!a||t!==void 0&&!v?(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 px-6 text-center`,children:[(0,$.jsx)(Y,{name:`cloud-off`,className:`size-6 text-muted-foreground`}),(0,$.jsx)(`p`,{className:`typography-ui text-muted-foreground`,children:n(`assistants.state.unavailable`)}),(0,$.jsx)(q,{variant:`outline`,size:`sm`,onClick:()=>void r.refetch(),children:n(`assistants.actions.retry`)})]}):(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[r.isError&&a?(0,$.jsx)(`p`,{className:`mb-4 px-2 typography-meta text-[var(--status-warning)]`,children:n(`assistants.state.staleSnapshot`)}):null,s?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`mb-4 flex items-center gap-3`,children:[(0,$.jsx)(en,{name:v?.id??`new`,emoji:b.avatarEmoji,size:38,label:b.displayName||p.name||n(`assistants.settings.create`),shape:`circle`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h2`,{className:`truncate typography-ui-header font-semibold text-foreground`,children:v?y?.displayName:n(`assistants.settings.create`)}),p.providerID&&p.modelID?(0,$.jsx)(`p`,{className:`mt-0.5 typography-micro leading-none text-muted-foreground/70`,children:`${p.providerID}/${p.modelID}`}):null]}),v?(0,$.jsxs)(q,{variant:`ghost`,size:`sm`,onClick:E,disabled:h,className:`text-[var(--status-error)]`,children:[(0,$.jsx)(Y,{name:`delete-bin`,className:`size-4`}),n(`assistants.settings.delete`)]}):null]}),(0,$.jsxs)(Z,{children:[(0,$.jsx)(Pr,{itemId:`assistants.name`,label:n(`assistants.settings.name`),children:(0,$.jsx)(pn,{id:`assistant-name`,value:p.name,onChange:e=>C(`name`,e.target.value),className:`min-w-0 flex-1`})}),(0,$.jsx)(Pr,{label:n(`assistants.settings.enabled`),children:(0,$.jsx)(cn,{checked:p.enabled,onChange:e=>C(`enabled`,e),ariaLabel:n(`assistants.settings.enabled`)})}),v?(0,$.jsx)(Pr,{itemId:`assistants.default-share`,label:n(`assistants.settings.defaultShare`),children:(0,$.jsx)(cn,{checked:l?.assistantID===v.id&&l.serverInstanceID===i.data?.serverInstanceID,onChange:e=>void D(v.id,e),ariaLabel:n(`assistants.settings.defaultShare`)})}):null]}),(0,$.jsx)(Yr,{itemId:`assistants.prompt`,label:n(`assistants.settings.defaultPrompt`),className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,id:`assistant-prompt`,value:p.defaultPrompt,onChange:e=>C(`defaultPrompt`,e.target.value),placeholder:n(`assistants.settings.defaultPromptPlaceholder`),rows:12,outerClassName:`min-h-[240px] max-h-[70vh]`})}),(0,$.jsx)(Z,{label:n(`assistants.settings.runtime`),children:(0,$.jsx)(Pr,{itemId:`assistants.model`,label:n(`assistants.settings.model`),children:(0,$.jsx)(En,{providerId:p.providerID,modelId:p.modelID,variant:p.variant??``,providers:S,onChange:(e,t,n)=>m(r=>({...r,providerID:e,modelID:t,variant:n||null})),className:`oc-settings-inline-value`})})}),(0,$.jsx)(Yr,{itemId:`assistants.workspace`,label:n(`assistants.settings.workspace`),description:n(`assistants.settings.workspaceChangeHint`),descriptionPlacement:`outside`,children:(0,$.jsxs)(un,{value:A,onValueChange:e=>{if(e===So){C(`workspacePath`,null);return}let t=o.find(t=>t.id===e);t&&C(`workspacePath`,t.path)},children:[(0,$.jsx)(an,{title:p.workspacePath??n(`assistants.settings.workspacePlaceholder`),className:`w-full max-w-xl [&_[data-slot=select-value]]:min-w-0 [&_[data-slot=select-value]]:flex-1 [&_[data-slot=select-value]]:overflow-hidden`,children:(0,$.jsx)(fn,{children:j})}),(0,$.jsxs)(on,{align:`start`,className:`w-[min(32rem,calc(100vw-2rem))]`,children:[(0,$.jsx)(nn,{value:So,children:(0,$.jsx)(Lo,{name:n(`assistants.settings.workspacePlaceholder`),icon:`cloud`})}),o.map(e=>(0,$.jsx)(nn,{value:e.id,children:(0,$.jsx)(Lo,{name:ko(e),path:e.path})},e.id)),k?(0,$.jsx)(nn,{value:Co,disabled:!0,children:(0,$.jsx)(Lo,{name:n(`assistants.settings.workspaceCurrentPath`),path:k,icon:`history`})}):null]})]})}),v?(0,$.jsx)(Io,{assistantID:v.id}):null,(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsxs)(q,{onClick:T,disabled:h,children:[h?(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}):null,n(`assistants.settings.save`)]})})]}):(0,$.jsxs)(`div`,{className:`flex min-h-80 flex-col items-center justify-center gap-3 px-6 text-center text-muted-foreground`,children:[(0,$.jsx)(en,{name:`assistants-empty`,size:44,shape:`circle`}),(0,$.jsx)(`p`,{className:`typography-ui`,children:n(`assistants.settings.empty`)}),(0,$.jsxs)(q,{"data-settings-item":`assistants.create`,size:`sm`,onClick:w,children:[(0,$.jsx)(Y,{name:`add`,className:`size-4`}),n(`assistants.settings.create`)]})]})]})})};function Bo(e){return Mo(e.task)?[{projectId:e.projectID,task:e.task}]:[]}function Vo(e){return!Mo(e.task)}function Ho(e,t){return e.task.enabled===t.task.enabled?e.task.name.localeCompare(t.task.name):e.task.enabled?-1:1}function Uo(){G.getState().setActiveMainTab(`schedule`),G.getState().setScheduledTasksDialogOpen(!0)}var Wo=`~/.config/opencode/AGENTS.md`,Go=async(e,t)=>{let n=await e.json().catch(()=>null);return typeof n?.error==`string`&&n.error.trim()?n.error:t},Ko=e=>e.length>0&&!e.endsWith(`
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{E as n}from"./runtime-auth-D66yq6ie.js";import{c as r,i,l as a,n as o,r as s,t as c}from"./runtime-switch-LvWDU-SL.js";import{n as l}from"./runtime-fetch-Fs9ZV2V8.js";import{Cn as u,D as d,E as f,Gt as p,Ht as m,Jt as h,O as g,Qt as _,R as v,Sn as y,Ut as b,Wt as x,Yt as S,Zt as C,_n as w,a as T,d as E,f as D,fn as O,gn as k,i as A,k as j,l as M,nn as N,nt as P,r as F,tn as I,u as L,un as R,vn as z}from"./persistence-D0y7226-.js";import{a as B,g as V,h as H,i as ee,l as U,m as te,n as W,p as ne,r as re,t as ie,u as ae}from"./desktopHosts-JGFqhlaM.js";import{n as oe}from"./desktopRelayRestore-CHEwrI93.js";import{a as se,i as ce,r as le,t as ue}from"./vendor-zustand-B4dlGEM2.js";import{nt as de,rt as fe}from"./vendor-base-ui-CnHfUmDN.js";import{Ct as pe,Nt as me,n as he,t as ge}from"./platform-D_c-T5nO.js";import{b as _e,d as ve,i as ye,n as G,o as be,s as xe}from"./useUIStore-syVmbuDA.js";import{n as Se}from"./vendor-react-DLPElpoQ.js";import{n as Ce}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{l as we,n as Te,o as Ee,s as De}from"./vendor-tanstack-react-query-D7pys_c9.js";import{W as Oe}from"./vendor-codemirror-autocomplete-DHomsvW7.js";import{r as ke}from"./vendor-sonner-DVzioF3d.js";import{c as Ae,n as je}from"./vendor-reactuses-core-Dq5ocTF8.js";import{d as Me,f as Ne,o as Pe,p as Fe,r as K,t as q}from"./button-DIIrsMjW.js";import{a as Ie,i as Le,r as Re}from"./MobileShareBridge-DyUqMvTH.js";import{_ as ze,a as Be,d as Ve,g as He,h as Ue,i as We,m as Ge,s as Ke,t as qe,v as Je,x as Ye,y as Xe}from"./MobileDetailNavigation-L9ItollZ.js";import{$a as Ze,Ba as Qe,Fa as $e,Fn as et,Ga as tt,Ha as nt,Ia as rt,In as it,Ja as at,Ka as ot,La as st,Pa as ct,Qa as lt,Ra as ut,Tr as J,Ua as dt,Va as ft,Wa as pt,Xa as mt,Ya as ht,Za as gt,_a as _t,aa as vt,ao as yt,ba as bt,ca as xt,ci as St,co as Ct,eo as wt,ha as Tt,ia as Et,io as Dt,la as Ot,lo as kt,ma as At,mi as jt,no as Mt,o as Nt,pi as Pt,qa as Ft,qt as It,ra as Lt,ro as Rt,sa as zt,to as Bt,ui as Vt,uo as Ht,va as Ut,ya as Wt,yi as Gt,za as Kt}from"./useMobileNavigationStore-DztaW6eA.js";import{i as qt}from"./useAssistantUIStore-Bz4tRflF.js";import{a as Jt,i as Yt,n as Xt,o as Zt,r as Qt,t as $t}from"./dialog-CQ63sc9E.js";import{t as en}from"./AgentAvatar-CzTtVMnI.js";import{n as Y}from"./Icon-B8fSTLdP.js";import{T as tn,_ as nn,a as rn,b as an,h as on,i as sn,j as cn,k as ln,m as un,n as dn,x as fn}from"./projectMeta-dAvoTdWm.js";import{t as pn}from"./input-BVu-iykl.js";import{i as mn,n as hn,t as gn}from"./tooltip-DYeQ_Hvy.js";import{At as _n,Bt as vn,Ct as yn,E as bn,F as xn,Ft as Sn,Ht as Cn,I as wn,It as Tn,J as En,K as Dn,L as On,Lt as kn,Mt as An,N as jn,Nt as Mn,O as Nn,Pt as Pn,Qt as Fn,R as In,Rt as X,St as Ln,T as Rn,V as zn,Vt as Bn,Wt as Vn,Zt as Hn,a as Un,an as Wn,at as Gn,bt as Kn,ct as qn,dt as Jn,en as Yn,gt as Xn,ht as Zn,i as Qn,it as $n,j as er,jt as tr,k as nr,kt as rr,mt as ir,nn as ar,o as or,on as sr,rn as cr,rt as lr,st as ur,t as dr,tn as fr,tt as pr,u as mr,ut as hr,xt as gr,z as _r,zt as vr}from"./useSessionAutoCleanup-2t3bSPWk.js";import{n as yr}from"./useThemeSystem-DMzWVJaW.js";import{i as br,r as xr}from"./OverlayScrollbar-S-7EePsU.js";import{n as Sr}from"./useRuntimeAPIs-DSLXJybW.js";import{n as Cr,t as wr}from"./textarea-BoXpPjTd.js";import{P as Tr,i as Er,j as Dr,n as Or}from"./appThemeRegistry-DzON5yeB.js";import{n as kr}from"./MarkdownRenderer-mDkW7fMx.js";import{a as Ar}from"./url-CGbJbiJq.js";import{l as jr}from"./markdown-worker-bS5OgGO3.js";import{t as Mr}from"./sortable-tabs-strip-BsObV7Pl.js";import{A as Nr,B as Pr,C as Fr,D as Ir,E as Lr,F as Rr,G as zr,H as Br,I as Vr,J as Hr,K as Ur,L as Wr,M as Gr,N as Kr,O as qr,P as Jr,R as Yr,S as Xr,T as Zr,U as Qr,V as $r,W as ei,Y as ti,_ as ni,a as ri,b as ii,c as ai,f as oi,g as si,h as ci,j as li,k as ui,l as di,m as fi,n as pi,q as mi,s as hi,u as gi,v as _i,x as vi,z as Z}from"./MobileSurface-CP23L9re.js";import{a as yi,c as bi,i as xi,l as Si,o as Ci,r as wi,s as Ti}from"./mcpQueries-Bce7XemU.js";import{a as Ei,n as Di,r as Oi,t as ki}from"./context-menu-BGBUpZEQ.js";import{n as Ai,r as ji,t as Mi}from"./collapsible-CnvUeYst.js";import{n as Ni,t as Pi}from"./vendor-yaml-C9KlJAlj.js";import{t as Fi}from"./vendor-qrcode-DAuVxiQR.js";var Ii=Se(),Q=e(fe(),1),$=de(),Li=`https://github.com/yee94/openchamber`,Ri=`${Li}/issues/new`,zi=`https://discord.gg/ZYRSdnwwKA`,Bi=`https://x.com/openchamber_dev`,Vi=800,Hi={"manual-global":`settings.openchamber.about.opencodeManagement.manual-global`,"manual-external":`settings.openchamber.about.opencodeManagement.manual-external`,bundled:`settings.openchamber.about.opencodeManagement.bundled`,"in-app":`settings.openchamber.about.opencodeManagement.in-app`,none:`settings.openchamber.about.opencodeManagement.none`},Ui=e=>typeof e==`string`&&e.trim()?e.trim():null,Wi=(e,t,n)=>({queryKey:[t,`about`,n,e],queryFn:async({signal:r})=>{if(t!==i()||n!==o())throw Error(`Stale About runtime`);let a=await l(e,{method:`GET`,headers:{Accept:`application/json`},signal:r});if(!a.ok)throw Error(`About snapshot: ${a.status}`);let s=await a.json();if(!s||typeof s!=`object`||Array.isArray(s))throw Error(`Invalid About snapshot`);if(r.aborted||t!==i()||n!==o())throw Error(`Stale About runtime`);return s},retry:!1,staleTime:3e4}),Gi=()=>{try{let e=Ce;return((typeof e.getConfig==`function`?e.getConfig():void 0)??e.config)?.OpenChamberOTA?.channel===`stable`?`stable`:`beta`}catch{return`beta`}},Ki=({initialUpdateDialogOpen:e=!1})=>{let{t}=Ne(),[n,a]=Q.useState(e),[s,c]=Q.useState(!1),[l,u]=Q.useState(!1),[d,f]=Q.useState(null),[p,m]=Q.useState(null),h=Q.useSyncExternalStore(r,i,i),g=Q.useSyncExternalStore(r,o,o),_=De(Wi(`/api/system/info`,h,g)),v=De(Wi(`/api/opencode/upgrade-status`,h,g)),y=Ui(_.data?.openchamberVersion),b=v.data,x=Ui(b?.serveVersion)??Ui(b?.currentVersion),S=Ui(b?.management),C=S&&Object.hasOwn(Hi,S)?Hi[S]:null,w=b?.canManage===!1&&C?t(C):null,T=x&&w?t(`settings.openchamber.about.opencodeVersionWithManagement`,{version:x,management:w}):x,E=b?.canManage===!1?S===`manual-global`?t(`settings.openchamber.about.opencodeGuidance.manualGlobal`):S===`manual-external`?t(`settings.openchamber.about.opencodeGuidance.manualExternal`):S===`bundled`?t(`settings.openchamber.about.opencodeGuidance.bundled`):null:null,D=Qr(ue(e=>({info:e.info,checking:e.checking,available:e.available,error:e.error,downloading:e.downloading,downloaded:e.downloaded,progress:e.progress,runtimeType:e.runtimeType,checkForUpdates:e.checkForUpdates,downloadUpdate:e.downloadUpdate,restartToUpdate:e.restartToUpdate}))),{isMobile:O}=br(),k=G(e=>e.otaChannelOverride),A=G(e=>e.setOtaChannelOverride),j=he(),M=Gi(),N=k===`beta`||k===null&&M===`beta`,[P,F]=Q.useState(!1),[I,L]=Q.useState(()=>jt()),R=je(e=>{Gt(e),L(e)}),z=je(async e=>{if(e){A(`beta`),await Qr.getState().checkForUpdates();return}A(`stable`),await Qr.getState().checkForUpdates();let{info:t,otaDecision:n}=Qr.getState();t?.isChannelRollback===!0&&n?.primaryAction===`apply_ota`&&c(!0)}),B=je(()=>{c(!1),A(`beta`),Qr.getState().checkForUpdates()}),V=je(()=>{c(!1),a(!0),Qr.getState().downloadUpdate()}),H=je(e=>{e||B()}),ee=d||t(`settings.openchamber.about.state.unknown`),U=je(async()=>{if(!P){F(!0);try{let{outcome:e,eventCount:n}=await Pt();if(e===`cancelled`)return;if(e===`failed`){J.error(t(`settings.openchamber.about.diagnostics.toast.failed`));return}J.success(t(n>0?`settings.openchamber.about.diagnostics.toast.exported`:`settings.openchamber.about.diagnostics.toast.empty`))}catch{J.error(t(`settings.openchamber.about.diagnostics.toast.failed`))}finally{F(!1)}}});Q.useEffect(()=>{let e=!1;return Ur().then(t=>{e||f(t)}),zr().then(t=>{e||m(t)}),()=>{e=!0}},[]);let te=ei(d,p)??ee,W=Q.useRef(!1);Q.useEffect(()=>{if(D.checking)u(!0),W.current=!0;else if(l){let e=setTimeout(()=>{u(!1),W.current&&D.error?(J.error(t(`settings.openchamber.about.toast.checkFailed`),{description:D.error}),W.current=!1):W.current&&!D.available&&!D.error&&(J.success(t(`settings.openchamber.about.toast.latestVersion`)),W.current=!1)},Vi);return()=>clearTimeout(e)}},[t,D.checking,l,D.available,D.error]);let ne=D.checking||l;return O?(0,$.jsxs)(`div`,{className:`w-full space-y-6 pb-2`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,$.jsx)(X,{width:72,height:72}),(0,$.jsx)(`h2`,{className:`mt-4 typography-ui-header font-semibold text-foreground`,children:`OpenChamber`})]}),(0,$.jsxs)(Z,{children:[(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.clientVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:te})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenChamberVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:y||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenCodeVersion`),description:E,children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:T||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{children:(0,$.jsxs)(`div`,{className:`flex flex-nowrap items-center justify-end gap-2`,children:[(0,$.jsx)(q,{asChild:!0,variant:`outline`,size:`sm`,className:`whitespace-nowrap`,children:(0,$.jsxs)(`a`,{href:Ri,target:`_blank`,rel:`noopener noreferrer`,children:[(0,$.jsx)(Y,{name:`question`,className:`size-4`}),t(`settings.openchamber.about.actions.submitFeedback`)]})}),!ne&&D.available?(0,$.jsxs)(q,{type:`button`,variant:`default`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>a(!0),children:[(0,$.jsx)(Y,{name:`download`,className:`size-4`}),D.info?.inAppApply?t(`settings.openchamber.about.actions.applyOtaToVersion`,{version:D.info?.version||``}):D.info?.manualUpdate?t(`settings.openchamber.about.actions.installNativeToVersion`,{version:D.info?.version||``}):t(`settings.openchamber.about.actions.updateToVersion`,{version:D.info?.version||``})]}):(0,$.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>D.checkForUpdates(),disabled:ne,children:[ne?(0,$.jsx)(Y,{name:`loader`,className:`size-4 animate-spin`}):(0,$.jsx)(Y,{name:`refresh`,className:`size-4`}),t(ne?`settings.openchamber.about.state.checking`:`settings.openchamber.about.actions.checkForUpdates`)]})]})}),D.error&&(0,$.jsx)(Pr,{children:(0,$.jsx)(`p`,{className:`typography-meta text-[var(--status-error)]`,children:D.error})}),j&&(0,$.jsx)($r,{itemId:`about.beta-updates`,checked:N,onChange:z,label:t(`settings.openchamber.about.betaUpdates.label`),description:t(`settings.openchamber.about.betaUpdates.description`),ariaLabel:t(`settings.openchamber.about.betaUpdates.label`),disabled:ne}),(0,$.jsx)($r,{itemId:`about.diagnostics`,checked:I,onChange:R,label:t(`settings.openchamber.about.diagnostics.label`),ariaLabel:t(`settings.openchamber.about.diagnostics.label`)}),I&&(0,$.jsx)(Pr,{itemId:`about.export-diagnostics`,label:t(`settings.openchamber.about.diagnostics.export`),children:(0,$.jsx)(q,{type:`button`,variant:`outline`,size:`sm`,disabled:P,onClick:()=>void U(),children:t(P?`settings.openchamber.about.diagnostics.exporting`:`settings.openchamber.about.diagnostics.export`)})})]}),(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 text-center`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-5`,children:[(0,$.jsxs)(`a`,{href:Li,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 typography-ui-label text-muted-foreground transition-colors hover:text-foreground`,children:[(0,$.jsx)(Y,{name:`github-fill`,className:`size-5`}),(0,$.jsx)(`span`,{children:`GitHub`})]}),(0,$.jsxs)(`a`,{href:zi,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 typography-ui-label text-muted-foreground transition-colors hover:text-foreground`,children:[(0,$.jsx)(Y,{name:`discord-fill`,className:`size-5`}),(0,$.jsx)(`span`,{children:`Discord`})]})]}),(0,$.jsxs)(`a`,{href:Bi,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 typography-ui-label text-muted-foreground transition-colors hover:text-foreground`,children:[(0,$.jsx)(Y,{name:`twitter-xfill`,className:`size-5`}),(0,$.jsx)(`span`,{children:`@openchamber_dev`})]})]}),(0,$.jsx)(`p`,{className:`text-center typography-ui text-muted-foreground/60`,children:t(`aboutDialog.footerNote`)}),(0,$.jsx)(Br,{open:n,onOpenChange:a,info:D.info,downloading:D.downloading,downloaded:D.downloaded,progress:D.progress,error:D.error,onDownload:D.downloadUpdate,onRestart:D.restartToUpdate,runtimeType:D.runtimeType}),(0,$.jsx)($t,{open:s,onOpenChange:H,children:(0,$.jsxs)(Xt,{showCloseButton:!1,className:`max-w-sm gap-5`,children:[(0,$.jsxs)(Jt,{children:[(0,$.jsx)(Zt,{children:t(`settings.openchamber.about.betaUpdates.rollback.title`)}),(0,$.jsx)(Qt,{children:t(`settings.openchamber.about.betaUpdates.rollback.description`,{version:D.info?.version||``})})]}),(0,$.jsxs)(Yt,{children:[(0,$.jsx)(q,{type:`button`,size:`sm`,variant:`ghost`,onClick:B,children:t(`settings.openchamber.about.betaUpdates.rollback.actions.cancel`)}),(0,$.jsx)(q,{type:`button`,size:`sm`,onClick:V,children:t(`settings.openchamber.about.betaUpdates.rollback.actions.confirm`)})]})]})})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(Z,{label:t(`settings.openchamber.about.title`),children:[(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.clientVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:ee})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenChamberVersion`),children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:y||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{label:t(`settings.openchamber.about.field.instanceOpenCodeVersion`),description:E,children:(0,$.jsx)(`span`,{className:`typography-ui-label font-mono text-foreground text-right`,children:T||t(`settings.openchamber.about.state.unknown`)})}),(0,$.jsx)(Pr,{children:(0,$.jsxs)(`div`,{className:`flex flex-nowrap items-center justify-end gap-3`,children:[(0,$.jsx)(q,{asChild:!0,variant:`outline`,size:`sm`,className:`whitespace-nowrap`,children:(0,$.jsxs)(`a`,{href:Ri,target:`_blank`,rel:`noopener noreferrer`,children:[(0,$.jsx)(Y,{name:`question`,className:`size-4`}),t(`settings.openchamber.about.actions.submitFeedback`)]})}),D.checking&&(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader`,className:`h-4 w-4 animate-spin`}),(0,$.jsx)(`span`,{className:`typography-meta`,children:t(`settings.openchamber.about.state.checking`)})]}),!D.checking&&D.available&&(0,$.jsxs)(q,{size:`sm`,variant:`default`,onClick:()=>a(!0),children:[(0,$.jsx)(Y,{name:`download`,className:`h-4 w-4 mr-1`}),t(`settings.openchamber.about.actions.updateToVersion`,{version:D.info?.version||``})]}),!D.checking&&!D.available&&!D.error&&(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:t(`settings.openchamber.about.state.upToDate`)}),(0,$.jsx)(q,{size:`sm`,variant:`outline`,onClick:()=>D.checkForUpdates(),disabled:D.checking,children:t(`settings.openchamber.about.actions.checkForUpdates`)})]})}),D.error&&(0,$.jsx)(Pr,{children:(0,$.jsx)(`p`,{className:`typography-meta text-[var(--status-error)]`,children:D.error})}),(0,$.jsx)($r,{itemId:`about.diagnostics`,checked:I,onChange:R,label:t(`settings.openchamber.about.diagnostics.label`),ariaLabel:t(`settings.openchamber.about.diagnostics.label`)}),I&&(0,$.jsx)(Pr,{itemId:`about.export-diagnostics`,label:t(`settings.openchamber.about.diagnostics.export`),children:(0,$.jsx)(q,{type:`button`,variant:`outline`,size:`sm`,disabled:P,onClick:()=>void U(),children:t(P?`settings.openchamber.about.diagnostics.exporting`:`settings.openchamber.about.diagnostics.export`)})}),(0,$.jsxs)(Pr,{controlClassName:`flex-wrap`,children:[(0,$.jsxs)(`a`,{href:Li,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 text-muted-foreground hover:text-foreground typography-meta transition-colors`,children:[(0,$.jsx)(Y,{name:`github-fill`,className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:`GitHub`})]}),(0,$.jsxs)(`a`,{href:Bi,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 text-muted-foreground hover:text-foreground typography-meta transition-colors`,children:[(0,$.jsx)(Y,{name:`twitter-xfill`,className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:`@openchamber_dev`})]})]})]}),(0,$.jsx)(Br,{open:n,onOpenChange:a,info:D.info,downloading:D.downloading,downloaded:D.downloaded,progress:D.progress,error:D.error,onDownload:D.downloadUpdate,onRestart:D.restartToUpdate,runtimeType:D.runtimeType})]})},qi=`/assets/android-direct-share-1a0lp154.jpg`,Ji=`/assets/ios-share-sheet-B3Dlufnc.jpg`,Yi=`/assets/select-assistant-C89IRspC.jpg`,Xi=`openchamber:assistant-share-welcome:v1`,Zi=[{image:Ji,titleKey:`assistants.shareWelcome.example.chat.title`,descriptionKey:`assistants.shareWelcome.example.chat.description`},{image:qi,titleKey:`assistants.shareWelcome.example.article.title`,descriptionKey:`assistants.shareWelcome.example.article.description`},{image:Yi,titleKey:`assistants.shareWelcome.example.note.title`,descriptionKey:`assistants.shareWelcome.example.note.description`}],Qi=e=>{let t=(0,Ii.c)(40),{enabled:n,open:r,onOpenChange:i}=e,a=n!==void 0&&n,{t:o}=Ne(),[s,c]=Ae(Xi,!1),l=r!==void 0,u=l?r:a&&s!==!0,d;t[0]!==l||t[1]!==i||t[2]!==c?(d=()=>{l||c(!0),i?.(!1)},t[0]=l,t[1]=i,t[2]=c,t[3]=d):d=t[3];let f=je(d),p;t[4]!==f||t[5]!==i?(p=e=>{e?i?.(!0):f()},t[4]=f,t[5]=i,t[6]=p):p=t[6];let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-interactive-selection text-interactive-selection-foreground sm:size-12`,children:(0,$.jsx)(Y,{name:`share-2`,className:`size-5`})}),t[7]=m):m=t[7];let h;t[8]===o?h=t[9]:(h=o(`assistants.shareWelcome.title`),t[8]=o,t[9]=h);let g;t[10]===h?g=t[11]:(g=(0,$.jsx)(Zt,{className:`typography-ui-header text-left sm:text-3xl`,children:h}),t[10]=h,t[11]=g);let _;t[12]===o?_=t[13]:(_=o(`assistants.shareWelcome.description`),t[12]=o,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,$.jsx)(Qt,{className:`typography-ui text-left leading-6 sm:max-w-3xl sm:text-base sm:leading-7`,children:_}),t[14]=_,t[15]=v);let y;t[16]!==g||t[17]!==v?(y=(0,$.jsxs)(Jt,{className:`flex-row items-start gap-3 px-5 pb-5 pt-6 text-left sm:gap-4 sm:px-8 sm:pb-6 sm:pt-8`,children:[m,(0,$.jsxs)(`div`,{className:`min-w-0 space-y-1.5 sm:space-y-2`,children:[g,v]})]}),t[16]=g,t[17]=v,t[18]=y):y=t[18];let b;t[19]===o?b=t[20]:(b=o(`assistants.shareWelcome.examplesAria`),t[19]=o,t[20]=b);let x;t[21]===o?x=t[22]:(x=Zi.map((e,t)=>(0,$.jsxs)(`article`,{className:`w-[min(78vw,19rem)] shrink-0 snap-center overflow-hidden rounded-xl border border-border bg-background lg:w-auto lg:min-w-0`,children:[(0,$.jsxs)(`div`,{className:`relative overflow-hidden border-b border-border bg-muted`,children:[(0,$.jsx)(`img`,{src:e.image,alt:``,className:`h-72 w-full object-cover object-bottom lg:h-[min(38vh,23rem)]`}),(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`absolute left-3 top-3 flex size-7 items-center justify-center rounded-full bg-[var(--surface-elevated)] typography-meta font-semibold text-foreground shadow-sm`,children:t+1})]}),(0,$.jsxs)(`div`,{className:`space-y-1 px-4 py-3.5 lg:min-h-25`,children:[(0,$.jsx)(`h2`,{className:`typography-ui-label font-semibold text-foreground`,children:o(e.titleKey)}),(0,$.jsx)(`p`,{className:`typography-meta leading-5 text-muted-foreground`,children:o(e.descriptionKey)})]})]},e.titleKey)),t[21]=o,t[22]=x);let S;t[23]!==b||t[24]!==x?(S=(0,$.jsx)(`div`,{className:`overflow-hidden px-5 pb-5 sm:px-8 sm:pb-7`,children:(0,$.jsx)(`div`,{className:`flex snap-x snap-mandatory gap-3 overflow-x-auto pb-2 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden lg:grid lg:grid-cols-3 lg:overflow-visible lg:pb-0`,"aria-label":b,children:x})}),t[23]=b,t[24]=x,t[25]=S):S=t[25];let C;t[26]===o?C=t[27]:(C=o(`assistants.shareWelcome.action`),t[26]=o,t[27]=C);let w;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(Y,{name:`arrow-right-s`,className:`size-4`}),t[28]=w):w=t[28];let T;t[29]!==f||t[30]!==C?(T=(0,$.jsx)(Yt,{className:`border-t border-border px-5 py-4 sm:px-8 sm:py-5`,children:(0,$.jsxs)(q,{size:`lg`,className:`w-full lg:mx-auto lg:w-72`,onClick:f,children:[C,w]})}),t[29]=f,t[30]=C,t[31]=T):T=t[31];let E;t[32]!==S||t[33]!==T||t[34]!==y?(E=(0,$.jsxs)(Xt,{showCloseButton:!1,className:`w-[min(100%,31rem)] max-w-none gap-0 overflow-hidden rounded-2xl border-border bg-[var(--surface-elevated)] p-0 sm:w-[min(calc(100%-3rem),44rem)] lg:w-[min(calc(100%-4rem),74rem)]`,containerClassName:`fixed inset-0 z-50 flex items-end justify-center px-0 pt-8 sm:items-center sm:p-6`,children:[y,S,T]}),t[32]=S,t[33]=T,t[34]=y,t[35]=E):E=t[35];let D;return t[36]!==u||t[37]!==E||t[38]!==p?(D=(0,$.jsx)($t,{open:u,onOpenChange:p,children:E}),t[36]=u,t[37]=E,t[38]=p,t[39]=D):D=t[39],D},$i=`useCommandsStore`,ea=new Set([`init`,`review`]),ta=e=>ea.has(e.name),na=async(e,t)=>{await Mt(L,e,t),i()===t&&Ct(`commands`,{source:$i})},ra=se()(le(ce(e=>({selectedCommandName:null,commandDraft:null,setSelectedCommand:t=>e({selectedCommandName:t}),setCommandDraft:t=>e({commandDraft:t}),loadCommands:async()=>{let e=Rt(),t=i();try{return await Mt(L,e,t),!0}catch{return!1}},createCommand:async t=>ia(`POST`,t.name,t,e),updateCommand:async(t,n)=>ia(`PATCH`,t,n,e),deleteCommand:async t=>ia(`DELETE`,t,void 0,e),getCommandByName:e=>Bt().find(t=>t.name===e)}),{name:`commands-store`,storage:_e(),partialize:e=>({selectedCommandName:e.selectedCommandName})}),{name:`commands-store`}));async function ia(e,t,n,r){let a=Rt(),o=i();try{let s={};if(e===`POST`&&(s.template=n?.template||``,n?.description&&(s.description=n.description),n?.agent&&(s.agent=n.agent),n?.model&&(s.model=n.model),n?.scope&&(s.scope=n.scope)),e===`PATCH`)for(let e of[`description`,`agent`,`model`,`template`])n?.[e]!==void 0&&(s[e]=n[e]);let c=a?`?directory=${encodeURIComponent(a)}`:``,u=await l(`/api/config/commands/${encodeURIComponent(t)}${c}`,{method:e,headers:e===`DELETE`?a?{"x-opencode-directory":a}:void 0:{"Content-Type":`application/json`,...a?{"x-opencode-directory":a}:{}},...e===`DELETE`?{}:{body:JSON.stringify(s)}}),d=await u.json().catch(()=>null);if(!u.ok)throw Error(d?.error||`Failed to ${e.toLowerCase()} command`);return i()!==o||(await na(a,o),i()!==o)||e===`DELETE`&&r({selectedCommandName:null}),!0}catch(e){return console.error(`[CommandsStore] Command mutation failed:`,e),!1}}typeof window<`u`&&(window.__zustand_commands_store__=ra),Ht(e=>{e.source!==$i&&kt(e,`commands`)&&ra.getState().loadCommands()});var aa=()=>{try{let e=yt.getState().getActiveProject?.();if(e?.path?.trim())return e.path.trim();let t=me.getDirectory();if(t?.trim())return t.trim()}catch(e){console.warn(`[McpConfigStore] Error resolving config directory:`,e)}return null},oa=e=>e?Object.entries(e).map(([e,t])=>({key:e,value:t})):[],sa=e=>{let t=e.filter(e=>e.key.trim());if(t.length!==0)return Object.fromEntries(t.map(e=>[e.key.trim(),e.value]))},ca=e=>{if(typeof e==`string`)return e.trim()||void 0},la=se()(le(ce((e,t)=>({selectedMcpName:null,mcpDraft:null,setSelectedMcp:t=>e({selectedMcpName:t}),setMcpDraft:t=>e({mcpDraft:t}),loadMcpConfigs:async e=>{let t=aa();try{return!e?.force&&wi(L,t).length>0||await yi(L,t,i()),!0}catch(e){return console.error(`[McpConfigStore] Failed to load MCP configs:`,e),!1}},createMcp:async(e,t)=>{let n=`directory`in(t??{})?t?.directory?.trim()||null:aa(),r=t?.transportIdentity??i();try{let t=ua(e),a=n?`?directory=${encodeURIComponent(n)}`:``,o=await l(`/api/config/mcp/${encodeURIComponent(e.name)}${a}`,{method:`POST`,headers:{"Content-Type":`application/json`,...n?{"x-opencode-directory":n}:{}},body:JSON.stringify(t)}),s=await o.json().catch(()=>null);if(!o.ok)throw Error(s?.error||`Failed to create MCP server`);return i()===r?(await yi(L,n,r),await Ci(L,n,r),{ok:!0,reloadFailed:s?.reloadFailed===!0,message:s?.message,warning:s?.warning}):{ok:!0}}catch(e){return console.error(`[McpConfigStore] Failed to create MCP:`,e),{ok:!1}}},updateMcp:async(e,t,n)=>{let r=`directory`in(n??{})?n?.directory?.trim()||null:aa(),a=n?.transportIdentity??i();try{let n=ua(t),o=r?`?directory=${encodeURIComponent(r)}`:``,s=await l(`/api/config/mcp/${encodeURIComponent(e)}${o}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,...r?{"x-opencode-directory":r}:{}},body:JSON.stringify(n)}),c=await s.json().catch(()=>null);if(!s.ok)throw Error(c?.error||`Failed to update MCP server`);return i()===a?(await yi(L,r,a),await Ci(L,r,a),{ok:!0,reloadFailed:c?.reloadFailed===!0,message:c?.message,warning:c?.warning}):{ok:!0}}catch(e){throw console.error(`[McpConfigStore] Failed to update MCP:`,e),e}},deleteMcp:async(n,r)=>{let a=`directory`in(r??{})?r?.directory?.trim()||null:aa(),o=r?.transportIdentity??i();try{let r=a?`?directory=${encodeURIComponent(a)}`:``,s=await l(`/api/config/mcp/${encodeURIComponent(n)}${r}`,{method:`DELETE`,headers:a?{"x-opencode-directory":a}:void 0}),c=await s.json().catch(()=>null);if(!s.ok)throw Error(c?.error||`Failed to delete MCP server`);return mi.getState().clearDiagnostic(n,a,o),i()===o?(t().selectedMcpName===n&&e({selectedMcpName:null}),await yi(L,a,o),await Ci(L,a,o),{ok:!0,reloadFailed:c?.reloadFailed===!0,message:c?.message,warning:c?.warning}):{ok:!0}}catch(e){return console.error(`[McpConfigStore] Failed to delete MCP:`,e),{ok:!1}}}}),{name:`mcp-config-store`,storage:_e(),partialize:e=>({selectedMcpName:e.selectedMcpName})}),{name:`mcp-config-store`}));function ua(e){let t={};if(e.scope!==void 0&&(t.scope=e.scope),e.type!==void 0&&(t.type=e.type),(e.type===`local`||e.command!==void 0)&&(t.command=(e.command??[]).filter(e=>e.trim())),(e.type===`remote`||e.url!==void 0)&&(t.url=e.url?.trim()??``),e.environment!==void 0&&(t.environment=sa(e.environment)??{}),e.headers!==void 0&&(t.headers=sa(e.headers)??{}),e.oauthEnabled!==void 0||e.oauthClientId!==void 0||e.oauthClientSecret!==void 0||e.oauthScope!==void 0||e.oauthRedirectUri!==void 0)if(e.oauthEnabled===!1)t.oauth=!1;else{let n={clientId:ca(e.oauthClientId),clientSecret:ca(e.oauthClientSecret),scope:ca(e.oauthScope),redirectUri:ca(e.oauthRedirectUri)};t.oauth=n.clientId||n.clientSecret||n.scope||n.redirectUri?n:e.oauthEnabled?{}:!1}if(e.timeout!==void 0){let n=Number(e.timeout);t.timeout=Number.isFinite(n)&&n>0?n:null}return e.enabled!==void 0&&(t.enabled=e.enabled),t}var da=()=>{let e=me.getDirectory();if(typeof e==`string`&&e.trim().length>0)return e;try{let e=window.__zustand_directory_store__;if(e)return e.getState().currentDirectory}catch{}return null},fa=`useSkillsStore`,pa=e=>{if(e&&Object.prototype.hasOwnProperty.call(e,`directory`))return typeof e.directory==`string`&&e.directory.trim()||null;let t=da();return typeof t==`string`&&t.trim()||null},ma=se()(le(ce((e,t)=>({selectedSkillName:null,skillDraft:null,setSelectedSkill:t=>{e({selectedSkillName:t})},setSkillDraft:t=>{e({skillDraft:t})},loadSkills:async()=>{try{return await ft(L,da(),i()),!0}catch{return!1}},getSkillDetail:async e=>{try{let t=da(),n=t?`?directory=${encodeURIComponent(t)}`:``,r=await l(`/api/config/skills/${encodeURIComponent(e)}${n}`);return r.ok?await r.json():null}catch{return null}},createSkill:async(e,t)=>{try{let n={name:e.name,description:e.description};e.instructions&&(n.instructions=e.instructions),e.scope&&(n.scope=e.scope),e.source&&(n.source=e.source),e.supportingFiles&&(n.supportingFiles=e.supportingFiles);let r=pa(t),a=i(),o=r?`?directory=${encodeURIComponent(r)}`:``,s=await l(`/api/config/skills/${encodeURIComponent(e.name)}${o}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)}),c=await s.json().catch(()=>null);if(!s.ok){let e=c?.error||`Failed to create skill`;throw Error(e)}return await ha({directory:r,transportIdentity:a}),!0}catch{return!1}},updateSkill:async(e,t,n)=>{try{let r={};t.description!==void 0&&(r.description=t.description),t.instructions!==void 0&&(r.instructions=t.instructions),t.supportingFiles!==void 0&&(r.supportingFiles=t.supportingFiles),t.targetPath!==void 0&&(r.targetPath=t.targetPath);let a=pa(n),o=i(),s=a?`?directory=${encodeURIComponent(a)}`:``,c=await l(`/api/config/skills/${encodeURIComponent(e)}${s}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),u=await c.json().catch(()=>null);if(!c.ok){let e=u?.error||`Failed to update skill`;throw Error(e)}return await ha({directory:a,transportIdentity:o}),!0}catch{return!1}},deleteSkill:async(n,r)=>{try{let a=pa(r),o=i(),s=a?`?directory=${encodeURIComponent(a)}`:``,c=await l(`/api/config/skills/${encodeURIComponent(n)}${s}`,{method:`DELETE`}),u=await c.json().catch(()=>null);if(!c.ok){let e=u?.error||`Failed to delete skill`;throw Error(e)}return await ha({directory:a,transportIdentity:o}),i()===o&&t().selectedSkillName===n&&e({selectedSkillName:null}),!0}catch{return!1}},getSkillByName:e=>Qe(L,da()).find(t=>t.name===e),readSupportingFile:async(e,t)=>{try{let n=da(),r=n?`&directory=${encodeURIComponent(n)}`:``,i=await l(`/api/config/skills/${encodeURIComponent(e)}/files/${encodeURIComponent(t)}?${r.slice(1)}`);return i.ok?(await i.json()).content??null:null}catch{return null}},writeSupportingFile:async(e,t,n)=>{try{let r=da(),i=r?`?directory=${encodeURIComponent(r)}`:``;return(await l(`/api/config/skills/${encodeURIComponent(e)}/files/${encodeURIComponent(t)}${i}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:n})})).ok}catch{return!1}},deleteSupportingFile:async(e,t)=>{try{let n=da(),r=n?`?directory=${encodeURIComponent(n)}`:``;return(await l(`/api/config/skills/${encodeURIComponent(e)}/files/${encodeURIComponent(t)}${r}`,{method:`DELETE`})).ok}catch{return!1}}}),{name:`skills-store`,storage:_e(),partialize:e=>({selectedSkillName:e.selectedSkillName})}),{name:`skills-store`}));typeof window<`u`&&(window.__zustand_skills_store__=ma);async function ha(e){let t=e&&`directory`in e?e.directory?.trim()||null:da(),n=e?.transportIdentity??i();i()===n&&(await ft(L,t,n),i()===n&&(await ot(L,t,n),i()===n&&Ct(`skills`,{source:fa})))}var ga=null;ga||=Ht(e=>{if(e.source!==fa&&kt(e,`skills`)){let e=da(),t=i();ft(L,e,t).then(()=>ot(L,e,t)).catch(()=>void 0)}});var _a=/^#[0-9a-fA-F]{6}$/,va=/^\{file:.+\}$/i,ya=e=>[...e].sort((e,t)=>{let n=e.permission.localeCompare(t.permission);return n===0?e.pattern.localeCompare(t.pattern):n}),ba=(e,t)=>{let n=ya(e),r=ya(t);return n.length===r.length&&n.every((e,t)=>{let n=r[t];return e.permission===n.permission&&e.pattern===n.pattern&&e.action===n.action})},xa=(e,t)=>t?e.globalPermission!==t.globalPermission||!ba(e.permissionRules,t.permissionRules):!1,Sa=e=>e===`bash`?`shell`:e===`task`?`subagent`:e===`write`||e===`patch`?`edit`:e,Ca=(e,t)=>{let n=[{action:`*`,resource:`*`,effect:e}];for(let e of t)!e.permission||!e.pattern||(e.permission!==`*`||e.pattern!==`*`)&&n.push({action:Sa(e.permission),resource:e.pattern,effect:e.action});return n},wa=e=>{let t=e.trim();return t===``?null:t},Ta=({isNewAgent:e,agentName:t,draftScope:n,initialScope:r,draftHasExplicitPermission:i,current:a,initial:o,confirmDrop:s})=>{let c=Ca(a.globalPermission,a.permissionRules);if(e){let e=a.description.trim(),r=wa(a.model),l=a.system.trim(),u=xa(a,o)||i;return{name:t,mode:a.mode,...e?{description:e}:{},...r?{model:r}:{},...l?{system:l}:{},...u?{permissions:c}:{},...n?{scope:n}:{},...s?{confirmDrop:!0}:{}}}let l={name:t,...s?{confirmDrop:!0}:{}};return o?(a.description!==o.description&&(l.description=a.description.trim()||null),a.mode!==o.mode&&(l.mode=a.mode),a.model!==o.model&&(l.model=wa(a.model)),a.system!==o.system&&(l.system=a.system.trim()||null),xa(a,o)&&(l.permissions=c),n&&r&&n!==r&&(l.scope=n),l):l},Ea=e=>{if(e){if(typeof e.prompt==`string`)return va.test(e.prompt.trim())?void 0:e.prompt;if(typeof e.system==`string`)return e.system}},Da=e=>{let t=e?.model?.providerID,n=e?.model?.modelID||e?.model?.id;if(!t||!n)return``;let r=e?.model?.variant||e?.variant;return r?`${t}/${n}#${r}`:`${t}/${n}`},Oa=e=>{let t=e.trim(),n=t.indexOf(`/`);if(n<=0||n>=t.length-1)return null;let r=t.slice(0,n),i=t.slice(n+1),a=i.indexOf(`#`);return a===-1?{providerId:r,modelId:i,variant:``}:{providerId:r,modelId:i.slice(0,a),variant:i.slice(a+1)}},ka=e=>_a.test(e.trim()),Aa=e=>{let t=e.trim();return t&&t.charAt(0).toUpperCase()+t.slice(1)},ja=e=>{let t=(0,Ii.c)(37),{className:n}=e,{t:r}=Ne(),i=yt(Ma),a=yt(Na),o=yt(Pa),s=I(),c;t[0]===i?c=t[1]:(c=[...i].sort(Fa),t[0]=i,t[1]=c);let l=c,u;bb0:{if(l.length===0){u=null;break bb0}let e;t[2]!==a||t[3]!==l?(e=l.find(e=>e.id===a)??l[0],t[2]=a,t[3]=l,t[4]=e):e=t[4],u=e}let d=u;if(s||l.length===0)return null;let f;t[5]!==d?.path||t[6]!==r?(f=d?.path.split(`/`).filter(Boolean).pop()||d?.path||r(`settings.shared.projectSelector.fallbackProject`),t[5]=d?.path,t[6]=r,t[7]=f):f=t[7];let p=f,m;t[8]===n?m=t[9]:(m=K(n),t[8]=n,t[9]=m);let h;t[10]===r?h=t[11]:(h=r(`settings.shared.projectSelector.switchProjectAria`),t[10]=r,t[11]=h);let g;t[12]===r?g=t[13]:(g=r(`settings.shared.projectSelector.switchProjectTitle`),t[12]=r,t[13]=g);let _,v;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=K(`text-foreground border border-border/80 appearance-none flex h-8 w-full min-w-0 rounded-lg bg-transparent px-3 py-1 outline-none`,`hover:border-input focus-visible:ring-1 focus-visible:ring-primary/50 focus-visible:border-primary/70`,`flex items-center gap-1.5 text-left`),v=(0,$.jsx)(Y,{name:`folder`,className:`h-4 w-4 text-muted-foreground`}),t[14]=_,t[15]=v):(_=t[14],v=t[15]);let y;t[16]===p?y=t[17]:(y=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-ui-label font-medium`,children:p}),t[16]=p,t[17]=y);let b;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(Y,{name:`arrow-down-s`,className:`size-4 opacity-50`}),t[18]=b):b=t[18];let x;t[19]!==h||t[20]!==g||t[21]!==y?(x=(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-label":h,title:g,className:_,children:[v,y,b]})}),t[19]=h,t[20]=g,t[21]=y,t[22]=x):x=t[22];let S=d?.id??``,C;t[23]===o?C=t[24]:(C=e=>{e&&o(e)},t[23]=o,t[24]=C);let w;t[25]===l?w=t[26]:(w=l.map(Ia),t[25]=l,t[26]=w);let T;t[27]!==S||t[28]!==C||t[29]!==w?(T=(0,$.jsx)($n,{align:`start`,className:`w-auto`,children:(0,$.jsx)(ur,{value:S,onValueChange:C,children:w})}),t[27]=S,t[28]=C,t[29]=w,t[30]=T):T=t[30];let E;t[31]!==x||t[32]!==T?(E=(0,$.jsxs)(lr,{children:[x,T]}),t[31]=x,t[32]=T,t[33]=E):E=t[33];let D;return t[34]!==E||t[35]!==m?(D=(0,$.jsx)(`div`,{className:m,children:E}),t[34]=E,t[35]=m,t[36]=D):D=t[36],D};function Ma(e){return e.projects}function Na(e){return e.activeProjectId}function Pa(e){return e.setActiveProject}function Fa(e,t){return(e.label||e.path).localeCompare(t.label||t.path)}function Ia(e){let t=e.path.split(`/`).filter(Boolean).pop()||e.path;return(0,$.jsx)(qn,{value:e.id,children:(0,$.jsx)(`span`,{className:`min-w-0 truncate typography-ui`,children:t})},e.id)}function La(e,t){return`opencode:sidebar-group:${e}:${t}`}var Ra=e=>{let t=(0,Ii.c)(57),{label:n,count:r,storageKey:i,defaultExpanded:a,variant:o,labelPrefix:s,children:c}=e,l=a===void 0||a,u=o===void 0?`sidebar`:o,d;t[0]!==n||t[1]!==i?(d=La(i,n),t[0]=n,t[1]=i,t[2]=d):d=t[2];let f=d,p=Q.useId(),m;t[3]!==l||t[4]!==f?(m=()=>{try{let e=localStorage.getItem(f);if(e!==null)return e===`true`}catch{}return l},t[3]=l,t[4]=f,t[5]=m):m=t[5];let[h,g]=(0,Q.useState)(m),_,v;if(t[6]!==h||t[7]!==f?(_=()=>{try{localStorage.setItem(f,String(h))}catch{}},v=[f,h],t[6]=h,t[7]=f,t[8]=_,t[9]=v):(_=t[8],v=t[9]),(0,Q.useEffect)(_,v),u===`settings-card`){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>g(za),t[10]=e):e=t[10];let i;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(i=K(`flex w-full items-center gap-1 text-left`,`text-inherit transition-colors duration-150 hover:text-foreground`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`),t[11]=i):i=t[11];let a=!h&&`-rotate-90`,o;t[12]===a?o=t[13]:(o=K(`h-3.5 w-3.5 flex-shrink-0 transition-transform duration-200`,a),t[12]=a,t[13]=o);let l;t[14]===o?l=t[15]:(l=(0,$.jsx)(Y,{name:`arrow-down-s`,className:o}),t[14]=o,t[15]=l);let u=s?`${s} · `:``,d;t[16]!==n||t[17]!==u?(d=(0,$.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[u,n]}),t[16]=n,t[17]=u,t[18]=d):d=t[18];let f;t[19]===r?f=t[20]:(f=(0,$.jsx)(`span`,{className:`ml-1 tabular-nums opacity-60`,children:r}),t[19]=r,t[20]=f);let m;t[21]!==p||t[22]!==h||t[23]!==l||t[24]!==d||t[25]!==f?(m=(0,$.jsxs)(`button`,{type:`button`,onClick:e,"aria-expanded":h,"aria-controls":p,className:i,children:[l,d,f]}),t[21]=p,t[22]=h,t[23]=l,t[24]=d,t[25]=f,t[26]=m):m=t[26];let _=!h&&`hidden`,v;t[27]===_?v=t[28]:(v=K(_),t[27]=_,t[28]=v);let y;return t[29]!==c||t[30]!==p||t[31]!==m||t[32]!==v?(y=(0,$.jsx)(Z,{label:m,cardClassName:v,cardId:p,children:c}),t[29]=c,t[30]=p,t[31]=m,t[32]=v,t[33]=y):y=t[33],y}let y;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>g(Ba),t[34]=y):y=t[34];let b;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(b=K(`flex w-full items-center gap-1 rounded-md px-2 py-1 text-left`,`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,`hover:bg-[var(--interactive-hover)] transition-colors duration-150`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`),t[35]=b):b=t[35];let x=!h&&`-rotate-90`,S;t[36]===x?S=t[37]:(S=K(`h-3.5 w-3.5 flex-shrink-0 transition-transform duration-200`,x),t[36]=x,t[37]=S);let C;t[38]===S?C=t[39]:(C=(0,$.jsx)(Y,{name:`arrow-down-s`,className:S}),t[38]=S,t[39]=C);let w;t[40]===n?w=t[41]:(w=(0,$.jsx)(`span`,{className:`flex-1 truncate`,children:n}),t[40]=n,t[41]=w);let T;t[42]===r?T=t[43]:(T=(0,$.jsx)(`span`,{className:`ml-1 tabular-nums opacity-60`,children:r}),t[42]=r,t[43]=T);let E;t[44]!==p||t[45]!==h||t[46]!==C||t[47]!==w||t[48]!==T?(E=(0,$.jsxs)(`button`,{type:`button`,onClick:y,"aria-expanded":h,"aria-controls":p,className:b,children:[C,w,T]}),t[44]=p,t[45]=h,t[46]=C,t[47]=w,t[48]=T,t[49]=E):E=t[49];let D=!h,O;t[50]!==c||t[51]!==p||t[52]!==D?(O=(0,$.jsx)(`div`,{id:p,hidden:D,className:`mt-0.5 space-y-0.5 ml-2 pl-3 border-l-2 border-[var(--interactive-border)]`,children:c}),t[50]=c,t[51]=p,t[52]=D,t[53]=O):O=t[53];let k;return t[54]!==E||t[55]!==O?(k=(0,$.jsxs)(`div`,{children:[E,O]}),t[54]=E,t[55]=O,t[56]=k):k=t[56],k};function za(e){return!e}function Ba(e){return!e}var Va=e=>e===`bash`?`shell`:e===`task`?`subagent`:e===`write`||e===`patch`?`edit`:e,Ha=e=>{let t=_r(e).map(e=>({action:Va(e.action),resource:e.resource,effect:e.effect}));return t.length>0?t:void 0},Ua=(e,t)=>{let n=e,r=ct(e)?void 0:typeof n.system==`string`?n.system:typeof e.prompt==`string`?e.prompt:void 0,i=typeof n.color==`string`&&ka(n.color)?n.color:void 0;return{name:t,scope:n.scope||`user`,description:e.description,model:Da(e)||null,...r?{system:r}:{},mode:e.mode,...typeof n.steps==`number`?{steps:n.steps}:{},...e.hidden===!0?{hidden:!0}:{},...n.disabledOverride?{disabled:!0}:{},...i?{color:i}:{},permissions:Ha(n.permissions??e.permission)}},Wa=({onItemSelect:e})=>{let{t}=Ne(),[n,r]=Q.useState(null),[i,a]=Q.useState(``),[o,s]=Q.useState(null),[c,l]=Q.useState(null),[u,d]=Q.useState(!1),[f,p]=Q.useState(null),{selectedAgentName:m,setSelectedAgent:h,setAgentDraft:g,createAgent:_,deleteAgent:v,loadAgents:y}=Kt(ue(e=>({selectedAgentName:e.selectedAgentName,setSelectedAgent:e.setSelectedAgent,setAgentDraft:e.setAgentDraft,createAgent:e.createAgent,deleteAgent:e.deleteAgent,loadAgents:e.loadAgents}))),{data:b=[]}=Ze();Q.useEffect(()=>{y()},[y]);let x=()=>{let t=`new-agent`,n=t,r=1;for(;b.some(e=>e.name===n);)n=`${t}-${r}`,r++;g({name:n,scope:`user`}),h(n),e?.()},S=async e=>{if(ct(e)){J.error(t(`settings.agents.sidebar.toast.builtInCannotDelete`));return}s(e),l(`delete`)},C=async e=>{ct(e)&&(s(e),l(`reset`))},w=()=>{s(null),l(null)},T=async()=>{if(!(!o||!c)){d(!0);try{let e=await v(o.name,o.scope);e.ok?(e.requiresManualRestart?J.warning(t(`settings.agents.page.toast.savedManualRestart`)):c===`delete`?J.success(t(`settings.agents.sidebar.toast.agentDeleted`,{name:o.name})):J.success(t(`settings.agents.sidebar.toast.agentReset`,{name:o.name})),w()):c===`delete`?J.error(t(`settings.agents.sidebar.toast.deleteFailed`)):J.error(t(`settings.agents.sidebar.toast.resetFailed`))}catch(e){let n=e instanceof Error?e.message:``,r=/built-in|not deletable|not found/i.test(n);c===`delete`?J.error(t(r?`settings.agents.sidebar.toast.definitionNotFound`:`settings.agents.sidebar.toast.deleteFailed`)):J.error(t(`settings.agents.sidebar.toast.resetFailed`))}d(!1)}},E=e=>{let t=e.name,n=1,r=`${t}-copy`;for(;b.some(e=>e.name===r);)n++,r=`${t}-copy-${n}`;g(Ua(e,r)),h(r)},D=e=>{a(e.name),r(e)},O=async()=>{if(!n)return;let e=i.trim().replace(/\s+/g,`-`);if(!e){J.error(t(`settings.agents.sidebar.toast.agentNameRequired`));return}if(e===n.name){r(null);return}if(b.some(t=>t.name===e)){J.error(t(`settings.agents.sidebar.toast.agentExists`));return}let a=n,o=await _({...Ua(n,e),scope:a.scope});if(o.ok){let r=await v(n.name,a.scope);r.ok?(o.requiresManualRestart||r.requiresManualRestart?J.warning(t(`settings.agents.page.toast.savedManualRestart`)):J.success(t(`settings.agents.sidebar.toast.agentRenamed`,{name:e})),h(e)):J.error(t(`settings.agents.sidebar.toast.removeOldAfterRenameFailed`))}else J.error(t(`settings.agents.sidebar.toast.renameFailed`));r(null)},k=e=>{switch(e){case`primary`:return(0,$.jsx)(Y,{name:`ai-agent`,className:`h-3 w-3 text-primary`});case`all`:return(0,$.jsx)(Y,{name:`ai-agent-fill`,className:`h-3 w-3 text-primary`});case`subagent`:return(0,$.jsx)(Y,{name:`robot`,className:`h-3 w-3 text-primary`});default:return null}},A=b.filter(e=>{let t=e;return!$e(e)||!!t.scope||t.disabledOverride===!0}),j=A.filter(ct),M=A.filter(e=>!ct(e)),{groupedCustomAgents:N,ungroupedCustomAgents:P}=(0,Q.useMemo)(()=>{let e={},t=[];for(let n of M){let r=n;r.group?(e[r.group]||(e[r.group]=[]),e[r.group].push(n)):t.push(n)}return{groupedCustomAgents:Object.keys(e).sort((e,t)=>e.localeCompare(t)).map(t=>({name:t,agents:e[t]})),ungroupedCustomAgents:t}},[M]),F=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,$.jsx)(`span`,{children:t(`settings.agents.sidebar.section.custom`)}),(0,$.jsx)(q,{"data-settings-item":`agents.create`,size:`icon`,variant:`ghost`,onClick:x,"aria-label":t(`settings.agents.page.title.new`),children:(0,$.jsx)(Y,{name:`add`,className:`h-4 w-4`})})]});return(0,$.jsxs)(`div`,{className:`oc-settings-page-content h-full overflow-y-auto bg-background p-3`,children:[(0,$.jsx)(ja,{}),(0,$.jsx)($.Fragment,{children:A.length===0?(0,$.jsx)(Z,{children:(0,$.jsxs)(`div`,{className:`oc-settings-group-row py-12 text-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`robot-2`,className:`mx-auto mb-3 h-10 w-10 opacity-50`}),(0,$.jsx)(`p`,{className:`typography-ui-label font-medium`,children:t(`settings.agents.sidebar.empty.title`)}),(0,$.jsx)(`p`,{className:`typography-meta mt-1 opacity-75`,children:t(`settings.agents.sidebar.empty.description`)})]})}):(0,$.jsxs)($.Fragment,{children:[j.length>0&&(0,$.jsx)(Z,{label:t(`settings.agents.sidebar.section.builtIn`),children:j.map(t=>(0,$.jsx)(Ga,{agent:t,isSelected:m===t.name,onSelect:()=>{h(t.name),e?.()},onReset:()=>C(t),onDuplicate:()=>E(t),getAgentModeIcon:k,isMenuOpen:f===t.name,onMenuOpenChange:e=>p(e?t.name:null)},t.name))}),M.length>0&&(0,$.jsxs)($.Fragment,{children:[N.map(({name:n,agents:r})=>(0,$.jsx)(Ra,{label:n,count:r.length,storageKey:`agents`,variant:`settings-card`,labelPrefix:t(`settings.agents.sidebar.section.custom`),children:r.map(t=>(0,$.jsx)(Ga,{agent:t,isSelected:m===t.name,onSelect:()=>{h(t.name),e?.()},onRename:()=>D(t),onDelete:()=>S(t),onDuplicate:()=>E(t),getAgentModeIcon:k,isMenuOpen:f===t.name,onMenuOpenChange:e=>p(e?t.name:null)},t.name))},n)),P.length>0?(0,$.jsx)(Z,{label:F,children:P.map(t=>(0,$.jsx)(Ga,{agent:t,isSelected:m===t.name,onSelect:()=>{h(t.name),e?.()},onRename:()=>D(t),onDelete:()=>S(t),onDuplicate:()=>E(t),getAgentModeIcon:k,isMenuOpen:f===t.name,onMenuOpenChange:e=>p(e?t.name:null)},t.name))}):(0,$.jsx)(Z,{label:F,cardClassName:`hidden`,children:(0,$.jsx)(`span`,{})})]}),M.length===0&&(0,$.jsx)(Z,{label:F,cardClassName:`hidden`,children:(0,$.jsx)(`span`,{})})]})}),(0,$.jsx)($t,{open:o!==null&&c!==null,onOpenChange:e=>{!e&&!u&&w()},children:(0,$.jsxs)(Xt,{className:`max-w-md`,children:[(0,$.jsxs)(Jt,{children:[(0,$.jsx)(Zt,{children:t(c===`delete`?`settings.agents.sidebar.dialog.deleteTitle`:`settings.agents.sidebar.dialog.resetTitle`)}),(0,$.jsx)(Qt,{children:t(c===`delete`?`settings.agents.sidebar.dialog.deleteDescription`:`settings.agents.sidebar.dialog.resetDescription`,{name:o?.name??``})})]}),(0,$.jsxs)(Yt,{children:[(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:w,disabled:u,children:t(`settings.common.actions.cancel`)}),(0,$.jsx)(q,{size:`sm`,onClick:T,disabled:u,children:t(c===`delete`?`settings.common.actions.delete`:`settings.common.actions.reset`)})]})]})}),(0,$.jsx)($t,{open:n!==null,onOpenChange:e=>!e&&r(null),children:(0,$.jsxs)(Xt,{children:[(0,$.jsxs)(Jt,{children:[(0,$.jsx)(Zt,{children:t(`settings.agents.sidebar.renameDialog.title`)}),(0,$.jsx)(Qt,{children:t(`settings.agents.sidebar.renameDialog.description`,{name:n?.name??``})})]}),(0,$.jsx)(pn,{value:i,onChange:e=>a(e.target.value),placeholder:t(`settings.agents.sidebar.renameDialog.placeholder`),className:`text-foreground placeholder:text-muted-foreground`,onKeyDown:e=>{e.key===`Enter`&&O()}}),(0,$.jsxs)(Yt,{children:[(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>r(null),children:t(`settings.common.actions.cancel`)}),(0,$.jsx)(q,{size:`sm`,onClick:O,children:t(`settings.common.actions.rename`)})]})]})})]})},Ga=e=>{let t=(0,Ii.c)(55),{agent:n,isSelected:r,onSelect:i,onDelete:a,onReset:o,onRename:s,onDuplicate:c,getAgentModeIcon:l,isMenuOpen:u,onMenuOpenChange:d}=e,{t:f}=Ne(),p=n,m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=xr(),t[0]=m):m=t[0];let h=m,[g,_]=Q.useState(!1),v;t[1]!==a||t[2]!==c||t[3]!==s||t[4]!==o||t[5]!==f?(v=e=>(0,$.jsxs)($.Fragment,{children:[s&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),s()},children:[(0,$.jsx)(Y,{name:`edit`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.rename`)]}),(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),c()},children:[(0,$.jsx)(Y,{name:`file-copy`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.duplicate`)]}),o&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),o()},children:[(0,$.jsx)(Y,{name:`restart`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.reset`)]}),a&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),a()},className:`text-destructive focus:text-destructive`,children:[(0,$.jsx)(Y,{name:`delete-bin`,className:`h-4 w-4 mr-px`}),f(`settings.common.actions.delete`)]})]}),t[1]=a,t[2]=c,t[3]=s,t[4]=o,t[5]=f,t[6]=v):v=t[6];let y=v,b=r?`bg-interactive-selection`:`hover:bg-interactive-hover`,x;t[7]===b?x=t[8]:(x=K(`oc-settings-group-row group relative flex items-center transition-colors duration-150 select-none`,b),t[7]=b,t[8]=x);let S;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(S=h?void 0:e=>{e.preventDefault(),_(!0)},t[9]=S):S=t[9];let C;t[10]===x?C=t[11]:(C=(0,$.jsx)(`div`,{className:x,onContextMenu:S}),t[10]=x,t[11]=C);let w;t[12]===n.name?w=t[13]:(w=Aa(n.name),t[12]=n.name,t[13]=w);let T;t[14]===w?T=t[15]:(T=(0,$.jsx)(`span`,{className:`typography-ui-label font-normal truncate text-foreground`,children:w}),t[14]=w,t[15]=T);let E;t[16]!==n.mode||t[17]!==l?(E=l(n.mode),t[16]=n.mode,t[17]=l,t[18]=E):E=t[18];let D;t[19]!==n||t[20]!==p.disabledOverride||t[21]!==p.scope||t[22]!==f?(D=(p.scope||ct(n)||p.disabledOverride)&&(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground bg-muted px-1 rounded flex-shrink-0 leading-none pb-px border border-border/50`,children:p.disabledOverride?f(`settings.agents.sidebar.badge.disabled`):ct(n)?f(`settings.agents.sidebar.badge.system`):p.scope===`project`?f(`settings.common.scope.project`):f(`settings.common.scope.global`)}),t[19]=n,t[20]=p.disabledOverride,t[21]=p.scope,t[22]=f,t[23]=D):D=t[23];let O;t[24]!==D||t[25]!==T||t[26]!==E?(O=(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[T,E,D]}),t[24]=D,t[25]=T,t[26]=E,t[27]=O):O=t[27];let k;t[28]===n.description?k=t[29]:(k=n.description&&(0,$.jsx)(`div`,{className:`typography-micro text-muted-foreground/60 truncate leading-tight`,children:n.description}),t[28]=n.description,t[29]=k);let A;t[30]!==i||t[31]!==O||t[32]!==k?(A=(0,$.jsxs)(`button`,{onClick:i,className:`flex min-w-0 flex-1 flex-col gap-0 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,tabIndex:0,children:[O,k]}),t[30]=i,t[31]=O,t[32]=k,t[33]=A):A=t[33];let j;t[34]===d?j=t[35]:(j=e=>{e&&_(!1),d(e)},t[34]=d,t[35]=j);let M;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsx)(q,{size:`sm`,variant:`ghost`,className:`h-6 w-6 px-0 flex-shrink-0 -mr-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(Y,{name:`more-2`,className:`h-3.5 w-3.5`})})}),t[36]=M):M=t[36];let N;t[37]===y?N=t[38]:(N=(0,$.jsx)($n,{align:`end`,className:`w-fit min-w-20`,children:y(Gn)}),t[37]=y,t[38]=N);let P;t[39]!==u||t[40]!==j||t[41]!==N?(P=(0,$.jsxs)(lr,{open:u,onOpenChange:j,children:[M,N]}),t[39]=u,t[40]=j,t[41]=N,t[42]=P):P=t[42];let F;t[43]!==A||t[44]!==P?(F=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:[A,P]}),t[43]=A,t[44]=P,t[45]=F):F=t[45];let I;t[46]!==F||t[47]!==C?(I=(0,$.jsx)(Ei,{render:C,children:F}),t[46]=F,t[47]=C,t[48]=I):I=t[48];let L;t[49]===y?L=t[50]:(L=(0,$.jsx)(Di,{className:`w-fit min-w-20`,children:y(Oi)}),t[49]=y,t[50]=L);let R;return t[51]!==g||t[52]!==I||t[53]!==L?(R=(0,$.jsxs)(ki,{open:g,onOpenChange:_,children:[I,L]}),t[51]=g,t[52]=I,t[53]=L,t[54]=R):R=t[54],R};function Ka(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function qa(e){return typeof e==`string`&&e.length>0?e:void 0}function Ja(e){let t=Ka(e)?e:null,n=t&&Array.isArray(t.data)?t.data:Array.isArray(e)?e:null;if(!n)throw Error(`permission saved: expected list payload`);return n.map(e=>{if(!Ka(e))throw Error(`permission saved: invalid rule`);let t=qa(e.id),n=qa(e.projectID),r=qa(e.action),i=qa(e.resource);if(!t||!n||!r||!i)throw Error(`permission saved: invalid rule`);return{id:t,projectID:n,action:r,resource:i}})}async function Ya(e,t){if(!e.trim())throw Error(`permission saved: directory required`);t?.throwIfAborted();let n=await me.getApiClient().location.get({location:{directory:e}},{signal:t});t?.throwIfAborted();let r=qa(n?.project?.id);if(!r)throw Error(`permission saved: project ID required`);return r}async function Xa(e){e.signal?.throwIfAborted();let t=await me.getApiClient().permission.saved.list({projectID:e.projectID??void 0},{signal:e.signal});e.signal?.throwIfAborted();let n=Ja(t);if(e.projectID&&n.some(t=>t.projectID!==e.projectID))throw Error(`permission saved: project mismatch`);return n}async function Za(e){e.signal?.throwIfAborted(),await me.getApiClient().permission.saved.remove({id:e.id},{signal:e.signal})}function Qa(e){if(e.transport!==i()||e.generation!==o())throw Error(`Saved permission runtime changed`)}var $a=e=>Ee({queryKey:[e.transport,e.generation,`saved-permission-project`,e.directory],queryFn:async({signal:t})=>{Qa(e);let n=await Ya(e.directory,t);return Qa(e),n},retry:!1}),eo=e=>Ee({queryKey:[e.transport,e.generation,`saved-permissions`,e.directory,e.projectID],queryFn:async({signal:t})=>{if(Qa(e),!e.directory||!e.projectID)throw Error(`Saved permission scope required`);let n=await Xa({projectID:e.projectID,signal:t});return Qa(e),n},retry:!1});function to(e){let t=(0,Ii.c)(3),n=(0,Q.useSyncExternalStore)(r,o,o),a={transport:i(),generation:n,directory:e.trim()},s=De({...$a(a),enabled:!!a.directory}),c={...a,projectID:s.data??``},l=eo(c),u=!!(a.directory&&s.data)&&!s.isError,d;return t[0]!==l||t[1]!==u?(d={...l,enabled:u},t[0]=l,t[1]=u,t[2]=d):d=t[2],{project:s,list:De(d),scope:c}}async function no(e,t,n){Qa(t);let r=eo(t).queryKey;if(!e.getQueryData(r)?.some(e=>e.id===n&&e.projectID===t.projectID))throw Error(`Saved permission is outside the captured scope`);await Za({id:n}),t.transport===i()&&t.generation===o()&&(await e.cancelQueries({queryKey:r,exact:!0}),t.transport===i()&&t.generation===o()&&e.setQueryData(r,e=>e?.filter(e=>e.id!==n)))}var ro=()=>{let e=(0,Ii.c)(49),{t}=Ne(),n=pe(io),r=we(),{project:i,list:a,scope:o}=to(n),s;e[0]===r?s=e[1]:(s={mutationFn:e=>{let{scope:t,id:n}=e;return no(r,t,n)}},e[0]=r,e[1]=s);let c=Te(s),l;e[2]!==c.variables||e[3]!==o?(l=c.variables&&JSON.stringify(c.variables.scope)===JSON.stringify(o),e[2]=c.variables,e[3]=o,e[4]=l):l=e[4];let u=l,d=i.isError||a.isError,f=!!o.directory&&(i.isPending||a.isPending)&&!d,p;e[5]===a.data?p=e[6]:(p=a.data??[],e[5]=a.data,e[6]=p);let m=p,h;e[7]!==c||e[8]!==o?(h=e=>c.mutate({scope:o,id:e}),e[7]=c,e[8]=o,e[9]=h):h=e[9];let g=je(h),_;e[10]!==a||e[11]!==i?(_=()=>{i.isError?i.refetch():a.refetch()},e[10]=a,e[11]=i,e[12]=_):_=e[12];let v=je(_);if(!d&&!f&&m.length===0)return null;let y;e[13]===t?y=e[14]:(y=t(`settings.permissions.saved.title`),e[13]=t,e[14]=y);let b;e[15]!==f||e[16]!==t?(b=f?t(`common.loading`):void 0,e[15]=f,e[16]=t,e[17]=b):b=e[17];let x;e[18]!==d||e[19]!==a.isFetching||e[20]!==i.isFetching||e[21]!==v||e[22]!==t?(x=d&&(0,$.jsx)(Pr,{label:(0,$.jsx)(`span`,{role:`alert`,children:t(`settings.permissions.saved.loadFailed`)}),children:(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`xs`,onClick:v,disabled:i.isFetching||a.isFetching,children:t(`settings.permissions.saved.retry`)})}),e[18]=d,e[19]=a.isFetching,e[20]=i.isFetching,e[21]=v,e[22]=t,e[23]=x):x=e[23];let S;e[24]!==c.isError||e[25]!==u||e[26]!==t?(S=u&&c.isError&&(0,$.jsx)(Pr,{label:(0,$.jsx)(`span`,{role:`alert`,children:t(`settings.permissions.saved.deleteFailed`)}),children:null}),e[24]=c.isError,e[25]=u,e[26]=t,e[27]=S):S=e[27];let C;if(e[28]!==c.isPending||e[29]!==d||e[30]!==g||e[31]!==m||e[32]!==f||e[33]!==u||e[34]!==t){let n;e[36]!==c.isPending||e[37]!==d||e[38]!==g||e[39]!==f||e[40]!==u||e[41]!==t?(n=e=>(0,$.jsx)(Pr,{label:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{children:e.action}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground font-mono`,children:e.resource})]}),children:(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`xs`,disabled:d||f||!!(u&&c.isPending),onClick:()=>void g(e.id),children:t(`settings.permissions.saved.delete`)})},e.id),e[36]=c.isPending,e[37]=d,e[38]=g,e[39]=f,e[40]=u,e[41]=t,e[42]=n):n=e[42],C=m.map(n),e[28]=c.isPending,e[29]=d,e[30]=g,e[31]=m,e[32]=f,e[33]=u,e[34]=t,e[35]=C}else C=e[35];let w;return e[43]!==y||e[44]!==b||e[45]!==x||e[46]!==S||e[47]!==C?(w=(0,$.jsx)(`div`,{"data-settings-item":`permissions.saved`,className:`mb-6`,children:(0,$.jsxs)(Z,{label:y,description:b,children:[x,S,C]})}),e[43]=y,e[44]=b,e[45]=x,e[46]=S,e[47]=C,e[48]=w):w=e[48],w};function io(e){return e.currentDirectory}var ao=[`*`,`read`,`edit`,`glob`,`grep`,`shell`,`subagent`,`skill`,`webfetch`,`websearch`,`question`,`external_directory`,`execute`,`browser`],oo={"*":`settings.agents.page.permissions.defaultLabel`,shell:`settings.agents.page.permissions.shell`,bash:`settings.agents.page.permissions.shell`,subagent:`settings.agents.page.permissions.subagent`,task:`settings.agents.page.permissions.subagent`,edit:`settings.agents.page.permissions.edit`,write:`settings.agents.page.permissions.edit`,patch:`settings.agents.page.permissions.edit`,apply_patch:`settings.agents.page.permissions.edit`,multiedit:`settings.agents.page.permissions.edit`,external_directory:`settings.agents.page.permissions.externalDirectory`,question:`settings.agents.page.permissions.question`,read:`settings.agents.page.permissions.read`,glob:`settings.agents.page.permissions.glob`,grep:`settings.agents.page.permissions.grep`,skill:`settings.agents.page.permissions.skill`,webfetch:`settings.agents.page.permissions.webfetch`,websearch:`settings.agents.page.permissions.websearch`,execute:`settings.agents.page.permissions.execute`,browser:`settings.agents.page.permissions.browser`,session_rename:`chat.tools.display.session_rename`,session_move:`chat.tools.display.session_move`},so=e=>e===`allow`||e===`ask`||e===`deny`,co=(e,t)=>`${e}::${t}`,lo=e=>e===`bash`?`shell`:e===`task`?`subagent`:e===`write`||e===`patch`?`edit`:e,uo=e=>{let t=new Map;for(let n of e){let e=lo(n.permission);!e||e===`invalid`||n.pattern&&so(n.action)&&t.set(co(e,n.pattern),{permission:e,pattern:n.pattern,action:n.action})}return Array.from(t.values())},fo=e=>{let t=new Map;for(let n of uo(e))t.set(co(n.permission,n.pattern),n);return t},po=e=>[...e].sort((e,t)=>{let n=e.permission.localeCompare(t.permission);return n===0?e.pattern.localeCompare(t.pattern):n}),mo=(e,t)=>{let n=po(uo(e)),r=po(uo(t));return n.length===r.length&&n.every((e,t)=>{let n=r[t];return e.permission===n.permission&&e.pattern===n.pattern&&e.action===n.action})},ho=e=>e.find(e=>e.permission===`*`&&e.pattern===`*`)?.action??`allow`,go=(e,t)=>uo(e).filter(e=>e.permission!==`*`||e.pattern!==`*`).filter(e=>e.pattern!==`*`||e.action!==t),_o=e=>{if(Array.isArray(e))return uo(e.flatMap(e=>!e||typeof e!=`object`||typeof e.action!=`string`||typeof e.resource!=`string`||!so(e.effect)?[]:[{permission:e.action,pattern:e.resource,action:e.effect}]));if(so(e))return[{permission:`*`,pattern:`*`,action:e}];if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=[];for(let[n,r]of Object.entries(e))if(n!==`__originalKeys`){if(so(r)){t.push({permission:n,pattern:`*`,action:r});continue}if(r&&typeof r==`object`&&!Array.isArray(r))for(let[e,i]of Object.entries(r))so(i)&&t.push({permission:n,pattern:e,action:i})}return t},vo=()=>{let{t:e}=Ne(),{selectedAgentName:t,getAgentByName:n,createAgent:r,updateAgent:i,agentDraft:a,setAgentDraft:o}=Kt(ue(e=>({selectedAgentName:e.selectedAgentName,getAgentByName:e.getAgentByName,createAgent:e.createAgent,updateAgent:e.updateAgent,agentDraft:e.agentDraft,setAgentDraft:e.setAgentDraft}))),{data:s=[]}=Ze(),c=t?n(t):null,u=!!(a&&a.name===t&&!c),[d,f]=Q.useState(``),[p,m]=Q.useState(`user`),[h,g]=Q.useState(``),[_,v]=Q.useState(`subagent`),[y,b]=Q.useState(``),[x,S]=Q.useState(``),[C,w]=Q.useState(!1),[T,E]=Q.useState(`allow`),[D,O]=Q.useState([]),[k,A]=Q.useState([]),[j,M]=Q.useState(``),[N,P]=Q.useState(`*`),[F,I]=Q.useState(!1),[L,R]=Q.useState(!1),z=Q.useRef(null),B=pe(e=>e.currentDirectory??null),[V,H]=Q.useState([]),ee=It(e=>e.permission);Q.useEffect(()=>{let e=!1;return(async()=>{let t=await me.listToolIds({directory:B});if(e)return;let n=new Set([`write`,`patch`,`multiedit`]),r=t.map(e=>typeof e==`string`?e.trim():``).filter(Boolean).filter(e=>e!==`*`).filter(e=>e!==`invalid`).filter(e=>!n.has(e));H(Array.from(new Set(r)).sort((e,t)=>e.localeCompare(t)))})(),()=>{e=!0}},[B]);let U=Q.useMemo(()=>{let e=new Set;for(let t of s){let n=uo(_o(t.permissions??t.permission));for(let t of n)t.permission&&t.permission!==`*`&&t.permission!==`invalid`&&e.add(t.permission)}for(let t of Object.values(ee))for(let n of t){let t=n.permission?.trim();t&&t!==`invalid`&&e.add(t)}for(let t of V)e.add(t);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[s,ee,V]),te=Q.useMemo(()=>fo(D),[D]),W=Q.useMemo(()=>fo(k),[k]),ne=e=>W.get(co(e,`*`))?.action,re=e=>k.filter(t=>t.permission===e&&t.pattern!==`*`).sort((e,t)=>e.pattern.localeCompare(t.pattern)),ie=Q.useMemo(()=>{let e=new Set;for(let t of ao)e.add(t);for(let t of U)e.add(t);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[U]),ae=e=>{let t=e===`*`?T:ne(e)??T,n=re(e),r=n.reduce((e,t)=>(e[t.action]=(e[t.action]??0)+1,e),{allow:0,ask:0,deny:0}),i=[`allow`,`ask`,`deny`].filter(e=>r[e]>0).map(e=>`${r[e]} ${e}`).join(`, `);return{defaultAction:t,patternRulesCount:n.length,patternSummary:i,hasDefaultHint:!1}},oe=t=>e(t===`allow`?`settings.common.permission.allow`:t===`deny`?`settings.common.permission.deny`:`settings.common.permission.ask`),se=t=>t===`global`?e(`settings.common.scope.global`):oe(t),ce=Q.useMemo(()=>{let e=new Set;for(let t of ao)e.add(t);for(let t of U)e.add(t);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[U]),le=(e,t,n)=>{A(r=>{let i=fo(r);return i.set(co(e,t),{permission:e,pattern:t,action:n}),Array.from(i.values())})},de=(e,t)=>{A(n=>{let r=fo(n);return r.delete(co(e,t)),Array.from(r.values())})},fe=(e,t)=>{let n=te.get(co(e,t));if(n){le(e,t,n.action);return}de(e,t)},he=(e,t,n)=>{le(e,t,n)},ge=e=>{E(e),A(t=>t.filter(t=>t.pattern!==`*`||t.action!==e))},_e=t=>{let n=j.trim();if(!n){J.error(e(`settings.agents.page.toast.permissionNameRequired`));return}let r=N.trim()||`*`;if(n===`*`&&r===`*`){ge(t),M(``),P(`*`);return}r===`*`&&n!==`*`&&t===T?de(n,`*`):le(n,r,t),M(``),P(`*`)},ve=t=>{let n=oo[t];return n?e(n):t.split(/[_-]+/g).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)};Q.useEffect(()=>{M(``),P(`*`);let e=e=>{let t=uo(e),n=ho(t),r=go(t,n);return E(n),O(r),A(r),{global:n,rules:r}};if(u&&a){let t=a.name||``,n=a.scope||`user`,r=a.description||``,i=a.mode||`subagent`,o=a.model||``,s=a.system||``;f(t),m(n),g(r),v(i),b(o),S(s),w(!1);let c=e(_o(a.permissions));z.current={draftName:t,draftScope:n,description:r,mode:i,model:o,system:s,globalPermission:c.global,permissionRules:c.rules};return}if(c&&t===c.name){let t=c,n=c.description||``,r=c.mode||`subagent`,i=Da(c),a=t.scope===`project`?`project`:`user`;m(a),g(n),v(r),b(i),S(``),w(!1);let o=e(_o(t.permissions??c.permission));z.current={draftName:``,draftScope:a,description:n,mode:r,model:i,system:``,globalPermission:o.global,permissionRules:o.rules}}},[a,u,c,t]),Q.useEffect(()=>{if(!t||u)return;let e=new AbortController,n=Rt();return l(`/api/config/agents/${encodeURIComponent(t)}/config`,{signal:e.signal,headers:n?{"x-opencode-directory":n}:{}}).then(async t=>{if(!t.ok||e.signal.aborted)return;let n=Ea((await t.json()).config);e.signal.aborted||n===void 0||!z.current||(S(n),z.current={...z.current,system:n})}).catch(()=>void 0),()=>e.abort()},[u,t]);let ye=Q.useMemo(()=>{let e=z.current;return e?!!(u&&d!==e.draftName||p!==e.draftScope||h!==e.description||_!==e.mode||y!==e.model||x!==e.system||T!==e.globalPermission||!mo(k,e.permissionRules)):!1},[h,d,p,T,u,_,y,k,x]),G=(!u&&c?c.document:void 0)?.dropped?.map(e=>e.key)??[],be=!L&&ye;return t?(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[(0,$.jsx)(ro,{}),(0,$.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`typography-ui-header font-semibold text-foreground truncate`,children:u?e(`settings.agents.page.title.new`):Aa(t??``)}),(0,$.jsx)(`p`,{className:`typography-meta text-muted-foreground truncate`,children:e(u?`settings.agents.page.subtitle.new`:`settings.agents.page.subtitle.edit`)})]}),(0,$.jsx)(q,{type:`button`,onClick:async()=>{let n=u?d.trim().replace(/\s+/g,`-`):t?.trim();if(!n){J.error(e(`settings.agents.sidebar.toast.agentNameRequired`));return}if(u&&s.some(e=>e.name===n)){J.error(e(`settings.agents.sidebar.toast.agentExists`));return}R(!0);try{let t={description:h,mode:_,model:y,system:x,globalPermission:T,permissionRules:k},s=z.current,c=s?{description:s.description,mode:s.mode,model:s.model,system:s.system,globalPermission:s.globalPermission,permissionRules:s.permissionRules}:null,l=Ta({isNewAgent:u,agentName:n,draftScope:p,initialScope:s?.draftScope,draftHasExplicitPermission:u&&a?.permissions!==void 0,current:t,initial:c,confirmDrop:C}),d;u?(d=await r(l),d.ok&&o(null)):d=await i(n,l),d.ok?d.requiresManualRestart?J.warning(e(`settings.agents.page.toast.savedManualRestart`)):J.success(e(`settings.agents.page.toast.savedNextRequest`)):J.error(e(u?`settings.agents.page.toast.createFailed`:`settings.agents.page.toast.updateFailed`))}catch(t){console.error(`Error saving agent:`,t);let n=t instanceof Error&&t.message?t.message:e(`settings.agents.page.toast.saveUnexpectedError`);J.error(n)}finally{R(!1)}},disabled:!be,children:e(L?`settings.common.actions.saving`:`settings.common.actions.saveChanges`)})]}),G.length>0?(0,$.jsxs)(`div`,{className:`mt-3 flex flex-col gap-2`,children:[(0,$.jsx)(`p`,{className:`typography-meta text-muted-foreground`,children:e(`settings.agents.page.legacy.dropped`,{fields:G.join(`, `)})}),(0,$.jsxs)(`label`,{className:`flex items-center gap-2 typography-meta text-foreground`,children:[(0,$.jsx)(cn,{checked:C,onChange:w,ariaLabel:e(`settings.agents.page.legacy.confirmDrop`)}),e(`settings.agents.page.legacy.confirmDrop`)]})]}):null,(0,$.jsxs)(Z,{label:e(`settings.agents.page.section.identityRole`),children:[(0,$.jsx)(Pr,{itemId:`agents.scope`,label:e(`settings.agents.page.field.scope`),children:(0,$.jsxs)(un,{value:p,onValueChange:e=>m(e),children:[(0,$.jsx)(an,{className:`w-fit min-w-[100px]`,children:(0,$.jsx)(fn,{placeholder:e(`settings.agents.page.field.scopePlaceholder`),children:t=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:t===`project`?`folder`:`user-3`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(t===`project`?`settings.common.scope.project`:`settings.common.scope.global`)})]})})}),(0,$.jsxs)(on,{align:`end`,children:[(0,$.jsx)(nn,{value:`user`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:`user-3`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(`settings.common.scope.global`)})]})}),(0,$.jsx)(nn,{value:`project`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:`folder`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(`settings.common.scope.project`)})]})})]})]})}),u&&(0,$.jsx)(Pr,{itemId:`agents.name`,label:e(`settings.agents.page.field.agentName`),children:(0,$.jsxs)(`div`,{className:`flex items-center`,children:[(0,$.jsx)(`span`,{className:`typography-ui-label text-muted-foreground mr-1`,children:`@`}),(0,$.jsx)(pn,{value:d,onChange:e=>f(e.target.value),placeholder:e(`settings.agents.page.field.agentNamePlaceholder`),className:`h-7 w-40 px-2`})]})}),(0,$.jsx)(Pr,{label:e(`settings.common.field.description`),className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,value:h,onChange:e=>g(e.target.value),placeholder:e(`settings.agents.page.field.descriptionPlaceholder`),rows:2,className:`w-full resize-none min-h-[60px] bg-transparent`})}),(0,$.jsx)(Pr,{itemId:`agents.mode`,className:`oc-settings-agents-mode-row`,label:(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(`span`,{children:e(`settings.agents.page.field.mode`)}),(0,$.jsxs)(gn,{children:[(0,$.jsx)(mn,{asChild:!0,children:(0,$.jsx)(Y,{name:`information`,className:`h-3.5 w-3.5 text-muted-foreground/60 cursor-help`})}),(0,$.jsx)(hn,{sideOffset:8,className:`max-w-xs`,children:e(`settings.agents.page.field.modeTooltip`)})]})]}),children:(0,$.jsxs)(`div`,{className:`flex flex-nowrap items-center justify-end gap-1`,children:[(0,$.jsx)(q,{variant:`chip`,size:`xs`,"aria-pressed":_===`primary`,onClick:()=>v(`primary`),className:`!font-normal shrink-0`,children:e(`settings.agents.page.mode.primary`)}),(0,$.jsx)(q,{variant:`chip`,size:`xs`,"aria-pressed":_===`subagent`,onClick:()=>v(`subagent`),className:`!font-normal shrink-0`,children:e(`settings.agents.page.mode.subagent`)}),(0,$.jsx)(q,{variant:`chip`,size:`xs`,"aria-pressed":_===`all`,onClick:()=>v(`all`),className:`!font-normal shrink-0`,children:e(`settings.agents.page.mode.all`)})]})})]}),(0,$.jsx)(Z,{label:e(`settings.agents.page.section.modelParameters`),children:(0,$.jsx)(Pr,{itemId:`agents.model`,label:e(`settings.agents.page.field.overrideModel`),children:(0,$.jsx)(En,{providerId:Oa(y)?.providerId??``,modelId:Oa(y)?.modelId??``,variant:Oa(y)?.variant??``,onChange:(e,t,n)=>{b(e&&t?n?`${e}/${t}#${n}`:`${e}/${t}`:``)},className:`oc-settings-inline-value`})})}),(0,$.jsx)(Yr,{itemId:`agents.system-prompt`,label:e(`settings.agents.page.section.systemPrompt`),className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,value:x,onChange:e=>S(e.target.value),placeholder:e(`settings.agents.page.field.systemPromptPlaceholder`),rows:8,className:`w-full font-mono typography-meta min-h-[120px] max-h-[60vh] bg-transparent resize-y`})}),(0,$.jsx)(`div`,{"data-settings-item":`agents.permissions`,children:(0,$.jsx)(Z,{label:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,$.jsx)(`span`,{children:e(`settings.agents.page.section.toolPermissions`)}),(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>I(e=>!e),children:e(F?`settings.agents.page.permissions.hideEditor`:`settings.agents.page.permissions.advancedEditor`)})]}),children:F?(0,$.jsxs)(`div`,{className:`space-y-6 p-2`,children:[(0,$.jsx)(Pr,{label:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{children:e(`settings.agents.page.permissions.globalDefault`)}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground/70 font-mono`,children:`*`})]}),children:(0,$.jsxs)(un,{value:T,onValueChange:e=>ge(e),children:[(0,$.jsx)(an,{className:`w-[100px]`,children:(0,$.jsx)(fn,{children:oe(T)})}),(0,$.jsxs)(on,{children:[(0,$.jsx)(nn,{value:`allow`,children:e(`settings.common.permission.allow`)}),(0,$.jsx)(nn,{value:`ask`,children:e(`settings.common.permission.ask`)}),(0,$.jsx)(nn,{value:`deny`,children:e(`settings.common.permission.deny`)})]})]})}),(0,$.jsx)(`div`,{className:`space-y-4`,children:ie.filter(e=>e!==`*`).map(t=>{let n=ve(t),{defaultAction:r,patternRulesCount:i}=ae(t),a=ne(t),o=a??`global`,s=re(t),c=[`allow`,`ask`,`deny`].filter(e=>e!==T);return(0,$.jsxs)(`div`,{className:`border-t border-[var(--surface-subtle)] pt-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-ui-label text-foreground`,children:n}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground/70 font-mono`,children:t})]}),(0,$.jsx)(`div`,{className:`typography-micro text-muted-foreground`,children:i>0?e(`settings.agents.page.permissions.globalSummary`,{summary:r}):r})]}),(0,$.jsxs)(`div`,{className:`space-y-1 pl-2 mt-1`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 py-0.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground`,children:e(`settings.agents.page.permissions.pattern`)}),(0,$.jsx)(`span`,{className:`typography-micro font-mono text-foreground bg-[var(--surface-muted)] px-1 rounded`,children:`*`}),a&&(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>fe(t,`*`),className:`px-1.5 py-0 h-5`,children:(0,$.jsx)(Y,{name:`subtract`,className:`h-3.5 w-3.5 text-muted-foreground hover:text-foreground`})})]}),(0,$.jsxs)(un,{value:o,onValueChange:e=>{if(e===`global`){de(t,`*`);return}le(t,`*`,e)},children:[(0,$.jsx)(an,{className:`w-[90px]`,children:(0,$.jsx)(fn,{children:se(o)})}),(0,$.jsxs)(on,{children:[(0,$.jsx)(nn,{value:`global`,children:e(`settings.common.scope.global`)}),c.map(e=>(0,$.jsx)(nn,{value:e,className:`capitalize`,children:oe(e)},e))]})]})]}),s.map(t=>{let n=co(t.permission,t.pattern),r=te.get(n),i=!r,a=!!(r&&r.action!==t.action);return(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 py-0.5 border-t border-[var(--surface-subtle)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground`,children:e(`settings.agents.page.permissions.pattern`)}),(0,$.jsx)(`span`,{className:`typography-micro font-mono text-foreground bg-[var(--surface-muted)] px-1 rounded`,children:t.pattern}),i&&(0,$.jsx)(`span`,{className:`typography-micro text-[var(--status-success)]`,children:e(`settings.common.badge.new`)}),a&&(0,$.jsx)(`span`,{className:`typography-micro text-[var(--status-warning)]`,children:e(`settings.common.badge.modified`)}),(i||a)&&(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>i?de(t.permission,t.pattern):fe(t.permission,t.pattern),className:`px-1.5 py-0 h-5`,children:(0,$.jsx)(Y,{name:`subtract`,className:`h-3.5 w-3.5 text-muted-foreground hover:text-foreground`})})]}),(0,$.jsxs)(un,{value:t.action,onValueChange:e=>he(t.permission,t.pattern,e),children:[(0,$.jsx)(an,{className:`w-[90px]`,children:(0,$.jsx)(fn,{children:oe(t.action)})}),(0,$.jsxs)(on,{children:[(0,$.jsx)(nn,{value:`allow`,children:e(`settings.common.permission.allow`)}),(0,$.jsx)(nn,{value:`ask`,children:e(`settings.common.permission.ask`)}),(0,$.jsx)(nn,{value:`deny`,children:e(`settings.common.permission.deny`)})]})]})]},n)})]})]},t)})}),(0,$.jsxs)(`div`,{className:`border-t border-[var(--surface-subtle)] pt-3`,children:[(0,$.jsx)(`h4`,{className:`typography-ui-label text-foreground mb-2`,children:e(`settings.agents.page.permissions.addCustomRule`)}),(0,$.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-end sm:items-center gap-2`,children:[(0,$.jsxs)(un,{value:j,onValueChange:M,children:[(0,$.jsx)(an,{className:`w-full sm:w-[160px]`,children:j?(0,$.jsx)(`span`,{className:`truncate`,children:ve(j)}):(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:e(`settings.agents.page.permissions.permissionPlaceholder`)})}),(0,$.jsx)(on,{children:ce.map(e=>(0,$.jsx)(nn,{value:e,children:(0,$.jsx)(`div`,{className:`flex items-center justify-between gap-2 w-full`,children:(0,$.jsx)(`span`,{children:ve(e)})})},e))})]}),(0,$.jsx)(pn,{value:N,onChange:e=>P(e.target.value),placeholder:e(`settings.agents.page.permissions.patternPlaceholder`),className:`h-7 flex-1 font-mono text-xs`}),(0,$.jsxs)(`div`,{className:`flex gap-1`,children:[(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>_e(`allow`),children:e(`settings.common.permission.allow`)}),(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>_e(`ask`),children:e(`settings.common.permission.ask`)}),(0,$.jsx)(q,{variant:`outline`,size:`xs`,className:`!font-normal`,onClick:()=>_e(`deny`),children:e(`settings.common.permission.deny`)})]})]})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`typography-micro text-muted-foreground px-3 pt-2`,children:e(`settings.agents.page.permissions.lastMatchHint`)}),In(_r(k)).map((e,t)=>(0,$.jsx)(Pr,{label:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground font-mono`,children:t+1}),(0,$.jsx)(`span`,{children:e.action}),(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground/70 font-mono`,children:e.resource})]}),children:(0,$.jsx)(`span`,{className:K(`typography-micro capitalize px-1.5 py-0.5 rounded`,e.effect===`allow`?`text-[var(--status-success)] bg-[var(--status-success)]/10`:e.effect===`deny`?`text-[var(--status-error)] bg-[var(--status-error)]/10`:`text-[var(--status-warning)] bg-[var(--status-warning)]/10`),children:e.effect})},`${e.action}::${e.resource}::${t}`))]})})})]})}):(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[(0,$.jsx)(ro,{}),(0,$.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,$.jsxs)(`div`,{className:`text-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`robot-2`,className:`mx-auto mb-3 h-12 w-12 opacity-50`}),(0,$.jsx)(`p`,{className:`typography-body`,children:e(`settings.agents.page.empty.title`)}),(0,$.jsx)(`p`,{className:`typography-meta mt-1 opacity-75`,children:e(`settings.agents.page.empty.description`)})]})})]})})},yo=e=>{let t=(0,Ii.c)(23),{title:n,metadata:r,selected:i,onSelect:a,icon:o,actions:s,className:c}=e,l=i!==void 0&&i,u=s&&s.length>0,d=l?`bg-interactive-selection`:`hover:bg-interactive-hover`,f;t[0]!==c||t[1]!==d?(f=K(`oc-settings-group-row group relative flex items-center transition-colors duration-150`,d,c),t[0]=c,t[1]=d,t[2]=f):f=t[2];let p;t[3]===n?p=t[4]:(p=(0,$.jsx)(`span`,{className:`typography-ui-label font-normal truncate text-foreground`,children:n}),t[3]=n,t[4]=p);let m;t[5]!==o||t[6]!==p?(m=(0,$.jsxs)(`div`,{className:`flex max-w-full min-w-0 items-center gap-1.5`,children:[o,p]}),t[5]=o,t[6]=p,t[7]=m):m=t[7];let h;t[8]===r?h=t[9]:(h=r&&(0,$.jsx)(`div`,{className:`max-w-full truncate typography-micro leading-tight text-muted-foreground/60`,children:r}),t[8]=r,t[9]=h);let g;t[10]!==a||t[11]!==m||t[12]!==h?(g=(0,$.jsxs)(`button`,{onClick:a,"data-mobile-press-feedback":`soft`,className:`flex min-w-0 flex-1 self-stretch flex-col justify-center gap-0 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,tabIndex:0,children:[m,h]}),t[10]=a,t[11]=m,t[12]=h,t[13]=g):g=t[13];let _;t[14]!==s||t[15]!==u?(_=u&&(0,$.jsxs)(lr,{children:[(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsx)(q,{size:`icon`,variant:`ghost`,className:`h-6 w-6 flex-shrink-0 -mr-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(Y,{name:`more-2`,className:`h-3.5 w-3.5`})})}),(0,$.jsx)($n,{align:`end`,className:`w-fit min-w-20`,children:s.map(bo)})]}),t[14]=s,t[15]=u,t[16]=_):_=t[16];let v;t[17]!==g||t[18]!==_?(v=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 self-stretch items-center`,children:[g,_]}),t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;return t[20]!==f||t[21]!==v?(y=(0,$.jsx)(`div`,{className:f,children:v}),t[20]=f,t[21]=v,t[22]=y):y=t[22],y};function bo(e){let t=e.icon;return(0,$.jsxs)(Gn,{onClick:t=>{t.stopPropagation(),e.onClick()},className:K(e.destructive&&`text-destructive focus:text-destructive`),children:[t&&(0,$.jsx)(Y,{name:t,className:`h-4 w-4 mr-px`}),e.label]},e.label)}var xo=e=>{let t=(0,Ii.c)(8),{header:n,footer:r,children:i,className:a,variant:o}=e,s=o===void 0?`sidebar`:o,c=I(),l=s===`background`||c?`bg-background`:`bg-sidebar`,u;t[0]!==l||t[1]!==a?(u=K(`oc-settings-page-content h-full overflow-y-auto p-3`,l,a),t[0]=l,t[1]=a,t[2]=u):u=t[2];let d;return t[3]!==i||t[4]!==r||t[5]!==n||t[6]!==u?(d=(0,$.jsxs)(`div`,{className:u,children:[n,i,r]}),t[3]=i,t[4]=r,t[5]=n,t[6]=u,t[7]=d):d=t[7],d},So=`__managed_workspace__`,Co=`__current_workspace__`,wo=`默认助理`,To=()=>{let e=At.getState(),t=e.settingsDefaultModel;if(t){let e=bt(t);if(e?.providerId&&e?.modelId)return{providerID:e.providerId,modelID:e.modelId}}if(e.currentProviderId&&e.currentModelId)return{providerID:e.currentProviderId,modelID:e.currentModelId};let n=e.providers;for(let e of n){let t=e.models;if(Array.isArray(t)&&t.length>0){let n=t[0];if(n?.id)return{providerID:e.id,modelID:n.id}}}return null},Eo=(e=``)=>{let t=To();return{enabled:!0,name:e,defaultPrompt:``,workspacePath:null,providerID:t?.providerID??``,modelID:t?.modelID??``,variant:null}},Do=e=>({enabled:e.enabled,name:e.name,defaultPrompt:e.defaultPrompt,workspacePath:e.workspacePath,providerID:e.providerID,modelID:e.modelID,variant:e.variant}),Oo=e=>({enabled:e.enabled,name:e.name,defaultPrompt:e.defaultPrompt,workspacePath:e.workspacePath,providerID:e.providerID,modelID:e.modelID,variant:e.variant??null}),ko=e=>e.label?.trim()||e.path.replace(/[\\/]+$/,``).split(/[\\/]/).filter(Boolean).at(-1)||e.path,Ao=e=>{let t=Array.isArray(e.schedule.times)?e.schedule.times:e.schedule.time?[e.schedule.time]:[];return Array.from(new Set(t.filter(e=>/^([01]\d|2[0-3]):([0-5]\d)$/.test(e)))).sort((e,t)=>e.localeCompare(t))},jo=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Mo=e=>{if(!jo(e)||!jo(e.schedule)||!jo(e.execution)||!jo(e.state))return!1;let t=e.schedule.times===void 0||Array.isArray(e.schedule.times)&&e.schedule.times.every(e=>typeof e==`string`),n=e.schedule.weekdays===void 0||Array.isArray(e.schedule.weekdays)&&e.schedule.weekdays.every(e=>typeof e==`number`),r=e.state.lastStatus===void 0||e.state.lastStatus===`idle`||e.state.lastStatus===`running`||e.state.lastStatus===`success`||e.state.lastStatus===`error`;return typeof e.id==`string`&&typeof e.name==`string`&&typeof e.enabled==`boolean`&&(e.schedule.kind===`daily`||e.schedule.kind===`weekly`||e.schedule.kind===`once`||e.schedule.kind===`cron`)&&t&&n&&r&&typeof e.execution.prompt==`string`&&typeof e.execution.providerID==`string`&&typeof e.execution.modelID==`string`},No=(e,t)=>{let n=Ao(e).join(`, `)||`—`,r=e=>t(e===0?`sessions.scheduledTasks.dialog.schedule.weekdayShort.sun`:e===1?`sessions.scheduledTasks.dialog.schedule.weekdayShort.mon`:e===2?`sessions.scheduledTasks.dialog.schedule.weekdayShort.tue`:e===3?`sessions.scheduledTasks.dialog.schedule.weekdayShort.wed`:e===4?`sessions.scheduledTasks.dialog.schedule.weekdayShort.thu`:e===5?`sessions.scheduledTasks.dialog.schedule.weekdayShort.fri`:e===6?`sessions.scheduledTasks.dialog.schedule.weekdayShort.sat`:`sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown`);if(e.schedule.kind===`daily`)return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.dailyWithTimezone`,{time:n,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.daily`,{time:n});if(e.schedule.kind===`weekly`){let i=(e.schedule.weekdays??[]).map(r).join(`, `);return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone`,{days:i,time:n,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.weekly`,{days:i,time:n})}if(e.schedule.kind===`once`){let n=e.schedule.date?.trim()||t(`sessions.scheduledTasks.dialog.schedule.unknownDate`),r=e.schedule.time?.trim()||`—`;return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.onceWithTimezone`,{date:n,time:r,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.once`,{date:n,time:r})}return e.schedule.timezone?t(`sessions.scheduledTasks.dialog.schedule.cronWithTimezone`,{cron:e.schedule.cron??``,timezone:e.schedule.timezone}):t(`sessions.scheduledTasks.dialog.schedule.cron`,{cron:e.schedule.cron??``})},Po={paused:{icon:`pause`,className:`text-muted-foreground`},idle:{icon:`pulse`,className:`text-muted-foreground`},running:{icon:`loader-4`,className:`text-[var(--status-warning)]`},success:{icon:`checkbox-circle`,className:`text-[var(--status-success)]`},error:{icon:`error-warning`,className:`text-[var(--status-error)]`}},Fo=e=>`${e.projectId}:${e.task.id}`,Io=e=>{let t=(0,Ii.c)(31),{assistantID:n}=e,{t:r}=Ne(),i=Je(n),a=i.isError,o=ze(n,a),s=Ye(a),c=new Set;for(let e of o.data?.messages??[])for(let t of e.cards)t.cardType===`schedule`&&c.add(`${t.projectID}:${t.taskID}`);let l=(i.data?.tasks??[]).flatMap(Bo),u;t[0]===i.data?.tasks?u=t[1]:(u=i.data?.tasks.some(Vo),t[0]=i.data?.tasks,t[1]=u);let d=!!u,f=(s.data?.tasks??[]).filter(e=>c.has(Fo(e))),p=[...i.data?l:a?f:[]].sort(Ho),m=(s.data?.failedProjectIds??[]).some(e=>Array.from(c).some(t=>t.startsWith(`${e}:`))),h=i.isPending||a&&(o.isPending||s.isPending),g=i.isError||o.isError||s.isError||m||d,_=je(Uo),v;t[2]!==o||t[3]!==a||t[4]!==s||t[5]!==i?(v=()=>{i.refetch(),a&&(o.refetch(),s.refetch())},t[2]=o,t[3]=a,t[4]=s,t[5]=i,t[6]=v):v=t[6];let y=je(v),b=Z,x;t[7]===r?x=t[8]:(x=r(`assistants.settings.scheduledTasks.title`),t[7]=r,t[8]=x);let S;t[9]===r?S=t[10]:(S=r(`assistants.settings.scheduledTasks.title`),t[9]=r,t[10]=S);let C=h&&p.length===0?(0,$.jsx)(Pr,{label:r(`common.loading`),children:(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin text-muted-foreground`})}):null,w;t[11]!==_||t[12]!==r?(w=e=>{let t=e.task.enabled?e.task.state?.lastStatus??`idle`:`paused`,n=Po[t],i=r(t===`paused`?`sessions.scheduledTasks.dialog.taskToggle.paused`:t===`running`?`sessions.scheduledTasks.dialog.status.running`:t===`success`?`sessions.scheduledTasks.dialog.status.success`:t===`error`?`sessions.scheduledTasks.dialog.status.error`:`sessions.scheduledTasks.dialog.status.idle`);return(0,$.jsxs)(Pr,{className:`group relative cursor-pointer transition-colors hover:bg-interactive-hover`,label:(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3`,children:[(0,$.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-lg bg-[var(--surface-muted)] text-muted-foreground`,children:(0,$.jsx)(Y,{name:`calendar`,className:`size-3.5`})}),(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`span`,{className:`block truncate typography-ui-label font-medium text-foreground`,children:e.task.name}),(0,$.jsx)(`span`,{className:`mt-0.5 block typography-micro truncate text-muted-foreground`,children:No(e.task,r)})]})]}),controlClassName:`min-w-fit`,children:[(0,$.jsxs)(`span`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 typography-micro ${n.className}`,children:[(0,$.jsx)(Y,{name:n.icon,className:`size-3.5 ${t===`running`?`animate-spin`:``}`}),i]}),(0,$.jsx)(Y,{name:`arrow-right-s`,className:`size-4`})]}),(0,$.jsx)(q,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute inset-0 z-10 h-auto w-auto rounded-none bg-transparent p-0 hover:bg-transparent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--interactive-focus-ring)]`,onClick:_,"aria-label":r(`assistants.settings.scheduledTasks.open`,{name:e.task.name}),children:(0,$.jsx)(`span`,{className:`sr-only`,children:r(`assistants.settings.scheduledTasks.open`,{name:e.task.name})})})]},Fo(e))},t[11]=_,t[12]=r,t[13]=w):w=t[13];let T=p.map(w),E;t[14]!==g||t[15]!==y||t[16]!==r?(E=g?(0,$.jsx)(Pr,{label:r(`assistants.settings.scheduledTasks.loadError`),children:(0,$.jsx)(q,{variant:`outline`,size:`sm`,onClick:y,children:r(`assistants.actions.retry`)})}):null,t[14]=g,t[15]=y,t[16]=r,t[17]=E):E=t[17];let D;t[18]!==g||t[19]!==h||t[20]!==r||t[21]!==p?(D=!h&&!g&&p.length===0?(0,$.jsx)(Pr,{label:r(`assistants.settings.scheduledTasks.empty`),children:(0,$.jsx)(Y,{name:`calendar`,className:`size-4 text-muted-foreground`})}):null,t[18]=g,t[19]=h,t[20]=r,t[21]=p,t[22]=D):D=t[22];let O;return t[23]!==b||t[24]!==x||t[25]!==S||t[26]!==C||t[27]!==T||t[28]!==E||t[29]!==D?(O=(0,$.jsxs)(b,{label:x,ariaLabel:S,children:[C,T,E,D]}),t[23]=b,t[24]=x,t[25]=S,t[26]=C,t[27]=T,t[28]=E,t[29]=D,t[30]=O):O=t[30],O},Lo=e=>{let t=(0,Ii.c)(11),{name:n,path:r,icon:i}=e,a=i===void 0?`folder`:i,o;t[0]===a?o=t[1]:(o=(0,$.jsx)(Y,{name:a,className:`size-4 shrink-0 text-muted-foreground`}),t[0]=a,t[1]=o);let s=r?`max-w-[40%] shrink-0 truncate typography-ui-label text-foreground`:`min-w-0 truncate typography-ui-label text-foreground`,c;t[2]!==n||t[3]!==s?(c=(0,$.jsx)(`span`,{className:s,children:n}),t[2]=n,t[3]=s,t[4]=c):c=t[4];let l;t[5]===r?l=t[6]:(l=r?(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-micro text-muted-foreground`,title:r,children:r}):null,t[5]=r,t[6]=l);let u;return t[7]!==o||t[8]!==c||t[9]!==l?(u=(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[o,c,l]}),t[7]=o,t[8]=c,t[9]=l,t[10]=u):u=t[10],u},Ro=({onItemSelect:e})=>{let{t}=Ne(),n=Xe(),r=He(),i=n.data,a=qt(e=>e.settingsSelectedAssistantID),o=qt(e=>e.selectSettingsAssistant),s=qt(e=>e.requestCreate),[c,l]=Q.useState(!1);Q.useEffect(()=>{!e&&a===null&&i?.assistants[0]&&o(i.assistants[0].id)},[e,o,a,i?.assistants]),Q.useEffect(()=>{n.isSuccess&&a&&a!==`new`&&!i?.assistants.some(e=>e.id===a)&&o(e?null:i?.assistants[0]?.id??null)},[e,o,a,i?.assistants,n.isSuccess]);let u=je(()=>{s(),e?.()}),d=je(async e=>{if(i)try{if(await Ge(e,i.revision),e&&i.assistants.length===0){let e=To();if(e){let t=await We({enabled:!0,name:wo,defaultPrompt:``,workspacePath:null,providerID:e.providerID,modelID:e.modelID});o(t.id)}}}catch{ke.error(t(`assistants.settings.toast.toggleFailed`))}});return r.isSuccess&&!r.data.supported?null:(0,$.jsx)(xo,{variant:`background`,header:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Z,{description:(0,$.jsxs)($.Fragment,{children:[t(`assistants.settings.description`),(0,$.jsx)(`a`,{href:`#assistant-share-welcome`,className:`underline underline-offset-2`,onClick:e=>{e.preventDefault(),l(!0)},children:t(`assistants.settings.descriptionLearnMore`)})]}),children:(0,$.jsx)($r,{itemId:`assistants.instance-enabled`,checked:i?.enabled??!1,onChange:d,label:t(`assistants.settings.instanceEnabled`),ariaLabel:t(`assistants.settings.instanceEnabled`)})}),(0,$.jsx)(Qi,{open:c,onOpenChange:l})]}),children:(0,$.jsx)(Z,{label:(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:t(`assistants.settings.listTitle`)}),(0,$.jsx)(q,{"data-settings-item":`assistants.create`,variant:`ghost`,size:`icon`,onClick:u,"aria-label":t(`assistants.settings.create`),children:(0,$.jsx)(Y,{name:`add`,className:`size-4`})})]}),children:n.isPending||r.isPending?(0,$.jsxs)(`div`,{className:`oc-settings-group-row flex items-center justify-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`mr-2 size-4 animate-spin`}),t(`common.loading`)]}):i?.assistants.length?i.assistants.map(t=>{let n=Ie(t.name);return(0,$.jsx)(yo,{title:n.displayName,selected:a===t.id,onSelect:()=>{o(t.id),e?.()},icon:(0,$.jsx)(en,{name:t.id,emoji:n.avatarEmoji,size:24,label:n.displayName||t.name,shape:`circle`})},t.id)}):(0,$.jsx)(`div`,{className:`oc-settings-group-row text-muted-foreground`,children:t(`assistants.settings.empty`)})})})},zo=({onItemDeleted:e,assistantID:t})=>{let{t:n}=Ne(),r=Xe(),i=He(),a=r.data,o=yt(e=>e.projects),s=qt(e=>t??e.settingsSelectedAssistantID),c=qt(e=>e.selectSettingsAssistant),l=qt(e=>e.defaultShareAssistant),u=qt(e=>e.setDefaultShareAssistant),d=qt(e=>e.createRequestRevision),f=qt(e=>e.requestCreate),[p,m]=Q.useState(Eo),[h,g]=Q.useState(!1),_=Q.useRef(0),v=a?.assistants.find(e=>e.id===s)??null,y=v?Ie(v.name):null,b=Ie(p.name),x=p.workspacePath??v?.managedWorkspacePath??null,S=wt(x,{enabled:!0}).data??[];Q.useEffect(()=>{v&&m(Do(v))},[v]),Q.useEffect(()=>{t===void 0&&r.isSuccess&&s&&s!==`new`&&!v&&c(null)},[t,c,v,s,r.isSuccess]),Q.useEffect(()=>{s!==`new`||d<=_.current||(_.current=d,m(Eo(a?.assistants.length?``:wo)),window.requestAnimationFrame(()=>document.getElementById(`assistant-name`)?.focus()))},[d,s,a?.assistants.length]),Q.useEffect(()=>{r.isSuccess&&i.data?.serverInstanceID&&l?.serverInstanceID===i.data.serverInstanceID&&!a?.assistants.some(e=>e.id===l.assistantID)&&u(null)},[i.data,l,u,a?.assistants,r.isSuccess]),Q.useEffect(()=>{r.isSuccess&&Le()},[a?.revision,r.isSuccess]);let C=(e,t)=>{m(n=>({...n,[e]:t}))},w=je(()=>f()),T=je(async()=>{if(!(t!==void 0&&!v)){if(!p.name.trim()||!p.providerID||!p.modelID){ke.error(n(`assistants.settings.validation.required`));return}g(!0);try{let e=v?await Ue(v,Oo(p)):await We(p);t===void 0&&c(e.id),ke.success(n(`assistants.settings.toast.saved`))}catch{ke.error(n(`assistants.settings.toast.saveFailed`))}finally{g(!1)}}}),E=je(async()=>{if(!(!v||!window.confirm(n(`assistants.settings.deleteConfirm`,{name:v.name})))){g(!0);try{if(await Be(v),l?.assistantID===v.id){let e=await Ke();e.serverInstanceID&&l.serverInstanceID===e.serverInstanceID&&u(null)}t===void 0&&c(null),e?.(),ke.success(n(`assistants.settings.toast.deleted`))}catch{ke.error(n(`assistants.settings.toast.deleteFailed`))}finally{g(!1)}}}),D=je(async(e,t)=>{if(!t){u(null),Re();return}try{let t=await Ke();if(!t.supported||!t.serverInstanceID)return;u({serverInstanceID:t.serverInstanceID,assistantID:e}),await Re()}catch{ke.error(n(`assistants.settings.toast.toggleFailed`))}}),O=p.workspacePath===null?null:o.find(e=>e.path===p.workspacePath)??null,k=p.workspacePath!==null&&!O?p.workspacePath:null,A=p.workspacePath===null?So:O?O.id:Co,j=p.workspacePath===null?(0,$.jsx)(Lo,{name:n(`assistants.settings.workspacePlaceholder`),icon:`cloud`}):O?(0,$.jsx)(Lo,{name:ko(O),path:O.path}):(0,$.jsx)(Lo,{name:n(`assistants.settings.workspaceCurrentPath`),path:k??``,icon:`history`});return i.isSuccess&&!i.data.supported?null:r.isPending||i.isPending?(0,$.jsxs)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`mr-2 size-4 animate-spin`}),n(`common.loading`)]}):r.isError&&!a||t!==void 0&&!v?(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 px-6 text-center`,children:[(0,$.jsx)(Y,{name:`cloud-off`,className:`size-6 text-muted-foreground`}),(0,$.jsx)(`p`,{className:`typography-ui text-muted-foreground`,children:n(`assistants.state.unavailable`)}),(0,$.jsx)(q,{variant:`outline`,size:`sm`,onClick:()=>void r.refetch(),children:n(`assistants.actions.retry`)})]}):(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[r.isError&&a?(0,$.jsx)(`p`,{className:`mb-4 px-2 typography-meta text-[var(--status-warning)]`,children:n(`assistants.state.staleSnapshot`)}):null,s?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`mb-4 flex items-center gap-3`,children:[(0,$.jsx)(en,{name:v?.id??`new`,emoji:b.avatarEmoji,size:38,label:b.displayName||p.name||n(`assistants.settings.create`),shape:`circle`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h2`,{className:`truncate typography-ui-header font-semibold text-foreground`,children:v?y?.displayName:n(`assistants.settings.create`)}),p.providerID&&p.modelID?(0,$.jsx)(`p`,{className:`mt-0.5 typography-micro leading-none text-muted-foreground/70`,children:`${p.providerID}/${p.modelID}`}):null]}),v?(0,$.jsxs)(q,{variant:`ghost`,size:`sm`,onClick:E,disabled:h,className:`text-[var(--status-error)]`,children:[(0,$.jsx)(Y,{name:`delete-bin`,className:`size-4`}),n(`assistants.settings.delete`)]}):null]}),(0,$.jsxs)(Z,{children:[(0,$.jsx)(Pr,{itemId:`assistants.name`,label:n(`assistants.settings.name`),children:(0,$.jsx)(pn,{id:`assistant-name`,value:p.name,onChange:e=>C(`name`,e.target.value),className:`min-w-0 flex-1`})}),(0,$.jsx)(Pr,{label:n(`assistants.settings.enabled`),children:(0,$.jsx)(cn,{checked:p.enabled,onChange:e=>C(`enabled`,e),ariaLabel:n(`assistants.settings.enabled`)})}),v?(0,$.jsx)(Pr,{itemId:`assistants.default-share`,label:n(`assistants.settings.defaultShare`),children:(0,$.jsx)(cn,{checked:l?.assistantID===v.id&&l.serverInstanceID===i.data?.serverInstanceID,onChange:e=>void D(v.id,e),ariaLabel:n(`assistants.settings.defaultShare`)})}):null]}),(0,$.jsx)(Yr,{itemId:`assistants.prompt`,label:n(`assistants.settings.defaultPrompt`),className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,id:`assistant-prompt`,value:p.defaultPrompt,onChange:e=>C(`defaultPrompt`,e.target.value),placeholder:n(`assistants.settings.defaultPromptPlaceholder`),rows:12,outerClassName:`min-h-[240px] max-h-[70vh]`})}),(0,$.jsx)(Z,{label:n(`assistants.settings.runtime`),children:(0,$.jsx)(Pr,{itemId:`assistants.model`,label:n(`assistants.settings.model`),children:(0,$.jsx)(En,{providerId:p.providerID,modelId:p.modelID,variant:p.variant??``,providers:S,onChange:(e,t,n)=>m(r=>({...r,providerID:e,modelID:t,variant:n||null})),className:`oc-settings-inline-value`})})}),(0,$.jsx)(Yr,{itemId:`assistants.workspace`,label:n(`assistants.settings.workspace`),description:n(`assistants.settings.workspaceChangeHint`),descriptionPlacement:`outside`,children:(0,$.jsxs)(un,{value:A,onValueChange:e=>{if(e===So){C(`workspacePath`,null);return}let t=o.find(t=>t.id===e);t&&C(`workspacePath`,t.path)},children:[(0,$.jsx)(an,{title:p.workspacePath??n(`assistants.settings.workspacePlaceholder`),className:`w-full max-w-xl [&_[data-slot=select-value]]:min-w-0 [&_[data-slot=select-value]]:flex-1 [&_[data-slot=select-value]]:overflow-hidden`,children:(0,$.jsx)(fn,{children:j})}),(0,$.jsxs)(on,{align:`start`,className:`w-[min(32rem,calc(100vw-2rem))]`,children:[(0,$.jsx)(nn,{value:So,children:(0,$.jsx)(Lo,{name:n(`assistants.settings.workspacePlaceholder`),icon:`cloud`})}),o.map(e=>(0,$.jsx)(nn,{value:e.id,children:(0,$.jsx)(Lo,{name:ko(e),path:e.path})},e.id)),k?(0,$.jsx)(nn,{value:Co,disabled:!0,children:(0,$.jsx)(Lo,{name:n(`assistants.settings.workspaceCurrentPath`),path:k,icon:`history`})}):null]})]})}),v?(0,$.jsx)(Io,{assistantID:v.id}):null,(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsxs)(q,{onClick:T,disabled:h,children:[h?(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}):null,n(`assistants.settings.save`)]})})]}):(0,$.jsxs)(`div`,{className:`flex min-h-80 flex-col items-center justify-center gap-3 px-6 text-center text-muted-foreground`,children:[(0,$.jsx)(en,{name:`assistants-empty`,size:44,shape:`circle`}),(0,$.jsx)(`p`,{className:`typography-ui`,children:n(`assistants.settings.empty`)}),(0,$.jsxs)(q,{"data-settings-item":`assistants.create`,size:`sm`,onClick:w,children:[(0,$.jsx)(Y,{name:`add`,className:`size-4`}),n(`assistants.settings.create`)]})]})]})})};function Bo(e){return Mo(e.task)?[{projectId:e.projectID,task:e.task}]:[]}function Vo(e){return!Mo(e.task)}function Ho(e,t){return e.task.enabled===t.task.enabled?e.task.name.localeCompare(t.task.name):e.task.enabled?-1:1}function Uo(){G.getState().setActiveMainTab(`schedule`),G.getState().setScheduledTasksDialogOpen(!0)}var Wo=`~/.config/opencode/AGENTS.md`,Go=async(e,t)=>{let n=await e.json().catch(()=>null);return typeof n?.error==`string`&&n.error.trim()?n.error:t},Ko=e=>e.length>0&&!e.endsWith(`
|
|
2
2
|
`)?`${e}\n`:e,qo={prompt:``,responseStyleEnabled:!1,responseStylePreset:`concise`,responseStyleCustomInstructions:``},Jo=(e,t)=>e===`custom`?t:_t(e),Yo=e=>e===`custom`?`custom`:Ut(e)?e:`concise`,Xo={concise:`settings.behavior.page.responseStyle.option.concise`,detailed:`settings.behavior.page.responseStyle.option.detailed`,mentor:`settings.behavior.page.responseStyle.option.mentor`,pushback:`settings.behavior.page.responseStyle.option.pushback`,noFiller:`settings.behavior.page.responseStyle.option.noFiller`,matchEnergy:`settings.behavior.page.responseStyle.option.matchEnergy`,warmPeer:`settings.behavior.page.responseStyle.option.warmPeer`},Zo=async(e,t)=>{let n=await l(`/api/config/settings`,{method:`PUT`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!n.ok)throw Error(await Go(n,t));return n.json().catch(()=>null)},Qo=()=>{let{t:e}=Ne(),t=Q.useSyncExternalStore(r,i,i),[n,a]=Q.useState(``),[o,s]=Q.useState(qo.responseStyleEnabled),[c,u]=Q.useState(qo.responseStylePreset),[d,f]=Q.useState(qo.responseStyleCustomInstructions),[p,m]=Q.useState(!1),[h,g]=Q.useState(!1),[_,v]=Q.useState(!1),[y,b]=Q.useState(``),x=Q.useRef(null),S=Q.useRef(null),C=Q.useRef(0),w=Q.useRef(Promise.resolve());Q.useEffect(()=>{let e=!0;return g(!1),x.current=null,S.current=null,C.current+=1,A(t).then(n=>{if(!e||t!==i())return;let r={enabled:n.responseStyleEnabled===!0,preset:Yo(n.responseStylePreset),custom:typeof n.responseStyleCustomInstructions==`string`?n.responseStyleCustomInstructions:``};s(r.enabled),u(r.preset),f(r.custom),Wt({enabled:r.enabled,preset:r.preset,customInstructions:r.custom},t),x.current=r,S.current=r,g(!0)}).catch(t=>{e&&t?.name!==`AbortError`&&console.warn(`Failed to load behavior settings:`,t)}),()=>{e=!1,C.current+=1}},[t]),Q.useEffect(()=>{let e=new AbortController,n=!0;return m(!1),v(!1),(async()=>{try{let r=await l(`/api/behavior/agents-md`,{method:`GET`,headers:{Accept:`application/json`},signal:e.signal});if(!r.ok)throw Error(`Behavior prompt request failed (${r.status})`);let o=await r.json().catch(()=>null);if(typeof o?.content!=`string`)throw Error(`Invalid behavior prompt response`);if(!n||t!==i())return;a(o.content),b(o.content),m(!0)}catch(e){n&&e?.name!==`AbortError`&&console.warn(`Failed to load behavior prompt:`,e)}})(),()=>{n=!1,e.abort()}},[t]),Q.useEffect(()=>{if(!h)return;let n={enabled:o,preset:c,custom:d},r=S.current;if(r&&r.enabled===n.enabled&&r.preset===n.preset&&r.custom===n.custom)return;S.current=n;let a=C.current+1;C.current=a;let l=setTimeout(()=>{let r=async()=>{if(t===i())try{let r=await Zo({responseStyleEnabled:n.enabled,responseStylePreset:n.preset,responseStyleCustomInstructions:n.custom},e(`settings.behavior.page.toast.saveFailed`));if(t!==i())return;let o=D(r),c={enabled:o.responseStyleEnabled??n.enabled,preset:o.responseStylePreset??n.preset,custom:o.responseStyleCustomInstructions??n.custom};if(Wt({enabled:c.enabled,preset:c.preset,customInstructions:c.custom},t),T({responseStyleEnabled:c.enabled,responseStylePreset:c.preset,responseStyleCustomInstructions:c.custom},t),x.current=c,a!==C.current)return;S.current=c,s(c.enabled),u(c.preset),f(c.custom)}catch(n){if(t===i()&&a===C.current){let t=x.current;S.current=t,t&&(s(t.enabled),u(t.preset),f(t.custom));let r=n instanceof Error?n.message:e(`settings.behavior.page.toast.saveFailed`);J.error(r)}}};w.current=w.current.then(r,r)},400);return()=>clearTimeout(l)},[o,c,d,h,e,t]);let E=Jo(c,d),O=n!==y;return(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[(0,$.jsx)(`div`,{className:`space-y-1`,children:(0,$.jsx)(`h2`,{className:`typography-ui-header font-semibold text-foreground`,children:e(`settings.behavior.page.title`)})}),(0,$.jsx)(Z,{itemId:`behavior.system-prompt`,label:(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(`span`,{children:e(`settings.behavior.page.section.systemPrompt`)}),(0,$.jsxs)(gn,{children:[(0,$.jsx)(mn,{asChild:!0,children:(0,$.jsx)(Y,{name:`information`,className:`h-3.5 w-3.5 text-muted-foreground/60 cursor-help`})}),(0,$.jsx)(hn,{sideOffset:8,className:`max-w-xs`,children:(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`font-medium text-foreground`,children:e(`settings.behavior.page.warning.title`)}),(0,$.jsx)(`p`,{children:e(`settings.behavior.page.warning.description`,{path:Wo})})]})})]})]}),children:(0,$.jsxs)(`div`,{className:`oc-settings-group-row flex flex-col gap-3`,children:[(0,$.jsx)(wr,{embedded:!0,value:n,onChange:e=>a(e.target.value),placeholder:e(`settings.behavior.page.field.systemPromptPlaceholder`),rows:12,disabled:!p,outerClassName:`min-h-[160px] max-h-[70vh]`,className:`w-full font-mono typography-meta bg-transparent`}),(0,$.jsx)(q,{onClick:async()=>{let r=t;if(r===i()){v(!0);try{let t=Ko(n),o=await l(`/api/behavior/agents-md`,{method:`PUT`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({content:t})});if(!o.ok)throw Error(await Go(o,e(`settings.behavior.page.toast.saveFailed`)));if(r!==i()||(await Zo({globalBehaviorPrompt:t},e(`settings.behavior.page.toast.saveFailed`)),r!==i()))return;a(t),b(t),J.success(e(`settings.behavior.page.toast.saved`))}catch(t){if(r!==i())return;console.error(`Failed to save behavior:`,t);let n=t instanceof Error?t.message:e(`settings.behavior.page.toast.saveFailed`);J.error(n)}finally{r===i()&&v(!1)}}},disabled:_||!O||!p,size:`xs`,className:`!font-normal`,children:e(_?`settings.common.actions.saving`:`settings.common.actions.saveChanges`)})]})}),(0,$.jsxs)(Z,{itemId:`behavior.response-style`,label:(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(`span`,{children:e(`settings.behavior.page.section.responseStyle`)}),(0,$.jsxs)(gn,{children:[(0,$.jsx)(mn,{asChild:!0,children:(0,$.jsx)(Y,{name:`information`,className:`h-3.5 w-3.5 text-muted-foreground/60 cursor-help`})}),(0,$.jsx)(hn,{sideOffset:8,className:`max-w-xs`,children:e(`settings.behavior.page.responseStyle.tooltip`)})]})]}),children:[(0,$.jsxs)(Pr,{label:e(`settings.behavior.page.responseStyle.enable`),children:[(0,$.jsx)(cn,{checked:o,onChange:s,disabled:!h,ariaLabel:e(`settings.behavior.page.responseStyle.enableAria`)}),(0,$.jsxs)(un,{value:c,onValueChange:e=>u(e),disabled:!h||!o,children:[(0,$.jsx)(an,{className:`w-full sm:w-56`,children:(0,$.jsx)(fn,{children:t=>t===`custom`?e(`settings.behavior.page.responseStyle.option.custom`):Ut(t)?e(Xo[t]):null})}),(0,$.jsxs)(on,{children:[Tt.map(t=>(0,$.jsx)(nn,{value:t,children:e(Xo[t])},t)),(0,$.jsx)(nn,{value:`custom`,children:e(`settings.behavior.page.responseStyle.option.custom`)})]})]})]}),(0,$.jsx)(`div`,{className:`oc-settings-group-row`,children:(0,$.jsx)(wr,{embedded:!0,value:E,onChange:e=>f(e.target.value),placeholder:e(`settings.behavior.page.responseStyle.customPlaceholder`),rows:5,disabled:!h||!o||c!==`custom`,outerClassName:`min-h-[120px]`,className:`w-full font-mono typography-meta bg-transparent`})})]})]})})},$o=e=>{let t=(0,Ii.c)(158),{onItemSelect:n}=e,{t:r}=Ne(),[i,a]=Q.useState(null),[o,s]=Q.useState(``),[c,l]=Q.useState(null),[u,d]=Q.useState(null),[f,p]=Q.useState(!1),[m,h]=Q.useState(null),{selectedCommandName:g,setSelectedCommand:_,setCommandDraft:v,createCommand:y,deleteCommand:b}=ra(ue(ts)),x=Dt(),S;t[0]===x.data?S=t[1]:(S=x.data??[],t[0]=x.data,t[1]=S);let C=S,w=dt(),T;t[2]===w.data?T=t[3]:(T=w.data??[],t[2]=w.data,t[3]=T);let E=T,{refetch:D}=w,O,k;t[4]===D?(O=t[5],k=t[6]):(O=()=>{D()},k=[D],t[4]=D,t[5]=O,t[6]=k),Q.useEffect(O,k);let A;t[7]===E?A=t[8]:(A=new Set(E.map(ns)),t[7]=E,t[8]=A);let j=A,M;if(t[9]!==C||t[10]!==j){let e;t[12]===j?e=t[13]:(e=e=>!j.has(e.name),t[12]=j,t[13]=e),M=C.filter(e),t[9]=C,t[10]=j,t[11]=M}else M=t[11];let N=M,P,F;t[14]!==g||t[15]!==_||t[16]!==j?(P=()=>{g&&j.has(g)&&_(null)},F=[g,_,j],t[14]=g,t[15]=_,t[16]=j,t[17]=P,t[18]=F):(P=t[17],F=t[18]),Q.useEffect(P,F);let I;t[19]!==C||t[20]!==n||t[21]!==v||t[22]!==_?(I=()=>{let e=`new-command`,t=1;for(;C.some(t=>t.name===e);)e=`new-command-${t}`,t++;v({name:e,scope:`user`}),_(e),n?.()},t[19]=C,t[20]=n,t[21]=v,t[22]=_,t[23]=I):I=t[23];let L=I,R;t[24]===r?R=t[25]:(R=async e=>{if(ta(e)){J.error(r(`settings.commands.sidebar.toast.builtInCannotDelete`));return}l(e),d(`delete`)},t[24]=r,t[25]=R);let z=R,B;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(B=async e=>{ta(e)&&(l(e),d(`reset`))},t[26]=B):B=t[26];let V=B,H;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(H=()=>{l(null),d(null)},t[27]=H):H=t[27];let ee=H,U;t[28]!==c||t[29]!==u||t[30]!==b||t[31]!==r?(U=async()=>{!c||!u||(p(!0),await b(c.name)?(u===`delete`?J.success(r(`settings.commands.sidebar.toast.commandDeleted`,{name:c.name})):J.success(r(`settings.commands.sidebar.toast.commandReset`,{name:c.name})),ee()):u===`delete`?J.error(r(`settings.commands.sidebar.toast.deleteFailed`)):J.error(r(`settings.commands.sidebar.toast.resetFailed`)),p(!1))},t[28]=c,t[29]=u,t[30]=b,t[31]=r,t[32]=U):U=t[32];let te=U,W;t[33]!==C||t[34]!==v||t[35]!==_?(W=e=>{let t=e.name,n=1,r=`${t}-copy`;for(;C.some(e=>e.name===r);)n++,r=`${t}-copy-${n}`;v({name:r,scope:e.scope||`user`,description:e.description,template:e.template,agent:e.agent,model:e.model}),_(r)},t[33]=C,t[34]=v,t[35]=_,t[36]=W):W=t[36];let ne=W,re;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(re=e=>{s(e.name),a(e)},t[37]=re):re=t[37];let ie=re,ae;t[38]!==C||t[39]!==y||t[40]!==b||t[41]!==i||t[42]!==o||t[43]!==_||t[44]!==r?(ae=async()=>{if(!i)return;let e=o.trim().replace(/\s+/g,`-`);if(!e){J.error(r(`settings.commands.sidebar.toast.commandNameRequired`));return}if(e===i.name){a(null);return}if(C.some(t=>t.name===e)){J.error(r(`settings.commands.sidebar.toast.commandExists`));return}await y({name:e,description:i.description,template:i.template,agent:i.agent,model:i.model})?await b(i.name)?(J.success(`Command renamed to "${e}"`),_(e)):J.error(r(`settings.commands.sidebar.toast.removeOldAfterRenameFailed`)):J.error(r(`settings.commands.sidebar.toast.renameFailed`)),a(null)},t[38]=C,t[39]=y,t[40]=b,t[41]=i,t[42]=o,t[43]=_,t[44]=r,t[45]=ae):ae=t[45];let oe=ae,se,ce,le;if(t[46]!==N||t[47]!==L||t[48]!==z||t[49]!==ne||t[50]!==n||t[51]!==m||t[52]!==g||t[53]!==_||t[54]!==r){let e=N.filter(ta),i=N.filter(rs),a;t[58]===r?a=t[59]:(a=r(`settings.commands.sidebar.section.custom`),t[58]=r,t[59]=a);let o;t[60]===a?o=t[61]:(o=(0,$.jsx)(`span`,{children:a}),t[60]=a,t[61]=o);let s;t[62]===r?s=t[63]:(s=r(`settings.commands.page.title.new`),t[62]=r,t[63]=s);let c;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(Y,{name:`add`,className:`h-4 w-4`}),t[64]=c):c=t[64];let l;t[65]!==L||t[66]!==s?(l=(0,$.jsx)(q,{"data-settings-item":`commands.create`,size:`icon`,variant:`ghost`,onClick:L,"aria-label":s,children:c}),t[65]=L,t[66]=s,t[67]=l):l=t[67];let u;t[68]!==o||t[69]!==l?(u=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[o,l]}),t[68]=o,t[69]=l,t[70]=u):u=t[70];let d=u;se=`oc-settings-page-content h-full overflow-y-auto bg-background p-3`,t[71]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,$.jsx)(Z,{children:(0,$.jsx)(`div`,{className:`oc-settings-group-row`,children:(0,$.jsx)(ja,{})})}),t[71]=ce):ce=t[71],le=(0,$.jsx)($.Fragment,{children:N.length===0?(0,$.jsx)(Z,{label:d,children:(0,$.jsxs)(`div`,{className:`oc-settings-group-row py-12 text-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`terminal-box`,className:`mx-auto mb-3 h-10 w-10 opacity-50`}),(0,$.jsx)(`p`,{className:`typography-ui-label font-medium`,children:r(`settings.commands.sidebar.empty.title`)}),(0,$.jsx)(`p`,{className:`typography-meta mt-1 opacity-75`,children:r(`settings.commands.sidebar.empty.description`)})]})}):(0,$.jsxs)($.Fragment,{children:[e.length>0&&(0,$.jsx)(Z,{label:r(`settings.commands.sidebar.section.builtIn`),children:[...e].sort(is).map(e=>(0,$.jsx)(es,{command:e,isSelected:g===e.name,onSelect:()=>{_(e.name),n?.()},onReset:()=>V(e),onDuplicate:()=>ne(e),isMenuOpen:m===e.name,onMenuOpenChange:t=>h(t?e.name:null)},e.name))}),i.length>0?(0,$.jsx)(Z,{label:d,children:[...i].sort(as).map(e=>(0,$.jsx)(es,{command:e,isSelected:g===e.name,onSelect:()=>{_(e.name),n?.()},onRename:()=>ie(e),onDelete:()=>z(e),onDuplicate:()=>ne(e),isMenuOpen:m===e.name,onMenuOpenChange:t=>h(t?e.name:null)},e.name))}):(0,$.jsx)(Z,{label:d,cardClassName:`hidden`,children:(0,$.jsx)(`span`,{})})]})}),t[46]=N,t[47]=L,t[48]=z,t[49]=ne,t[50]=n,t[51]=m,t[52]=g,t[53]=_,t[54]=r,t[55]=se,t[56]=ce,t[57]=le}else se=t[55],ce=t[56],le=t[57];let de=c!==null&&u!==null,fe;t[72]===f?fe=t[73]:(fe=e=>{!e&&!f&&ee()},t[72]=f,t[73]=fe);let pe;t[74]!==u||t[75]!==r?(pe=r(u===`delete`?`settings.commands.sidebar.dialog.deleteTitle`:`settings.commands.sidebar.dialog.resetTitle`),t[74]=u,t[75]=r,t[76]=pe):pe=t[76];let me;t[77]===pe?me=t[78]:(me=(0,$.jsx)(Zt,{children:pe}),t[77]=pe,t[78]=me);let he;t[79]!==c?.name||t[80]!==u||t[81]!==r?(he=r(u===`delete`?`settings.commands.sidebar.dialog.deleteDescription`:`settings.commands.sidebar.dialog.resetDescription`,{name:c?.name??``}),t[79]=c?.name,t[80]=u,t[81]=r,t[82]=he):he=t[82];let ge;t[83]===he?ge=t[84]:(ge=(0,$.jsx)(Qt,{children:he}),t[83]=he,t[84]=ge);let _e;t[85]!==me||t[86]!==ge?(_e=(0,$.jsxs)(Jt,{children:[me,ge]}),t[85]=me,t[86]=ge,t[87]=_e):_e=t[87];let ve;t[88]===r?ve=t[89]:(ve=r(`settings.common.actions.cancel`),t[88]=r,t[89]=ve);let ye;t[90]!==f||t[91]!==ve?(ye=(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:ee,disabled:f,children:ve}),t[90]=f,t[91]=ve,t[92]=ye):ye=t[92];let G;t[93]!==u||t[94]!==r?(G=r(u===`delete`?`settings.common.actions.delete`:`settings.common.actions.reset`),t[93]=u,t[94]=r,t[95]=G):G=t[95];let be;t[96]!==te||t[97]!==f||t[98]!==G?(be=(0,$.jsx)(q,{size:`sm`,onClick:te,disabled:f,children:G}),t[96]=te,t[97]=f,t[98]=G,t[99]=be):be=t[99];let xe;t[100]!==ye||t[101]!==be?(xe=(0,$.jsxs)(Yt,{children:[ye,be]}),t[100]=ye,t[101]=be,t[102]=xe):xe=t[102];let Se;t[103]!==_e||t[104]!==xe?(Se=(0,$.jsxs)(Xt,{className:`max-w-md`,children:[_e,xe]}),t[103]=_e,t[104]=xe,t[105]=Se):Se=t[105];let Ce;t[106]!==de||t[107]!==fe||t[108]!==Se?(Ce=(0,$.jsx)($t,{open:de,onOpenChange:fe,children:Se}),t[106]=de,t[107]=fe,t[108]=Se,t[109]=Ce):Ce=t[109];let we=i!==null,Te;t[110]===Symbol.for(`react.memo_cache_sentinel`)?(Te=e=>!e&&a(null),t[110]=Te):Te=t[110];let Ee;t[111]===r?Ee=t[112]:(Ee=r(`settings.commands.sidebar.renameDialog.title`),t[111]=r,t[112]=Ee);let De;t[113]===Ee?De=t[114]:(De=(0,$.jsx)(Zt,{children:Ee}),t[113]=Ee,t[114]=De);let Oe=i?.name??``,ke;t[115]!==r||t[116]!==Oe?(ke=r(`settings.commands.sidebar.renameDialog.description`,{name:Oe}),t[115]=r,t[116]=Oe,t[117]=ke):ke=t[117];let Ae;t[118]===ke?Ae=t[119]:(Ae=(0,$.jsx)(Qt,{children:ke}),t[118]=ke,t[119]=Ae);let je;t[120]!==De||t[121]!==Ae?(je=(0,$.jsxs)(Jt,{children:[De,Ae]}),t[120]=De,t[121]=Ae,t[122]=je):je=t[122];let Me;t[123]===Symbol.for(`react.memo_cache_sentinel`)?(Me=e=>s(e.target.value),t[123]=Me):Me=t[123];let Pe;t[124]===r?Pe=t[125]:(Pe=r(`settings.commands.sidebar.renameDialog.placeholder`),t[124]=r,t[125]=Pe);let Fe;t[126]===oe?Fe=t[127]:(Fe=e=>{e.key===`Enter`&&oe()},t[126]=oe,t[127]=Fe);let K;t[128]!==o||t[129]!==Pe||t[130]!==Fe?(K=(0,$.jsx)(pn,{value:o,onChange:Me,placeholder:Pe,className:`text-foreground placeholder:text-muted-foreground`,onKeyDown:Fe}),t[128]=o,t[129]=Pe,t[130]=Fe,t[131]=K):K=t[131];let Ie;t[132]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=()=>a(null),t[132]=Ie):Ie=t[132];let Le;t[133]===r?Le=t[134]:(Le=r(`settings.common.actions.cancel`),t[133]=r,t[134]=Le);let Re;t[135]===Le?Re=t[136]:(Re=(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:Ie,children:Le}),t[135]=Le,t[136]=Re);let ze;t[137]===r?ze=t[138]:(ze=r(`settings.common.actions.rename`),t[137]=r,t[138]=ze);let Be;t[139]!==oe||t[140]!==ze?(Be=(0,$.jsx)(q,{size:`sm`,onClick:oe,children:ze}),t[139]=oe,t[140]=ze,t[141]=Be):Be=t[141];let Ve;t[142]!==Re||t[143]!==Be?(Ve=(0,$.jsxs)(Yt,{children:[Re,Be]}),t[142]=Re,t[143]=Be,t[144]=Ve):Ve=t[144];let He;t[145]!==je||t[146]!==K||t[147]!==Ve?(He=(0,$.jsxs)(Xt,{children:[je,K,Ve]}),t[145]=je,t[146]=K,t[147]=Ve,t[148]=He):He=t[148];let Ue;t[149]!==we||t[150]!==He?(Ue=(0,$.jsx)($t,{open:we,onOpenChange:Te,children:He}),t[149]=we,t[150]=He,t[151]=Ue):Ue=t[151];let We;return t[152]!==se||t[153]!==ce||t[154]!==le||t[155]!==Ce||t[156]!==Ue?(We=(0,$.jsxs)(`div`,{className:se,children:[ce,le,Ce,Ue]}),t[152]=se,t[153]=ce,t[154]=le,t[155]=Ce,t[156]=Ue,t[157]=We):We=t[157],We},es=e=>{let t=(0,Ii.c)(47),{command:n,isSelected:r,onSelect:i,onDelete:a,onReset:o,onRename:s,onDuplicate:c,isMenuOpen:l,onMenuOpenChange:u}=e,{t:d}=Ne(),f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(f=xr(),t[0]=f):f=t[0];let p=f,[m,h]=Q.useState(!1),g;t[1]!==a||t[2]!==c||t[3]!==s||t[4]!==o||t[5]!==d?(g=e=>(0,$.jsxs)($.Fragment,{children:[s&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),s()},children:[(0,$.jsx)(Y,{name:`edit`,className:`h-4 w-4 mr-px`}),d(`settings.common.actions.rename`)]}),(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),c()},children:[(0,$.jsx)(Y,{name:`file-copy`,className:`h-4 w-4 mr-px`}),d(`settings.common.actions.duplicate`)]}),o&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),o()},children:[(0,$.jsx)(Y,{name:`restart`,className:`h-4 w-4 mr-px`}),d(`settings.common.actions.reset`)]}),a&&(0,$.jsxs)(e,{onClick:e=>{e.stopPropagation(),a()},className:`text-destructive focus:text-destructive`,children:[(0,$.jsx)(Y,{name:`delete-bin`,className:`h-4 w-4 mr-px`}),d(`settings.common.actions.delete`)]})]}),t[1]=a,t[2]=c,t[3]=s,t[4]=o,t[5]=d,t[6]=g):g=t[6];let _=g,v=r?`bg-interactive-selection`:`hover:bg-interactive-hover`,y;t[7]===v?y=t[8]:(y=K(`oc-settings-group-row group relative flex items-center transition-colors duration-150 select-none`,v),t[7]=v,t[8]=y);let b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=p?void 0:e=>{e.preventDefault(),h(!0)},t[9]=b):b=t[9];let x;t[10]===y?x=t[11]:(x=(0,$.jsx)(`div`,{className:y,onContextMenu:b}),t[10]=y,t[11]=x);let S;t[12]===n.name?S=t[13]:(S=(0,$.jsxs)(`span`,{className:`typography-ui-label font-normal truncate text-foreground`,children:[`/`,n.name]}),t[12]=n.name,t[13]=S);let C;t[14]!==n||t[15]!==d?(C=(n.scope||ta(n))&&(0,$.jsx)(`span`,{className:`typography-micro text-muted-foreground bg-muted px-1 rounded flex-shrink-0 leading-none pb-px border border-border/50`,children:ta(n)?d(`settings.agents.sidebar.badge.system`):n.scope}),t[14]=n,t[15]=d,t[16]=C):C=t[16];let w;t[17]!==S||t[18]!==C?(w=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[S,C]}),t[17]=S,t[18]=C,t[19]=w):w=t[19];let T;t[20]===n.description?T=t[21]:(T=n.description&&(0,$.jsx)(`div`,{className:`typography-micro text-muted-foreground/60 truncate leading-tight`,children:n.description}),t[20]=n.description,t[21]=T);let E;t[22]!==i||t[23]!==T||t[24]!==w?(E=(0,$.jsxs)(`button`,{onClick:i,className:`flex min-w-0 flex-1 flex-col gap-0 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,tabIndex:0,children:[w,T]}),t[22]=i,t[23]=T,t[24]=w,t[25]=E):E=t[25];let D;t[26]===u?D=t[27]:(D=e=>{e&&h(!1),u(e)},t[26]=u,t[27]=D);let O;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsx)(q,{size:`sm`,variant:`ghost`,className:`h-6 w-6 px-0 flex-shrink-0 -mr-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(Y,{name:`more-2`,className:`h-3.5 w-3.5`})})}),t[28]=O):O=t[28];let k;t[29]===_?k=t[30]:(k=(0,$.jsx)($n,{align:`end`,className:`w-fit min-w-20`,children:_(Gn)}),t[29]=_,t[30]=k);let A;t[31]!==l||t[32]!==D||t[33]!==k?(A=(0,$.jsxs)(lr,{open:l,onOpenChange:D,children:[O,k]}),t[31]=l,t[32]=D,t[33]=k,t[34]=A):A=t[34];let j;t[35]!==E||t[36]!==A?(j=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:[E,A]}),t[35]=E,t[36]=A,t[37]=j):j=t[37];let M;t[38]!==j||t[39]!==x?(M=(0,$.jsx)(Ei,{render:x,children:j}),t[38]=j,t[39]=x,t[40]=M):M=t[40];let N;t[41]===_?N=t[42]:(N=(0,$.jsx)(Di,{className:`w-fit min-w-20`,children:_(Oi)}),t[41]=_,t[42]=N);let P;return t[43]!==m||t[44]!==M||t[45]!==N?(P=(0,$.jsxs)(ki,{open:m,onOpenChange:h,children:[M,N]}),t[43]=m,t[44]=M,t[45]=N,t[46]=P):P=t[46],P};function ts(e){return{selectedCommandName:e.selectedCommandName,setSelectedCommand:e.setSelectedCommand,setCommandDraft:e.setCommandDraft,createCommand:e.createCommand,deleteCommand:e.deleteCommand}}function ns(e){return e.name}function rs(e){return!ta(e)}function is(e,t){return e.name.localeCompare(t.name)}function as(e,t){return e.name.localeCompare(t.name)}var os=()=>{let{t:e}=Ne(),{selectedCommandName:t,createCommand:n,updateCommand:r,commandDraft:i,setCommandDraft:a}=ra(ue(e=>({selectedCommandName:e.selectedCommandName,createCommand:e.createCommand,updateCommand:e.updateCommand,commandDraft:e.commandDraft,setCommandDraft:e.setCommandDraft}))),o=Dt(),s=Q.useMemo(()=>o.data??[],[o.data]),c=t?s.find(e=>e.name===t):null,l=!!(i&&i.name===t&&!c),[u,d]=Q.useState(``),[f,p]=Q.useState(`user`),[m,h]=Q.useState(``),[g,_]=Q.useState(``),[v,y]=Q.useState(``),[b,x]=Q.useState(``),[S,C]=Q.useState(!1),w=Q.useRef(null);Q.useEffect(()=>{if(l&&i){let e=i.name||``,t=i.scope||`user`,n=i.description||``,r=i.agent||``,a=i.model||``,o=i.template||``;d(e),p(t),h(n),_(r),y(a),x(o),w.current={draftName:e,draftScope:t,description:n,agent:r,model:a,template:o}}else if(c){let e=c.description||``,t=c.agent||``,n=c.model||``,r=c.template||``;h(e),_(t),y(n),x(r),w.current={draftName:``,draftScope:`user`,description:e,agent:t,model:n,template:r}}},[c,l,t,s,i]);let T=Q.useMemo(()=>{let e=w.current;return e?!!(l&&(u!==e.draftName||f!==e.draftScope)||m!==e.description||g!==e.agent||v!==e.model||b!==e.template):!1},[g,m,u,f,l,v,b]);return t?(0,$.jsx)(Cr,{outerClassName:`h-full`,className:`w-full`,children:(0,$.jsxs)(`div`,{className:`oc-settings-page-content mx-auto w-full max-w-3xl p-3 sm:p-6 sm:pt-8`,children:[(0,$.jsx)(`div`,{className:`mb-4 flex items-center justify-between gap-4`,children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`typography-ui-header font-semibold text-foreground truncate`,children:l?e(`settings.commands.page.title.new`):`/${t}`}),(0,$.jsx)(`p`,{className:`typography-meta text-muted-foreground truncate`,children:e(l?`settings.commands.page.subtitle.new`:`settings.commands.page.subtitle.edit`)})]})}),(0,$.jsxs)(Z,{label:e(`settings.commands.page.section.identity`),children:[l&&(0,$.jsxs)(Pr,{itemId:`commands.name`,label:e(`settings.commands.page.field.commandName`),children:[(0,$.jsxs)(`div`,{className:`flex items-center`,children:[(0,$.jsx)(`span`,{className:`typography-ui-label text-muted-foreground mr-1`,children:`/`}),(0,$.jsx)(pn,{value:u,onChange:e=>d(e.target.value),placeholder:e(`settings.commands.page.field.commandNamePlaceholder`),className:`h-7 w-40 px-2`})]}),(0,$.jsxs)(un,{value:f,onValueChange:e=>p(e),children:[(0,$.jsx)(an,{className:`w-fit min-w-[100px]`,children:(0,$.jsx)(fn,{placeholder:e(`settings.agents.page.field.scopePlaceholder`)})}),(0,$.jsxs)(on,{align:`end`,children:[(0,$.jsx)(nn,{value:`user`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:`user-3`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(`settings.common.scope.global`)})]})}),(0,$.jsx)(nn,{value:`project`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Y,{name:`folder`,className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{children:e(`settings.common.scope.project`)})]})})]})]})]}),(0,$.jsx)(Pr,{label:e(`settings.common.field.description`),className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,value:m,onChange:e=>h(e.target.value),placeholder:e(`settings.commands.page.field.descriptionPlaceholder`),rows:2,className:`w-full resize-none min-h-[60px] bg-transparent`})})]}),(0,$.jsxs)(Z,{label:e(`settings.commands.page.section.executionContext`),children:[(0,$.jsx)(Pr,{itemId:`commands.agent`,label:e(`settings.commands.page.field.overrideAgent`),children:(0,$.jsx)(pr,{agentName:g,onChange:e=>_(e),className:`oc-settings-inline-value`})}),(0,$.jsx)(Pr,{itemId:`commands.model`,label:e(`settings.agents.page.field.overrideModel`),children:(0,$.jsx)(En,{providerId:bt(v)?.providerId??``,modelId:bt(v)?.modelId??``,onChange:(e,t)=>{y(e&&t?`${e}/${t}`:``)},className:`oc-settings-inline-value`})})]}),(0,$.jsx)(Yr,{itemId:`commands.template`,label:e(`settings.commands.page.section.template`),description:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`code`,{className:`text-foreground`,children:`$ARGUMENTS`}),` `,e(`settings.commands.page.templateHint.userInput`),` ·`,` `,(0,$.jsx)(`code`,{className:`text-foreground`,children:"!`cmd`"}),` `,e(`settings.commands.page.templateHint.shellOutput`),` ·`,` `,(0,$.jsx)(`code`,{className:`text-foreground`,children:`@file`}),` `,e(`settings.commands.page.templateHint.fileContents`)]}),descriptionPlacement:`outside`,className:`oc-settings-split-row-stacked`,children:(0,$.jsx)(wr,{embedded:!0,value:b,onChange:e=>x(e.target.value),placeholder:e(`settings.commands.page.field.templatePlaceholder`),rows:12,className:`w-full font-mono typography-meta min-h-[160px] max-h-[60vh] bg-transparent resize-y`})}),(0,$.jsx)(`div`,{className:`px-2 py-1`,children:(0,$.jsx)(q,{onClick:async()=>{let i=l?u.trim().replace(/\s+/g,`-`):t?.trim();if(!i){J.error(e(`settings.commands.sidebar.toast.commandNameRequired`));return}if(!b.trim()){J.error(e(`settings.commands.page.toast.templateRequired`));return}if(l&&s.some(e=>e.name===i)){J.error(e(`settings.commands.sidebar.toast.commandExists`));return}C(!0);try{let t=g.trim(),o=v.trim(),s=b.trim(),c={name:i,description:m.trim()||void 0,agent:t===``?null:t,model:o===``?null:o,template:s,scope:l?f:void 0},u;l?(u=await n(c),u&&a(null)):u=await r(i,c),u?J.success(e(l?`settings.commands.page.toast.created`:`settings.commands.page.toast.updated`)):J.error(e(l?`settings.commands.page.toast.createFailed`:`settings.commands.page.toast.updateFailed`))}catch(t){console.error(`Error saving command:`,t),J.error(e(`settings.commands.page.toast.saveUnexpectedError`))}finally{C(!1)}},disabled:S||!T,size:`xs`,className:`!font-normal`,children:e(S?`settings.common.actions.saving`:`settings.common.actions.saveChanges`)})})]})}):(0,$.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,$.jsxs)(`div`,{className:`text-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`terminal-box`,className:`mx-auto mb-3 h-12 w-12 opacity-50`}),(0,$.jsx)(`p`,{className:`typography-body`,children:e(`settings.commands.page.empty.title`)}),(0,$.jsx)(`p`,{className:`typography-meta mt-1 opacity-75`,children:e(`settings.commands.page.empty.description`)})]})})},ss=[],cs=e=>{switch(e){case`connected`:return`success`;case`failed`:return`error`;case`needs_auth`:case`needs_client_registration`:return`warning`;default:return`idle`}},ls=e=>{let t=(0,Ii.c)(5),{tone:n,enabled:r}=e;if(!r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full bg-muted-foreground/30 flex-shrink-0`}),t[0]=e):e=t[0],e}let i;t[1]===n?i=t[2]:(i=K(`inline-block h-2 w-2 rounded-full flex-shrink-0`,{success:`bg-[var(--status-success)]`,error:`bg-[var(--status-error)]`,warning:`bg-[var(--status-warning)]`,idle:`bg-muted-foreground/40`}[n]),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,$.jsx)(`span`,{className:i}),t[3]=i,t[4]=a),a},us=e=>{let t=(0,Ii.c)(115),{onItemSelect:n}=e,{t:r}=Ne(),{selectedMcpName:a,setSelectedMcp:o,setMcpDraft:s,deleteMcp:c}=la(ue(ds)),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=Ti(),t[0]=l):l=t[0];let u=l,d=bi(u),f=Si(u),p=d.data??ss,m;t[1]===f.data?m=t[2]:(m=f.data??{},t[1]=f.data,t[2]=m);let h=m,[g,_]=Q.useState(null),[v,y]=Q.useState(!1),[b,x]=Q.useState(null),[S,C]=Q.useState(null),[w,T]=Q.useState(!1),E;t[3]===p?E=t[4]:(E=p.filter(fs),t[3]=p,t[4]=E);let D=E,O;t[5]===p?O=t[6]:(O=p.filter(ps),t[5]=p,t[6]=O);let k=O,A;t[7]===w?A=t[8]:(A=()=>{if(w)return;T(!0);let e=new Promise(ms),t=i();Promise.all([Ci(L,u,t),e]).catch(hs).finally(()=>{T(!1)})},t[7]=w,t[8]=A);let j=A,M;t[9]!==p||t[10]!==n||t[11]!==s||t[12]!==o?(M=()=>{let e=`new-mcp-server`,t=1;for(;p.some(t=>t.name===e);)e=`new-mcp-server-${t}`,t++;s({name:e,scope:`user`,type:`local`,command:[],url:``,environment:[],headers:[],oauthEnabled:!0,oauthClientId:``,oauthClientSecret:``,oauthScope:``,oauthRedirectUri:``,timeout:``,enabled:!0}),o(e),n?.()},t[9]=p,t[10]=n,t[11]=s,t[12]=o,t[13]=M):M=t[13];let N=M,P;t[14]!==c||t[15]!==g||t[16]!==r?(P=async()=>{if(!g)return;y(!0);let e=await c(g.name,{directory:Ti(),transportIdentity:i()});e.ok?e.reloadFailed?J.warning(e.message||`MCP server "${g.name}" deleted, but OpenCode reload failed`,{description:e.warning||r(`settings.mcp.sidebar.toast.refreshListIfStale`)}):J.success(e.message||r(`settings.mcp.sidebar.toast.serverDeleted`,{name:g.name})):J.error(r(`settings.mcp.sidebar.toast.deleteFailed`)),_(null),y(!1)},t[14]=c,t[15]=g,t[16]=r,t[17]=P):P=t[17];let F=P,I;t[18]===r?I=t[19]:(I=(e,t)=>(0,$.jsxs)(t,{onClick:t=>{t.stopPropagation(),_(e)},className:`text-destructive focus:text-destructive`,children:[(0,$.jsx)(Y,{name:`delete-bin`,className:`h-4 w-4 mr-px`}),r(`settings.common.actions.delete`)]}),t[18]=r,t[19]=I);let R=I,z;t[20]===r?z=t[21]:(z=r(`settings.mcp.sidebar.group.userServers`),t[20]=r,t[21]=z);let B;t[22]===z?B=t[23]:(B=(0,$.jsx)(`span`,{children:z}),t[22]=z,t[23]=B);let V;t[24]===r?V=t[25]:(V=r(`settings.mcp.sidebar.actions.refreshStatusAria`),t[24]=r,t[25]=V);let H;t[26]===r?H=t[27]:(H=r(`settings.mcp.sidebar.actions.refreshStatusTitle`),t[26]=r,t[27]=H);let ee=w&&`animate-spin`,U;t[28]===ee?U=t[29]:(U=K(`h-4 w-4`,ee),t[28]=ee,t[29]=U);let te;t[30]===U?te=t[31]:(te=(0,$.jsx)(Y,{name:`refresh`,className:U}),t[30]=U,t[31]=te);let W;t[32]!==j||t[33]!==w||t[34]!==V||t[35]!==H||t[36]!==te?(W=(0,$.jsx)(q,{type:`button`,size:`icon`,variant:`ghost`,disabled:w,onClick:j,"aria-label":V,title:H,children:te}),t[32]=j,t[33]=w,t[34]=V,t[35]=H,t[36]=te,t[37]=W):W=t[37];let ne;t[38]===r?ne=t[39]:(ne=r(`settings.mcp.sidebar.actions.addServerTitle`),t[38]=r,t[39]=ne);let re;t[40]===r?re=t[41]:(re=r(`settings.mcp.sidebar.actions.addServerTitle`),t[40]=r,t[41]=re);let ie;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,$.jsx)(Y,{name:`add`,className:`h-4 w-4`}),t[42]=ie):ie=t[42];let ae;t[43]!==N||t[44]!==ne||t[45]!==re?(ae=(0,$.jsx)(q,{"data-settings-item":`mcp.create`,size:`icon`,variant:`ghost`,onClick:N,"aria-label":ne,title:re,children:ie}),t[43]=N,t[44]=ne,t[45]=re,t[46]=ae):ae=t[46];let oe;t[47]!==W||t[48]!==ae?(oe=(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[W,ae]}),t[47]=W,t[48]=ae,t[49]=oe):oe=t[49];let se;t[50]!==B||t[51]!==oe?(se=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[B,oe]}),t[50]=B,t[51]=oe,t[52]=se):se=t[52];let ce=se,le;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,$.jsx)(Z,{children:(0,$.jsx)(`div`,{className:`oc-settings-group-row`,children:(0,$.jsx)(ja,{})})}),t[53]=le):le=t[53];let de;t[54]!==d.data||t[55]!==d.error||t[56]!==d.isError||t[57]!==p.length||t[58]!==h||t[59]!==n||t[60]!==b||t[61]!==D||t[62]!==R||t[63]!==S||t[64]!==a||t[65]!==s||t[66]!==o||t[67]!==f.data||t[68]!==f.error||t[69]!==f.isError||t[70]!==r||t[71]!==k||t[72]!==ce?(de=(0,$.jsx)($.Fragment,{children:d.isError&&!d.data?(0,$.jsx)(Z,{label:ce,children:(0,$.jsx)(`div`,{className:`oc-settings-group-row py-12 text-center typography-meta text-[var(--status-error)]`,children:d.error.message})}):p.length===0?(0,$.jsx)(Z,{label:ce,children:(0,$.jsxs)(`div`,{className:`oc-settings-group-row py-12 text-center text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`plug`,className:`mx-auto mb-3 h-10 w-10 opacity-50`}),(0,$.jsx)(`p`,{className:`typography-ui-label font-medium`,children:r(`settings.mcp.sidebar.empty.title`)}),(0,$.jsx)(`p`,{className:`typography-meta mt-1 opacity-75`,children:r(`settings.mcp.sidebar.empty.description`)})]})}):(0,$.jsxs)($.Fragment,{children:[D.length>0&&(0,$.jsx)(Z,{label:r(`settings.mcp.sidebar.group.projectServers`),children:D.map(e=>{let t=cs((h[e.name]??(f.isError&&!f.data?{status:`failed`,error:f.error.message}:void 0))?.status),i=a===e.name,c=xr();return(0,$.jsxs)(ki,{open:S===e.name,onOpenChange:t=>C(t?e.name:null),children:[(0,$.jsxs)(Ei,{render:(0,$.jsx)(`div`,{className:K(`oc-settings-group-row group relative flex items-center transition-colors duration-150 select-none`,i?`bg-interactive-selection`:`hover:bg-interactive-hover`),onContextMenu:c?void 0:t=>{t.preventDefault(),C(e.name)}}),children:[(0,$.jsxs)(`button`,{onClick:()=>{o(e.name),s(null),n?.()},className:`flex min-w-0 flex-1 flex-col gap-0 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(ls,{tone:t,enabled:e.enabled}),(0,$.jsx)(`span`,{className:`typography-ui-label font-normal truncate text-foreground`,children:e.name}),(0,$.jsx)(`span`,{title:e.type===`local`?r(`settings.mcp.sidebar.serverType.localTitle`):r(`settings.mcp.sidebar.serverType.remoteTitle`),children:e.type===`local`?(0,$.jsx)(Y,{name:`server`,className:`h-3 w-3 text-muted-foreground/60 flex-shrink-0`}):(0,$.jsx)(Y,{name:`global`,className:`h-3 w-3 text-muted-foreground/60 flex-shrink-0`})})]}),(0,$.jsx)(`div`,{className:`typography-micro text-muted-foreground/60 truncate leading-tight pl-4`,children:e.type===`local`?e.command?.join(` `)??``:e.url??``})]}),(0,$.jsxs)(lr,{open:b===e.name,onOpenChange:t=>{t&&C(null),x(t?e.name:null)},children:[(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsx)(q,{size:`xs`,variant:`ghost`,className:`flex-shrink-0 -mr-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(Y,{name:`more-2`,className:`h-3.5 w-3.5`})})}),(0,$.jsx)($n,{align:`end`,className:`w-fit min-w-20`,children:R(e,Gn)})]})]}),(0,$.jsx)(Di,{className:`w-fit min-w-20`,children:R(e,Oi)})]},e.name)})}),k.length>0&&(0,$.jsx)(Z,{label:ce,children:k.map(e=>{let t=cs((h[e.name]??(f.isError&&!f.data?{status:`failed`,error:f.error.message}:void 0))?.status),i=a===e.name,c=xr();return(0,$.jsxs)(ki,{open:S===e.name,onOpenChange:t=>C(t?e.name:null),children:[(0,$.jsxs)(Ei,{render:(0,$.jsx)(`div`,{className:K(`oc-settings-group-row group relative flex items-center transition-colors duration-150 select-none`,i?`bg-interactive-selection`:`hover:bg-interactive-hover`),onContextMenu:c?void 0:t=>{t.preventDefault(),C(e.name)}}),children:[(0,$.jsxs)(`button`,{onClick:()=>{o(e.name),s(null),n?.()},className:`flex min-w-0 flex-1 flex-col gap-0 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(ls,{tone:t,enabled:e.enabled}),(0,$.jsx)(`span`,{className:`typography-ui-label font-normal truncate text-foreground`,children:e.name}),(0,$.jsx)(`span`,{title:e.type===`local`?r(`settings.mcp.sidebar.serverType.localTitle`):r(`settings.mcp.sidebar.serverType.remoteTitle`),children:e.type===`local`?(0,$.jsx)(Y,{name:`server`,className:`h-3 w-3 text-muted-foreground/60 flex-shrink-0`}):(0,$.jsx)(Y,{name:`global`,className:`h-3 w-3 text-muted-foreground/60 flex-shrink-0`})})]}),(0,$.jsx)(`div`,{className:`typography-micro text-muted-foreground/60 truncate leading-tight pl-4`,children:e.type===`local`?e.command?.join(` `)??``:e.url??``})]}),(0,$.jsxs)(lr,{open:b===e.name,onOpenChange:t=>{t&&C(null),x(t?e.name:null)},children:[(0,$.jsx)(hr,{asChild:!0,children:(0,$.jsx)(q,{size:`xs`,variant:`ghost`,className:`flex-shrink-0 -mr-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(Y,{name:`more-2`,className:`h-3.5 w-3.5`})})}),(0,$.jsx)($n,{align:`end`,className:`w-fit min-w-20`,children:R(e,Gn)})]})]}),(0,$.jsx)(Di,{className:`w-fit min-w-20`,children:R(e,Oi)})]},e.name)})}),k.length===0&&(0,$.jsx)(Z,{label:ce,cardClassName:`hidden`,children:(0,$.jsx)(`span`,{})})]})}),t[54]=d.data,t[55]=d.error,t[56]=d.isError,t[57]=p.length,t[58]=h,t[59]=n,t[60]=b,t[61]=D,t[62]=R,t[63]=S,t[64]=a,t[65]=s,t[66]=o,t[67]=f.data,t[68]=f.error,t[69]=f.isError,t[70]=r,t[71]=k,t[72]=ce,t[73]=de):de=t[73];let fe=g!==null,pe;t[74]===v?pe=t[75]:(pe=e=>{!e&&!v&&_(null)},t[74]=v,t[75]=pe);let me;t[76]===r?me=t[77]:(me=r(`settings.mcp.sidebar.deleteDialog.title`),t[76]=r,t[77]=me);let he;t[78]===me?he=t[79]:(he=(0,$.jsx)(Zt,{children:me}),t[78]=me,t[79]=he);let ge=g?.name||``,_e;t[80]!==r||t[81]!==ge?(_e=r(`settings.mcp.sidebar.deleteDialog.descriptionPrefix`,{name:ge}),t[80]=r,t[81]=ge,t[82]=_e):_e=t[82];let ve;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(ve=(0,$.jsx)(`code`,{className:`text-foreground`,children:`opencode.json`}),t[83]=ve):ve=t[83];let ye;t[84]===_e?ye=t[85]:(ye=(0,$.jsxs)(Qt,{children:[_e,` `,ve,`.`]}),t[84]=_e,t[85]=ye);let G;t[86]!==he||t[87]!==ye?(G=(0,$.jsxs)(Jt,{children:[he,ye]}),t[86]=he,t[87]=ye,t[88]=G):G=t[88];let be;t[89]===Symbol.for(`react.memo_cache_sentinel`)?(be=()=>_(null),t[89]=be):be=t[89];let xe;t[90]===r?xe=t[91]:(xe=r(`settings.common.actions.cancel`),t[90]=r,t[91]=xe);let Se;t[92]!==v||t[93]!==xe?(Se=(0,$.jsx)(q,{size:`sm`,variant:`ghost`,onClick:be,disabled:v,children:xe}),t[92]=v,t[93]=xe,t[94]=Se):Se=t[94];let Ce;t[95]!==v||t[96]!==r?(Ce=r(v?`settings.mcp.sidebar.actions.deleting`:`settings.common.actions.delete`),t[95]=v,t[96]=r,t[97]=Ce):Ce=t[97];let we;t[98]!==F||t[99]!==v||t[100]!==Ce?(we=(0,$.jsx)(q,{size:`sm`,onClick:F,disabled:v,children:Ce}),t[98]=F,t[99]=v,t[100]=Ce,t[101]=we):we=t[101];let Te;t[102]!==Se||t[103]!==we?(Te=(0,$.jsxs)(Yt,{children:[Se,we]}),t[102]=Se,t[103]=we,t[104]=Te):Te=t[104];let Ee;t[105]!==G||t[106]!==Te?(Ee=(0,$.jsxs)(Xt,{className:`max-w-md`,children:[G,Te]}),t[105]=G,t[106]=Te,t[107]=Ee):Ee=t[107];let De;t[108]!==fe||t[109]!==pe||t[110]!==Ee?(De=(0,$.jsx)($t,{open:fe,onOpenChange:pe,children:Ee}),t[108]=fe,t[109]=pe,t[110]=Ee,t[111]=De):De=t[111];let Oe;return t[112]!==de||t[113]!==De?(Oe=(0,$.jsxs)(`div`,{className:`oc-settings-page-content h-full overflow-y-auto bg-background p-3`,children:[le,de,De]}),t[112]=de,t[113]=De,t[114]=Oe):Oe=t[114],Oe};function ds(e){return{selectedMcpName:e.selectedMcpName,setSelectedMcp:e.setSelectedMcp,setMcpDraft:e.setMcpDraft,deleteMcp:e.deleteMcp}}function fs(e){return e.scope===`project`}function ps(e){return e.scope!==`project`}function ms(e){return setTimeout(e,500)}function hs(e){J.error(e instanceof Error?e.message:String(e))}function gs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function _s(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function vs(e,t){return t===void 0?{ok:!1,error:e}:{ok:!1,error:e,parsed:t}}function ys(e,t,n){return{ok:!0,name:e,type:t,command:bs(n),url:typeof n.url==`string`?n.url.trim():``,environment:xs(n,`env`,`environment`),headers:xs(n,`headers`),oauthEnabled:Ss(n),oauthClientId:typeof n.oauth==`object`&&n.oauth!==null?String(n.oauth.clientId??``).trim():``,oauthClientSecret:typeof n.oauth==`object`&&n.oauth!==null?String(n.oauth.clientSecret??``).trim():``,oauthScope:typeof n.oauth==`object`&&n.oauth!==null?String(n.oauth.scope??``).trim():``,oauthRedirectUri:typeof n.oauth==`object`&&n.oauth!==null?String(n.oauth.redirectUri??``).trim():``,timeout:Cs(n),enabled:ws(n)}}function bs(e){let t=e.command,n=e.args;if(_s(t)&&_s(n))return[...t,...n];if(_s(t))return t;if(typeof t==`string`&&t.trim()){let e=t.trim().split(/\s+/);return _s(n)?[...e,...n]:e}return _s(n)?n:[]}function xs(e,...t){for(let n of t){let t=e[n];if(!gs(t))continue;let r=Object.entries(t).filter(([e,t])=>e&&typeof t==`string`);if(r.length>0)return r.map(([e,t])=>({key:e,value:String(t)}))}return[]}function Ss(e){if(e.oauth===!1||e.oauth===null||e.oauth===void 0||!gs(e.oauth))return!1;let t=e.oauth;return!!(typeof t.clientId==`string`&&t.clientId.trim()||typeof t.clientSecret==`string`&&t.clientSecret.trim()||typeof t.scope==`string`&&t.scope.trim()||typeof t.redirectUri==`string`&&t.redirectUri.trim())}function Cs(e){let t=e.timeout;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return String(Math.floor(t));if(typeof t==`string`&&t.trim()){let e=Number(t);if(Number.isFinite(e)&&e>0)return String(Math.floor(e))}return``}function ws(e){return`disabled`in e&&e.disabled===!0?!1:`enabled`in e?!!e.enabled:!0}function Ts(e){let t=e.mcpServers;if(gs(t)){let e=Object.keys(t);if(e.length===1){let n=e[0],r=t[n];if(gs(r))return{name:n,entry:r}}if(e.length>1)return null}let n=Object.keys(e).filter(t=>{let n=e[t];return t!==`mcpServers`&&gs(n)});if(n.length===1){let t=n[0],r=e[t];if(Es(r))return{name:t,entry:r}}return null}function Es(e){return e.type===`local`||e.type===`remote`||Array.isArray(e.command)||typeof e.url==`string`||Array.isArray(e.args)}function Ds(e,t){let n;try{let t=e.trim();if(!t)return vs(`No JSON content provided`);n=JSON.parse(t)}catch(e){return vs(e instanceof Error?`Invalid JSON: ${e.message}`:`Invalid JSON`)}if(!gs(n))return vs(`Expected a JSON object, not an array or primitive`);let r=n,i=r.mcpServers;if(gs(i)){let e=Object.keys(i);if(e.length===0)return vs(`mcpServers object is empty`,n);if(e.length>1)return vs(`Paste one server at a time. Found `+e.length+` servers in mcpServers`,n);let t=e[0],r=i[t];return gs(r)?ys(t,Os(r),r):vs(`Server entry is not a valid object`,n)}let a=r.mcp;if(gs(a)){let e=Object.keys(a);if(e.length===0)return vs(`mcp object is empty`,n);if(e.length>1)return vs(`Paste one server at a time. Found `+e.length+` servers in mcp`,n);let t=e[0],r=a[t];return gs(r)?ys(t,Os(r),r):vs(`Server entry in mcp is not a valid object`,n)}let o=Ts(r);if(o)return ys(o.name,Os(o.entry),o.entry);if(Es(r)){let e=Os(r);return ys(typeof r.name==`string`&&r.name.trim()?r.name.trim():t?.fallbackName,e,r)}return vs(`No recognizable MCP server configuration found in JSON`,n)}function Os(e){return e.type===`remote`?`remote`:e.type===`local`?`local`:typeof e.url==`string`&&e.url.trim()?`remote`:(Array.isArray(e.command)||typeof e.command==`string`||Array.isArray(e.args),`local`)}function ks(e,t,n){let r=n?.isNewServer??!1,i=e.name,a=r&&i?i:t.name??``;return{...t,name:a,type:e.type,command:e.type===`local`?e.command:[],url:e.type===`remote`?e.url:``,environment:e.environment,headers:e.type===`remote`?e.headers:[],oauthEnabled:e.type===`remote`&&e.oauthEnabled,oauthClientId:e.type===`remote`?e.oauthClientId:``,oauthClientSecret:e.type===`remote`?e.oauthClientSecret:``,oauthScope:e.type===`remote`?e.oauthScope:``,oauthRedirectUri:e.type===`remote`?e.oauthRedirectUri:``,timeout:e.type===`remote`?e.timeout:``,enabled:e.enabled}}function As(e){let t=[],n=``,r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(o===`'`&&!i){r=!r;continue}if(o===`"`&&!r){i=!i;continue}if((o===` `||o===` `)&&!r&&!i){n&&=(t.push(n),``);continue}n+=o}return n&&t.push(n),t}function js(e){let t=e.trim();if(!t)return{code:null,context:null,stateKey:null};try{let e=new URL(t),n=e.searchParams.get(`code`);if(typeof n==`string`&&n.trim())return{code:n.trim(),context:Vr(e.searchParams),stateKey:Wr(e.searchParams)}}catch{}return{code:t,context:null,stateKey:null}}var Ms=({value:e,onChange:t,pasteCommandTitle:n,pasteCommandLabel:r,pasteSuccess:i,clipboardReadFailed:a,preview:o})=>{let[s,c]=Q.useState(()=>e.join(`
|
|
3
3
|
`)),l=Q.useRef(e);Q.useEffect(()=>{JSON.stringify(l.current)!==JSON.stringify(e)&&(l.current=e,c(e.join(`
|
|
4
4
|
`)))},[e]);let u=e=>{t(e.split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{$ as t,J as n,X as r,Y as i,Z as a,nt as o,rt as s}from"./vendor-base-ui-CnHfUmDN.js";import{n as c}from"./vendor-react-DLPElpoQ.js";import{f as l,r as u}from"./button-
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{$ as t,J as n,X as r,Y as i,Z as a,nt as o,rt as s}from"./vendor-base-ui-CnHfUmDN.js";import{n as c}from"./vendor-react-DLPElpoQ.js";import{f as l,r as u}from"./button-DIIrsMjW.js";import{t as d}from"./SettingsView-BQ34wp4Z.js";var f=c(),p=e(s(),1),m=o(),h=e=>{let o=(0,f.c)(19),{open:s,onOpenChange:c}=e,{t:h}=l(),_=p.useId(),v=g,y;o[0]===c?y=o[1]:(y=e=>{!e&&v()||c(e)},o[0]=c,o[1]=y);let b;o[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,m.jsx)(t,{className:u(`fixed inset-0 z-50 bg-black/50 dark:bg-black/75`,`transition-opacity duration-150 ease-out`,`data-[starting-style]:opacity-0 data-[ending-style]:opacity-0`)}),o[2]=b):b=o[2];let x;o[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=u(`relative pointer-events-auto`,`w-[90vw] max-w-[1200px] h-[85vh] max-h-[900px]`,`rounded-xl border shadow-none overflow-hidden origin-center`,`bg-background`,`transition-all duration-150 ease-out`,`data-[starting-style]:opacity-0 data-[starting-style]:scale-[0.98]`,`data-[ending-style]:opacity-0 data-[ending-style]:scale-[0.98]`,`data-[nested-dialog-open]:brightness-[0.55] dark:data-[nested-dialog-open]:brightness-[0.4]`),o[3]=x):x=o[3];let S;o[4]===h?S=o[5]:(S=h(`settings.window.description`),o[4]=h,o[5]=S);let C;o[6]!==_||o[7]!==S?(C=(0,m.jsx)(a,{id:_,className:`sr-only`,children:S}),o[6]=_,o[7]=S,o[8]=C):C=o[8];let w;o[9]===c?w=o[10]:(w=(0,m.jsx)(d,{onClose:()=>c(!1),isWindowed:!0}),o[9]=c,o[10]=w);let T;o[11]!==_||o[12]!==C||o[13]!==w?(T=(0,m.jsxs)(i,{children:[b,(0,m.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center pointer-events-none`,children:(0,m.jsxs)(r,{"aria-describedby":_,className:x,children:[C,w]})})]}),o[11]=_,o[12]=C,o[13]=w,o[14]=T):T=o[14];let E;return o[15]!==s||o[16]!==y||o[17]!==T?(E=(0,m.jsx)(n,{open:s,onOpenChange:y,children:T}),o[15]=s,o[16]=y,o[17]=T,o[18]=E):E=o[18],E};function g(){return typeof document>`u`?!1:!!document.querySelector(`[data-slot="dropdown-menu-content"][data-open], [data-slot="select-content"][data-open]`)}export{h as SettingsWindow};
|