@jingyi0605/codingns 0.9.8 → 0.9.9
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/public/assets/{AdaptiveButlerPage-D-gXre7Y.js → AdaptiveButlerPage-CqBM1XiC.js} +2 -2
- package/dist/public/assets/App-Pe30N_Dy.js +30 -0
- package/dist/public/assets/{BootstrapPage-B-yMdfpQ.js → BootstrapPage-D9ai1XhC.js} +1 -1
- package/dist/public/assets/ConversationPage-C8aU99KN.js +9 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-D1DMaGcy.js → DesktopDetachPreviewPage-BJVPVFf2.js} +1 -1
- package/dist/public/assets/{DesktopModal-BnfGW2gk.js → DesktopModal-DyC_e0eF.js} +1 -1
- package/dist/public/assets/DesktopWindowPage-BZleww0T.js +2 -0
- package/dist/public/assets/FileContextPanel-BklQRQXj.js +1 -0
- package/dist/public/assets/GitSidebar-D0tb3W87.js +6 -0
- package/dist/public/assets/MobileCreateSessionSheet-BS881Agk.js +1 -0
- package/dist/public/assets/{MobileSheet-rkn_CUOY.js → MobileSheet-C32hwIFd.js} +1 -1
- package/dist/public/assets/PluginAccessOverview-BDiz6fV8.js +1 -0
- package/dist/public/assets/{PluginContainerPage-D-ly3i3H.js → PluginContainerPage-BMT6J0YS.js} +1 -1
- package/dist/public/assets/{PluginDetailPage-CWAHYyyG.js → PluginDetailPage-ztNhvCWP.js} +1 -1
- package/dist/public/assets/{PluginsListPage-Cte3vBgR.js → PluginsListPage-Cuk2-U6E.js} +1 -1
- package/dist/public/assets/PureConversationPage-ShluI2En.js +1 -0
- package/dist/public/assets/{RelayConnectEntryPage-sRJlstx9.js → RelayConnectEntryPage-CMbjlD0k.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-BBft9KEC.js → ServerSettingsModal-CLSWyHu6.js} +1 -1
- package/dist/public/assets/SessionIndexPage-dqfauVAj.js +1 -0
- package/dist/public/assets/SettingsPage-PUga-wwJ.js +2 -0
- package/dist/public/assets/TerminalManagerPanel-75khWhRz.js +1 -0
- package/dist/public/assets/ToolFilesPage-S3eWxO_D.js +1 -0
- package/dist/public/assets/ToolGitPage-8RAMpope.js +1 -0
- package/dist/public/assets/ToolProcessesPage-TZACKEoH.js +1 -0
- package/dist/public/assets/{ToolsHomePage-D1n4FU1s.js → ToolsHomePage-Whgu6Tyf.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-BaU_dXls.js → WorkbenchLandingPage-CC24vHza.js} +1 -1
- package/dist/public/assets/{WorkbenchLayout-BksVkkFF.css → WorkbenchLayout-BZdfVest.css} +32 -1
- package/dist/public/assets/WorkbenchLayout-CoYxMzzR.js +1081 -0
- package/dist/public/assets/{WorkbenchModal-DWsNm2B2.js → WorkbenchModal-2PaCY_Gj.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-DLVRpGzb.css +1 -0
- package/dist/public/assets/WorkbenchShellRoute-QXztW_Ny.js +1 -0
- package/dist/public/assets/WorkspaceDebugDetailPage-Ce_oMmJ8.js +1 -0
- package/dist/public/assets/WorkspaceDetailPage-aX6w4Q7S.js +1 -0
- package/dist/public/assets/WorkspaceHomePage-DQttgj2w.js +1 -0
- package/dist/public/assets/{client-runtime-manager-D9VbgJZ_.js → client-runtime-manager-CGVLChqs.js} +1 -1
- package/dist/public/assets/host-alias-CeDJeL0T.js +1 -0
- package/dist/public/assets/index-BehUkul4.css +1 -0
- package/dist/public/assets/index-Bp1FnRo_.js +50 -0
- package/dist/public/assets/{login-direct-candidate-resolver-17wEvjhh.js → login-direct-candidate-resolver-Bvs5uPix.js} +1 -1
- package/dist/public/assets/peer-host-config-sync-oelf2T0_.js +1 -0
- package/dist/public/assets/{plugin-permission-copy-apDn8EWG.js → plugin-permission-copy-Do028HzJ.js} +1 -1
- package/dist/public/assets/{plugins-api-CnZYRKoS.js → plugins-api-BOugklJ-.js} +1 -1
- package/dist/public/assets/{preferences-service-PZlLLAWH.js → preferences-service-Dys1mbBy.js} +1 -1
- package/dist/public/assets/{relay-entry-DhHwflXl.js → relay-entry-B6UDc5cD.js} +1 -1
- package/dist/public/assets/useRegisteredDebugTemplates-BafVuBvE.js +1 -0
- package/dist/public/assets/workbench-navigation-Bs4OQYD3.js +1 -0
- package/dist/public/index.html +2 -2
- package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +3 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js +9 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +3 -0
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +4 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/sessions/session-controller.d.ts +10 -0
- package/dist/server/modules/sessions/session-controller.js +11 -0
- package/dist/server/modules/sessions/session-controller.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +42 -1
- package/dist/server/modules/sessions/session-history-service.js +356 -25
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/tasks/observability-controller.d.ts +2 -0
- package/dist/server/modules/tasks/observability-controller.js +16 -1
- package/dist/server/modules/tasks/observability-controller.js.map +1 -1
- package/dist/server/modules/tasks/observability-service.d.ts +12 -2
- package/dist/server/modules/tasks/observability-service.js +16 -3
- package/dist/server/modules/tasks/observability-service.js.map +1 -1
- package/dist/server/modules/workbench/workbench-service.d.ts +2 -0
- package/dist/server/modules/workbench/workbench-service.js +162 -19
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workspace/affairs-library-controller.d.ts +1 -0
- package/dist/server/modules/workspace/affairs-library-controller.js +3 -0
- package/dist/server/modules/workspace/affairs-library-controller.js.map +1 -1
- package/dist/server/modules/workspace/affairs-library-service.d.ts +4 -0
- package/dist/server/modules/workspace/affairs-library-service.js +23 -4
- package/dist/server/modules/workspace/affairs-library-service.js.map +1 -1
- package/dist/server/modules/workspace/workspace-controller.d.ts +7 -1
- package/dist/server/modules/workspace/workspace-controller.js +11 -1
- package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
- package/dist/server/modules/workspace/workspace-service.d.ts +9 -2
- package/dist/server/modules/workspace/workspace-service.js +45 -10
- package/dist/server/modules/workspace/workspace-service.js.map +1 -1
- package/dist/server/routes/affairs.js +4 -0
- package/dist/server/routes/affairs.js.map +1 -1
- package/dist/server/routes/sessions.js +2 -0
- package/dist/server/routes/sessions.js.map +1 -1
- package/dist/server/server/create-server.js +1 -1
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/storage/repositories/session-discovery-diagnostics-repository.d.ts +10 -0
- package/dist/server/storage/repositories/session-discovery-diagnostics-repository.js +68 -0
- package/dist/server/storage/repositories/session-discovery-diagnostics-repository.js.map +1 -0
- package/dist/server/storage/repositories/session-source-index-repository.d.ts +14 -0
- package/dist/server/storage/repositories/session-source-index-repository.js +164 -0
- package/dist/server/storage/repositories/session-source-index-repository.js.map +1 -0
- package/dist/server/storage/repositories/workspace-navigation-state-repository.js +16 -7
- package/dist/server/storage/repositories/workspace-navigation-state-repository.js.map +1 -1
- package/dist/server/storage/sqlite/client.js +26 -0
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +57 -0
- package/dist/server/types/domain.d.ts +45 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +19 -2
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +45 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +11 -4
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/App-Dl-mcdqy.js +0 -30
- package/dist/public/assets/ConversationPage-DRQ5Sg_d.js +0 -9
- package/dist/public/assets/DesktopWindowPage-2SWAi0xz.js +0 -2
- package/dist/public/assets/FileContextPanel-fbPuE9dO.js +0 -1
- package/dist/public/assets/GitSidebar-BkmesJJR.js +0 -6
- package/dist/public/assets/MobileCreateSessionSheet-CEJcDBZJ.js +0 -1
- package/dist/public/assets/MobileTopHeaderFrame-CU0wsYSS.js +0 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-idl8o1OB.js +0 -1
- package/dist/public/assets/PluginAccessOverview-BBgM6tb0.js +0 -1
- package/dist/public/assets/SessionIndexPage-CN7cEdl9.js +0 -1
- package/dist/public/assets/SettingsPage-BGT-YqG2.js +0 -2
- package/dist/public/assets/TerminalManagerPanel-6-ZJ8vGn.js +0 -1
- package/dist/public/assets/TerminalPage-6GBZ9nXN.css +0 -32
- package/dist/public/assets/TerminalPage-CUXXQYU2.js +0 -55
- package/dist/public/assets/TerminalRuntimeFallbackModal-zc3qqMKJ.js +0 -1
- package/dist/public/assets/ToolFilesPage-QzsZyr0F.js +0 -1
- package/dist/public/assets/ToolGitPage-CXg4ncuT.js +0 -1
- package/dist/public/assets/ToolProcessesPage-BPsOsg4w.js +0 -1
- package/dist/public/assets/WorkbenchLayout-DViAJhHz.js +0 -1027
- package/dist/public/assets/WorkbenchShellRoute-BGfRqBUa.js +0 -1
- package/dist/public/assets/WorkbenchShellRoute-f2jWjHWu.css +0 -1
- package/dist/public/assets/WorkspaceDebugDetailPage-BX0zVSsI.js +0 -1
- package/dist/public/assets/WorkspaceDetailPage-Dx6JX4jx.js +0 -1
- package/dist/public/assets/WorkspaceHomePage-DQVJ042Z.js +0 -1
- package/dist/public/assets/host-alias-0TfFnYxR.js +0 -1
- package/dist/public/assets/index-DREvg1Yu.css +0 -1
- package/dist/public/assets/index-FOhyOpGY.js +0 -50
- package/dist/public/assets/peer-host-config-sync-vYkmqzNz.js +0 -1
- package/dist/public/assets/terminal-runtime-meta-2zvacxvM.js +0 -1
- package/dist/public/assets/useRegisteredDebugTemplates-CJ-o4tFl.js +0 -1
- package/dist/public/assets/workbench-navigation-aqJ1ay4M.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as l,j as e,t as s,h as J,c as ts,e as He,f as tt,x as ss,B as Re,K as Qe,L as ut,M as Hn,N as ks,O as Wn,P as nt,i as $n,Q as Cs,s as zn,n as Kn,d as Ds,o as Gn}from"./index-Bp1FnRo_.js";import{g as Jn,j as Ss,k as Qn,l as zt,m as Kt,n as Gt,o as Zn,p as Yn,q as Jt,s as Qt,e as hs,t as Ms,f as at,u as it,v as Xn,w as ea,c as sa,L as Zt,x as Yt,y as Xt}from"./App-Pe30N_Dy.js";import{a2 as gt,bv as ta,bw as en,bx as de,by as na,bz as As,bA as aa,ab as ia,bB as la,bC as ra,bD as ca,P as oa,Q as da,bE as ua,bF as ga,bG as mt,bH as ma,bI as ha,bJ as pa,bK as ba,bL as fa,bM as xa,bN as ya,bO as ja,bP as va,bQ as Na,u as as,b as sn,bR as is,bS as Sa,bT as wa}from"./WorkbenchLayout-CoYxMzzR.js";import{M as Ta,D as Ae}from"./DesktopModal-DyC_e0eF.js";import{M as X,w as ce,s as se,H as le,v as re,t as pe,u as he,Q as ka}from"./workbench-navigation-Bs4OQYD3.js";import{W as ms}from"./WorkbenchModal-2PaCY_Gj.js";import{M as Le}from"./MobileSheet-C32hwIFd.js";import{l as Ca,g as Da,a as Ma,b as Aa,r as Pa,d as Ea,e as La}from"./plugins-api-BOugklJ-.js";import{P as Ia}from"./PluginAccessOverview-BDiz6fV8.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-CeDJeL0T.js";import"./relay-entry-B6UDc5cD.js";import"./plugin-permission-copy-Do028HzJ.js";const ht=2e4,Ua=1e3,Oa=5e3;function Ra({isOpen:t,onClose:a}){const[n,r]=l.useState(null),[c,h]=l.useState(null),[j,w]=l.useState(!1),[p,T]=l.useState(!1),[d,C]=l.useState(null),F=l.useRef(null);if(l.useEffect(()=>{if(!t)return;let u=!1;async function f(){w(!0),C(null),h(null);try{const x=await J.request("/api/observability/runtime/session",{method:"POST",body:JSON.stringify({ttlMs:ht})});if(u){await Ps(x.sessionId);return}F.current=x.sessionId,r(x);const b=await pt(x.sessionId);if(u){await Ps(x.sessionId);return}h(b)}catch(x){u||C(Es(x))}finally{u||w(!1)}}return f(),()=>{u=!0;const x=F.current;F.current=null,r(null),h(null),w(!1),T(!1),C(null),x&&Ps(x)}},[t]),l.useEffect(()=>{const u=(n==null?void 0:n.sessionId)??null;if(!t||!u)return;const f=u;let x=!1;async function b(){T(!0);try{const N=await pt(f);x||(h(N),C(null))}catch(N){x||C(Es(N))}finally{x||T(!1)}}const o=window.setInterval(()=>{b()},Ua);return()=>{x=!0,window.clearInterval(o)}},[t,n==null?void 0:n.sessionId]),l.useEffect(()=>{const u=(n==null?void 0:n.sessionId)??null;if(!t||!u)return;const f=u;let x=!1;async function b(){try{const N=await J.request(`/api/observability/runtime/session/${f}/heartbeat`,{method:"POST",body:JSON.stringify({ttlMs:ht})});x||r(N)}catch(N){x||C(Es(N))}}const o=window.setInterval(()=>{b()},Oa);return()=>{x=!0,window.clearInterval(o)}},[t,n==null?void 0:n.sessionId]),!t||typeof document>"u")return null;const D=Object.entries((c==null?void 0:c.backgroundTasks.taskTypes)??{}),k=(c==null?void 0:c.registeredTasks)??[],v=Object.entries((c==null?void 0:c.schedulers.schedulers)??{}),I=Object.entries((c==null?void 0:c.backgroundTasks.totals)??{});return Jn.createPortal(e.jsxs("div",{className:"workbench-modal-layer parallel-task-debug-modal-layer","aria-hidden":!t,children:[e.jsx("button",{type:"button",className:"workbench-modal-backdrop parallel-task-debug-modal-backdrop","aria-label":s("settings.parallelTaskDebugClose"),onClick:a}),e.jsxs("div",{className:"workbench-modal-card surface-card parallel-task-debug-modal-card",role:"dialog","aria-modal":"true","aria-labelledby":"parallel-task-debug-title",children:[e.jsxs("div",{className:"workbench-modal-header",children:[e.jsxs("div",{className:"workbench-modal-title-wrap",children:[e.jsx("h2",{id:"parallel-task-debug-title",children:s("settings.parallelTaskDebugModalTitle")}),e.jsx("p",{children:s("settings.parallelTaskDebugModalDescription")})]}),e.jsxs("div",{className:"workbench-modal-header-actions",children:[e.jsx("span",{className:"parallel-task-debug-status-chip","data-tone":d?"error":"active",children:d?s("settings.parallelTaskDebugStatusError"):s("settings.parallelTaskDebugStatusActive")}),e.jsx(Ta,{onClick:a,"aria-label":s("settings.parallelTaskDebugClose")})]})]}),e.jsxs("div",{className:"workbench-modal-body parallel-task-debug-body",children:[e.jsxs("div",{className:"parallel-task-debug-meta-grid",children:[e.jsxs("div",{className:"parallel-task-debug-meta-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugObservedAt")}),e.jsx("strong",{children:Ls(c==null?void 0:c.observedAt)})]}),e.jsxs("div",{className:"parallel-task-debug-meta-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugSessionExpireAt")}),e.jsx("strong",{children:Ls(n==null?void 0:n.expiresAt)})]}),e.jsxs("div",{className:"parallel-task-debug-meta-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugSessionTtl")}),e.jsx("strong",{children:Fa((n==null?void 0:n.ttlMs)??null)})]}),e.jsxs("div",{className:"parallel-task-debug-meta-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugCollectorState")}),e.jsx("strong",{children:c!=null&&c.eventLoop.enabled?s("settings.parallelTaskDebugCollectorEnabled"):s("settings.parallelTaskDebugCollectorDisabled")})]})]}),j?e.jsx("div",{className:"parallel-task-debug-empty",children:s("settings.parallelTaskDebugLoading")}):null,!j&&d?e.jsx("div",{className:"parallel-task-debug-error",children:d}):null,!j&&!d&&c?e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"parallel-task-debug-section",children:[e.jsxs("div",{className:"parallel-task-debug-section-header",children:[e.jsx("h3",{children:s("settings.parallelTaskDebugCountersTitle")}),e.jsx("span",{children:p?s("common.loading"):s("settings.parallelTaskDebugAutoRefresh")})]}),e.jsx("div",{className:"parallel-task-debug-counter-grid",children:I.map(([u,f])=>e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:_a(u)}),e.jsx("strong",{children:f})]},u))})]}),e.jsxs("section",{className:"parallel-task-debug-section",children:[e.jsxs("div",{className:"parallel-task-debug-section-header",children:[e.jsx("h3",{children:s("settings.parallelTaskDebugRegisteredTasksTitle")}),e.jsx("span",{children:k.length})]}),k.length>0?e.jsx("div",{className:"parallel-task-debug-grid",children:k.map(u=>e.jsxs("article",{className:"parallel-task-debug-panel",children:[e.jsxs("div",{className:"parallel-task-debug-panel-header",children:[e.jsx("strong",{children:u.taskType}),e.jsx("span",{children:Is(u.executionLane)})]}),e.jsxs("div",{className:"parallel-task-debug-panel-body",children:[e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskCategory"),": ",bt(u.taskType)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskRuntime"),": ",ft(u.executionLane,u.taskType)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskTimeout"),": ",Te(u.timeoutMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskConcurrency"),": ",u.concurrency??s("common.none")]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskRetry"),": ",u.retryMaxAttempts??s("common.none")]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskHelper"),": ",u.helperProcessHandler??s("common.none")]})]})]},u.taskType))}):e.jsx("div",{className:"parallel-task-debug-empty",children:s("settings.parallelTaskDebugRegisteredTasksEmpty")})]}),e.jsxs("section",{className:"parallel-task-debug-section",children:[e.jsxs("div",{className:"parallel-task-debug-section-header",children:[e.jsx("h3",{children:s("settings.parallelTaskDebugTaskMetricsTitle")}),e.jsx("span",{children:D.length})]}),D.length>0?e.jsx("div",{className:"parallel-task-debug-grid",children:D.map(([u,f])=>e.jsxs("article",{className:"parallel-task-debug-panel",children:[e.jsxs("div",{className:"parallel-task-debug-panel-header",children:[e.jsx("strong",{children:u}),e.jsx("span",{children:Is(f.executionLane)})]}),e.jsxs("div",{className:"parallel-task-debug-panel-body",children:[e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskCategory"),": ",bt(u)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskRuntime"),": ",ft(f.executionLane,u)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugWaitAvg"),": ",Te(f.waitMs.avg)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugRunAvg"),": ",Te(f.runMs.avg)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugRunMax"),": ",Te(f.runMs.max)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugStartedCount"),": ",f.counters.started??0]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugFinishedCount"),": ",f.counters.finished??0]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugFailedCount"),": ",f.counters.failed??0]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugCacheHitCount"),": ",f.counters.cache_hit??0]})]})]},u))}):e.jsx("div",{className:"parallel-task-debug-empty",children:s("settings.parallelTaskDebugActiveTaskMetricsEmpty")})]}),e.jsxs("section",{className:"parallel-task-debug-section",children:[e.jsxs("div",{className:"parallel-task-debug-section-header",children:[e.jsx("h3",{children:s("settings.parallelTaskDebugSchedulerTitle")}),e.jsx("span",{children:v.length})]}),v.length>0?e.jsx("div",{className:"parallel-task-debug-grid",children:v.map(([u,f])=>e.jsxs("article",{className:"parallel-task-debug-panel",children:[e.jsxs("div",{className:"parallel-task-debug-panel-header",children:[e.jsx("strong",{children:u}),e.jsx("span",{children:f.lastIdle?s("settings.parallelTaskDebugIdle"):s("settings.parallelTaskDebugBusy")})]}),e.jsxs("div",{className:"parallel-task-debug-panel-body",children:[e.jsxs("span",{children:[s("settings.parallelTaskDebugTickTotal"),": ",f.tickTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugIdleTickTotal"),": ",f.idleTickTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskCountTotal"),": ",f.taskCountTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugSchedulerErrorTotal"),": ",f.errorTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugLastDuration"),": ",Te(f.lastDurationMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugNextDelay"),": ",Te(f.nextDelayMs)]})]})]},u))}):e.jsx("div",{className:"parallel-task-debug-empty",children:s("settings.parallelTaskDebugEmpty")})]}),e.jsxs("section",{className:"parallel-task-debug-section",children:[e.jsxs("div",{className:"parallel-task-debug-section-header",children:[e.jsx("h3",{children:s("settings.parallelTaskDebugEventLoopTitle")}),e.jsx("span",{children:c.eventLoop.enabled?s("settings.parallelTaskDebugCollectorEnabled"):s("settings.parallelTaskDebugCollectorDisabled")})]}),e.jsxs("div",{className:"parallel-task-debug-counter-grid",children:[e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopResolution")}),e.jsx("strong",{children:Te(c.eventLoop.resolutionMs)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopMean")}),e.jsx("strong",{children:Te(c.eventLoop.meanMs)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopP95")}),e.jsx("strong",{children:Te(c.eventLoop.p95Ms)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopP99")}),e.jsx("strong",{children:Te(c.eventLoop.p99Ms)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopMax")}),e.jsx("strong",{children:Te(c.eventLoop.maxMs)})]})]})]}),e.jsxs("section",{className:"parallel-task-debug-section",children:[e.jsxs("div",{className:"parallel-task-debug-section-header",children:[e.jsx("h3",{children:s("settings.parallelTaskDebugRecentActivitiesTitle")}),e.jsx("span",{children:c.recentTaskActivities.length})]}),c.recentTaskActivities.length>0?e.jsx("div",{className:"parallel-task-debug-activity-list",children:c.recentTaskActivities.map(u=>e.jsxs("article",{className:"parallel-task-debug-activity-item",children:[e.jsxs("div",{className:"parallel-task-debug-activity-main",children:[e.jsxs("div",{className:"parallel-task-debug-activity-title-row",children:[e.jsx("strong",{children:u.taskType}),e.jsx("span",{children:Va(u.eventType)}),e.jsx("span",{children:Is(u.executionLane)})]}),e.jsxs("p",{children:[s("settings.parallelTaskDebugTaskKey"),": ",u.key]}),e.jsxs("p",{children:[s("settings.parallelTaskDebugStatus"),": ",u.status?qa(u.status):"-"]})]}),e.jsxs("div",{className:"parallel-task-debug-activity-meta",children:[e.jsx("span",{children:Ls(u.recordedAt)}),e.jsxs("span",{children:[s("settings.parallelTaskDebugAttempt"),": ",u.attempt??"-"]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugWaitMs"),": ",Te(u.waitMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugRunMs"),": ",Te(u.runMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugSource"),": ",u.source??"-"]}),u.errorMessage?e.jsxs("span",{children:[s("settings.parallelTaskDebugError"),": ",u.errorMessage]}):null]})]},u.eventId))}):e.jsx("div",{className:"parallel-task-debug-empty",children:s("settings.parallelTaskDebugEmpty")})]})]}):null]})]})]}),document.body)}async function pt(t){return await J.request(`/api/observability/runtime?sessionId=${encodeURIComponent(t)}`)}async function Ps(t){try{await J.request(`/api/observability/runtime/session/${t}`,{method:"DELETE"})}catch{}}function Es(t){return t instanceof Error&&t.message?t.message:s("settings.parallelTaskDebugLoadFailed")}function Ls(t){if(!t)return"-";const a=new Date(t);return Number.isNaN(a.getTime())?t:a.toLocaleString()}function Te(t){return t==null||Number.isNaN(t)?"-":`${Math.round(t*100)/100} ms`}function Fa(t){return t===null||Number.isNaN(t)?"-":`${Math.round(t/1e3)} s`}const Ba=new Set(["affairs.library_apply_config","affairs.library_index","affairs.library_export"]);function tn(t){return Ba.has(t)}function bt(t){return tn(t)?s("settings.parallelTaskDebugTaskCategoryBuiltinIndexer"):s("settings.parallelTaskDebugTaskCategoryGeneric")}function ft(t,a){if(t==="helper_process"&&tn(a))return s("settings.parallelTaskDebugTaskRuntimeBuiltinHelper");switch(t){case"host_background":return s("settings.parallelTaskDebugTaskRuntimeHostBackground");case"helper_process":return s("settings.parallelTaskDebugTaskRuntimeHelperProcess");case"external_process":return s("settings.parallelTaskDebugTaskRuntimeExternalProcess");default:return s("settings.parallelTaskDebugTaskRuntimeMainThread")}}function _a(t){switch(t){case"enqueue":return s("settings.parallelTaskDebugMetricEnqueue");case"dedupe":return s("settings.parallelTaskDebugMetricDedupe");case"started":return s("settings.parallelTaskDebugMetricStarted");case"finished":return s("settings.parallelTaskDebugMetricFinished");case"failed":return s("settings.parallelTaskDebugMetricFailed");case"cancelled":return s("settings.parallelTaskDebugMetricCancelled");case"timeout":return s("settings.parallelTaskDebugMetricTimeout");case"cache_hit":return s("settings.parallelTaskDebugMetricCacheHit");default:return t}}function Is(t){switch(t){case"host_background":return s("settings.parallelTaskDebugLaneHostBackground");case"helper_process":return s("settings.parallelTaskDebugLaneHelperProcess");case"external_process":return s("settings.parallelTaskDebugLaneExternalProcess");default:return s("settings.parallelTaskDebugLaneRequestMainThread")}}function Va(t){switch(t){case"enqueued":return s("settings.parallelTaskDebugEventEnqueued");case"deduped":return s("settings.parallelTaskDebugEventDeduped");case"started":return s("settings.parallelTaskDebugEventStarted");case"finished":return s("settings.parallelTaskDebugEventFinished");case"failed":return s("settings.parallelTaskDebugEventFailed");case"cancelled":return s("settings.parallelTaskDebugEventCancelled");case"timeout":return s("settings.parallelTaskDebugEventTimeout");case"cache_hit":return s("settings.parallelTaskDebugEventCacheHit");default:return t}}function qa(t){switch(t){case"queued":return s("settings.parallelTaskDebugTaskStatusQueued");case"running":return s("settings.parallelTaskDebugTaskStatusRunning");case"succeeded":return s("settings.parallelTaskDebugTaskStatusSucceeded");case"failed":return s("settings.parallelTaskDebugTaskStatusFailed");case"cancelled":return s("settings.parallelTaskDebugTaskStatusCancelled");case"timeout":return s("settings.parallelTaskDebugTaskStatusTimeout");default:return t}}async function xt(){const t=ts(),a=He.getState(),n=await t.bridge.getAndroidRuntimeInfo();if(!n.ok||!n.value)throw new Error(n.detail??"读取 Android 运行时信息失败。");const r=await J.request(`/api/client/release-manifest?channel=${encodeURIComponent(a.releaseChannel)}&platform=android-apk`),c=r.versionCode>n.value.versionCode;return{checkedAt:new Date().toISOString(),currentVersion:n.value.version,currentVersionCode:n.value.versionCode,hasUpdate:c,manifest:r,runtimeInfo:n.value}}async function Ha(t){return ts().bridge.installAndroidUpdate(t)}function Wa(){const[t,a]=l.useState(!1),[n,r]=l.useState(!1),[c,h]=l.useState(null),[j,w]=l.useState(null),[p,T]=l.useState(null),[d,C]=l.useState(!1),[F,D]=l.useState(null),k=l.useRef(!1);l.useEffect(()=>{if(F===null){k.current=!1;return}const u=F;async function f(){if(!k.current){k.current=!0;try{const o=await xt();if(T(o.manifest),w(o.currentVersion),C(o.hasUpdate),!o.hasUpdate||o.currentVersionCode>=u){h(s("settings.androidInstallSucceeded"));return}h(s("settings.androidInstallCancelled"))}catch(o){h(o instanceof Error?o.message:s("settings.releaseCheckFailed"))}finally{D(null)}}}function x(){f()}function b(){document.visibilityState==="visible"&&f()}return window.addEventListener("focus",x),document.addEventListener("visibilitychange",b),()=>{window.removeEventListener("focus",x),document.removeEventListener("visibilitychange",b)}},[F]);async function v(){a(!0),h(null),D(null);try{const u=await xt();T(u.manifest),w(u.currentVersion),C(u.hasUpdate),h(u.hasUpdate?s("settings.releaseUpdateReady"):s("settings.releaseUpToDate"))}catch(u){h(u instanceof Error?u.message:s("settings.releaseCheckFailed"))}finally{a(!1)}}async function I(){if(p){r(!0),h(null),D(null);try{const u=await Ha(p);if(u.status==="installer_started"){h(s("settings.androidInstallerStarted")),D(p.versionCode);return}if(u.status==="permission_required"){h(u.detail??s("settings.androidInstallPermissionRequired")),D(null);return}if(u.status==="already_up_to_date"){h(s("settings.releaseUpToDate")),C(!1),D(null);return}h(u.detail??s("settings.releaseInstallFailed")),D(null)}catch(u){h(u instanceof Error?u.message:s("settings.releaseInstallFailed")),D(null)}finally{r(!1)}}}return e.jsxs("div",{className:"settings-update-card",children:[e.jsxs("div",{className:"settings-update-summary",children:[e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.releaseCurrentVersion")}),e.jsx("strong",{className:"settings-update-value",children:j??s("settings.releaseUnknownVersion")})]}),e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.releaseTargetVersion")}),e.jsx("strong",{className:"settings-update-value",children:(p==null?void 0:p.version)??"-"})]})]}),c?e.jsx("p",{className:"settings-update-status","data-tone":d?"warning":"success",children:c}):null,e.jsxs("div",{className:"settings-update-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:t||n,onClick:v,children:t?s("common.loading"):s("settings.releaseCheckNow")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!p||!d||n,onClick:I,children:n?s("common.loading"):s("settings.releaseInstallNow")})]})]})}function nn({open:t,version:a,installing:n,onClose:r,onConfirm:c}){return e.jsx(Ae,{open:t,title:s("settings.releaseInstallReadyDialogTitle"),description:s("settings.releaseInstallReadyDialogDescription",{version:a??"-"}),size:"compact",layout:"confirm",dismissible:!n,footer:e.jsxs(ce,{children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:n,onClick:r,children:s("settings.releaseRestartLater")}),e.jsx("button",{type:"button",className:"primary-button",disabled:n,onClick:c,children:n?s("common.loading"):s("settings.releaseInstallReadyConfirm")})]}),onClose:r,children:e.jsx(X,{className:"settings-update-confirm-section",children:e.jsx("p",{className:"settings-update-confirm-warning",children:s("settings.releaseInstallReadyWarning")})})})}function $a(){const t=ts(),a=t.isDesktop,n=tt($=>$.autoDownloadUpdate),[r,c]=l.useState(!1),[h,j]=l.useState(!1),[w,p]=l.useState(!1),[T,d]=l.useState(!1),[C,F]=l.useState(null),[D,k]=l.useState(null),[v,I]=l.useState(null),u=Ss($=>$.latestState),f=Ss($=>$.pendingRestartVersion),x=(u==null?void 0:u.currentVersion)??null,b=(u==null?void 0:u.manifest)??null,o=(u==null?void 0:u.hasUpdate)??!1,N=!!f,A=N&&v!==f,W=!!(C&&!N&&C===(b==null?void 0:b.version));async function S(){if(!N){c(!0),F(null),k(null);try{const $=await Qn({notify:"always"});k(yt($.hasUpdate)),n&&$.hasUpdate&&$.manifest&&await O($.manifest.version)}catch($){k($ instanceof Error?$.message:s("settings.releaseCheckFailed"))}finally{c(!1)}}}async function O($){var ae;p(!0),k(s("settings.releaseDownloading"));try{const Q=await Gt();if(!Q.ok){k(Q.detail??s("settings.releaseDownloadFailed"));return}F(Q.version??$),k(za(((ae=Q.progress)==null?void 0:ae.percent)??null))}finally{p(!1)}}async function L(){if(!(!b||!o||N)){j(!0),k(null);try{const $=await zt();if(!$.ok){k($.detail??s("settings.releaseInstallFailed"));return}Kt(b.version),F(null),I(null),k(s("settings.releaseRestartRequired"))}catch($){k($ instanceof Error?$.message:s("settings.releaseInstallFailed"))}finally{j(!1)}}}async function G(){if(b!=null&&b.htmlUrl){d(!0);try{const $=await t.bridge.openExternal(b.htmlUrl);$.ok||k($.detail??s("settings.releasePageOpenFailed"))}catch($){k($ instanceof Error?$.message:s("settings.releasePageOpenFailed"))}finally{d(!1)}}}const H=r||w||h,B=!!(a&&b&&o&&!N),te=D??(a?N?s("settings.releaseRestartRequired"):u?yt(u.hasUpdate):null:s("settings.clientUpdateUnsupported"));return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-update-card",children:[e.jsxs("div",{className:"settings-update-summary",children:[e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.releaseCurrentVersion")}),e.jsx("strong",{className:"settings-update-value",children:x??s("settings.releaseUnknownVersion")})]}),e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.releaseTargetVersion")}),e.jsx("strong",{className:"settings-update-value",children:(b==null?void 0:b.version)??f??"-"})]})]}),te?e.jsx("p",{className:"settings-update-status","data-tone":Ka(o,te,N),children:te}):null,e.jsxs("div",{className:"settings-update-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:!a||H||N,onClick:S,children:r?s("settings.updateChecking"):s("settings.updateCheckAll")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!B||H,onClick:L,children:h?s("common.loading"):s("settings.releaseInstallNow")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:!(b!=null&&b.htmlUrl)||H||T,onClick:G,children:T?s("common.loading"):s("settings.releaseOpenPage")})]})]}),e.jsx(nn,{open:W,version:C,installing:h,onClose:()=>F(null),onConfirm:()=>{L()}}),e.jsx(Ga,{open:A,version:f,onClose:()=>I(f)})]})}function yt(t){return t?s("settings.releaseUpdateReady"):s("settings.releaseUpToDate")}function za(t){return t===null?s("settings.releaseDownloadedReady"):s("settings.releaseDownloadedReadyWithProgress",{percent:String(t)})}function Ka(t,a,n){return a===s("settings.clientUpdateUnsupported")?"neutral":a===s("settings.releaseCheckFailed")||a===s("settings.releaseInstallFailed")||a===s("settings.releaseDownloadFailed")?"danger":n||t?"warning":"success"}function Ga({open:t,version:a,onClose:n}){const[r,c]=l.useState(!1),[h,j]=l.useState(null);async function w(){c(!0),j(null);try{await Zn()}catch(p){j(p instanceof Error?p.message:s("settings.releaseRestartFailed")),c(!1)}}return e.jsx(Ae,{open:t,title:s("settings.releaseRestartDialogTitle"),description:s("settings.releaseRestartDialogDescription",{version:a??"-"}),size:"compact",layout:"confirm",dismissible:!r,footer:e.jsxs(ce,{children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:r,onClick:n,children:s("settings.releaseRestartLater")}),e.jsx("button",{className:"primary-button",type:"button",disabled:r,onClick:w,children:r?s("common.loading"):s("settings.releaseRestartConfirm")})]}),onClose:()=>{r||n()},children:e.jsx(X,{className:"settings-update-confirm-section",children:h?e.jsx("p",{className:"settings-update-status","data-tone":"danger",children:h}):null})})}function an(){const t=ts();return t.platform==="desktop"?e.jsx($a,{}):t.platform==="android"?e.jsx(Wa,{}):e.jsx("div",{className:"settings-update-card",children:e.jsx("p",{className:"settings-update-status","data-tone":"neutral",children:s("settings.clientUpdateUnsupported")})})}const Ja=1500,Qa=12e4;function ln(){const t=tt(L=>L.autoDownloadUpdate),a=ts(),n=Ss(L=>L.latestState),r=Ss(L=>L.pendingRestartVersion),[c,h]=l.useState(null),[j,w]=l.useState(null),[p,T]=l.useState(!1),[d,C]=l.useState(!1),[F,D]=l.useState(!1),[k,v]=l.useState(null),[I,u]=l.useState(null),f=(n==null?void 0:n.manifest)??null,x=(n==null?void 0:n.hasUpdate)??!1,b=!!(c!=null&&c.hasUpdate&&!c.restartRequired),o=b||!!(x&&f),N=!!(I&&!r&&I===(f==null?void 0:f.version)),A=p||d;async function W(){if(!r){T(!0),v(null),u(null);try{const L=await Yn({notify:"never"}),G=L.servicePackage;h(G),w((G==null?void 0:G.installTask)??null);const H=L.clientState;if(t&&(H!=null&&H.hasUpdate)&&H.manifest){const B=await Gt();B.ok&&u(B.version??H.manifest.version)}v(Xa(G,!!(H!=null&&H.hasUpdate),L.serviceError,L.clientError))}catch(L){v(L instanceof Error?L.message:s("settings.updateCheckFailed"))}finally{T(!1)}}}async function S(){if(!(!o||r)){C(!0),v(s("settings.updateInstallingSequential"));try{if(b&&(c!=null&&c.packageName)){const L=await Jt(c.packageName);w(L),v(s("settings.updateInstallingServerFirst"));const G=await Za(L);if(w(G),G.status!=="succeeded"){v(G.errorMessage??s("settings.serverInstallFailed"));return}}if(x&&f){v(s("settings.updateInstallingClientNext"));const L=await zt();if(!L.ok){v(L.detail??s("settings.releaseInstallFailed"));return}Kt(f.version),u(null),v(s("settings.releaseRestartRequired"));return}v(s("settings.serverInstallSucceeded"))}catch(L){v(L instanceof Error?L.message:s("settings.releaseInstallFailed"))}finally{C(!1)}}}async function O(){if(f!=null&&f.htmlUrl){D(!0);try{const L=await a.bridge.openExternal(f.htmlUrl);L.ok||v(L.detail??s("settings.releasePageOpenFailed"))}catch(L){v(L instanceof Error?L.message:s("settings.releasePageOpenFailed"))}finally{D(!1)}}}return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-update-card",children:[e.jsxs("div",{className:"settings-update-summary",children:[e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.serverCurrentVersion")}),e.jsx("strong",{className:"settings-update-value",children:(c==null?void 0:c.currentVersion)??"-"})]}),e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.serverTargetVersion")}),e.jsx("strong",{className:"settings-update-value",children:(c==null?void 0:c.latestVersion)??"-"})]}),e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.releaseCurrentVersion")}),e.jsx("strong",{className:"settings-update-value",children:(n==null?void 0:n.currentVersion)??s("settings.releaseUnknownVersion")})]}),e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.releaseTargetVersion")}),e.jsx("strong",{className:"settings-update-value",children:(f==null?void 0:f.version)??r??"-"})]})]}),j&&rn(j.status)?e.jsxs("div",{className:"settings-update-progress",role:"status","aria-label":s("settings.serverProgressLabel"),children:[e.jsx("div",{className:"settings-update-progress-track",children:e.jsx("span",{className:"settings-update-progress-bar",style:{width:j.status==="queued"?"20%":"65%"}})}),e.jsx("span",{className:"settings-update-progress-text",children:s("settings.serverProgressCurrentStage",{stage:j.status==="queued"?s("settings.serverProgressQueued"):s("settings.serverProgressInstalling")})}),e.jsx("span",{className:"settings-update-progress-hint",children:s("settings.serverProgressHint")})]}):null,I?e.jsx("p",{className:"settings-update-status","data-tone":"warning",children:s("settings.releaseDownloadedReady")}):null,k?e.jsx("p",{className:"settings-update-status","data-tone":o?"warning":"success",children:k}):null,e.jsxs("div",{className:"settings-update-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:A||!!r,onClick:W,children:p?s("settings.updateChecking"):s("settings.updateCheckAll")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!o||A||!!r,onClick:S,children:d?s("common.loading"):s("settings.updateInstallAll")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:!(f!=null&&f.htmlUrl)||A||F,onClick:O,children:F?s("common.loading"):s("settings.releaseOpenPage")})]})]}),e.jsx(nn,{open:N,version:I,installing:d,onClose:()=>u(null),onConfirm:()=>{u(null),S()}})]})}async function Za(t){let a=t;const n=Date.now();for(;rn(a.status);){if(Date.now()-n>Qa)return{...a,status:"timeout",errorMessage:s("settings.serverInstallTimeout")};await Ya(Ja),a=await Qt(a.taskId)}return a}function Ya(t){return new Promise(a=>{window.setTimeout(a,t)})}function rn(t){return t==="queued"||t==="running"}function Xa(t,a,n,r){const c=!!(t!=null&&t.hasUpdate);return(t==null?void 0:t.checkStatus)==="check_failed"||n?a?s("settings.updateClientReadyServiceCheckFailed"):(t==null?void 0:t.checkError)??n??s("settings.serverCheckFailed"):r?c?s("settings.updateServerReadyClientCheckFailed"):s("settings.updateCheckIncomplete"):c&&a?s("settings.updateBothReady"):c?s("settings.updateServerReadyOnly"):a?s("settings.updateClientReadyOnly"):s("settings.updateAllUpToDate")}const ei="https://github.com/SaladDay/cc-switch-cli",si="当前机器未安装 cc-switch-cli。这里集成的是 CC-Switch 的衍生 CLI 版本,不是 CC-Switch UI 版本。请先安装:",ti=/(https?:\/\/[^\s]+)/i;function cn(){const t=ss(o=>{var N;return((N=o.session)==null?void 0:N.accessToken)??null}),[a,n]=l.useState(null),[r,c]=l.useState(!0),[h,j]=l.useState(null),[w,p]=l.useState(null),[T,d]=l.useState(null),[C,F]=l.useState(!1),[D,k]=l.useState("codex");l.useEffect(()=>{let o=!0;if(!t){n(null),p(null),d(null),c(!1);return}return(async()=>{c(!0);try{const A=await gt();if(!o)return;n(A),p(null),k(W=>vt(A,W))}catch(A){if(!o)return;p(Us(A))}finally{o&&c(!1)}})(),()=>{o=!1}},[t]);async function v(){const o=await gt();n(o),p(null),k(N=>vt(o,N))}async function I(){if(t){j("refresh"),p(null),d(null);try{await v(),d(s("settings.modelManagementRefreshSuccess"))}catch(o){p(Us(o))}finally{j(null)}}}async function u(o,N){if(!t||N.isCurrent)return;const A=jt(o,N.id);j(A),p(null),d(null);try{const W=await ta({app:o,presetId:N.id});en(),n(S=>ni(S,W)),d(s("settings.modelManagementSwitchSuccess",{app:W.displayName,preset:W.currentPresetName??N.name}))}catch(W){p(Us(W))}finally{j(null)}}const f=(a==null?void 0:a.items)??[],x=f.find(o=>o.app===D)??f[0]??null,b=ii(f);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"settings-model-panel",children:e.jsxs("div",{className:"settings-release-card",children:[T?e.jsx("p",{className:"settings-release-status",children:T}):null,w?e.jsx("p",{className:"settings-release-status",children:w}):null,b?e.jsxs("section",{className:"settings-model-missing-state",children:[e.jsx("p",{className:"settings-model-missing-copy",children:b.message}),e.jsx("a",{className:"settings-tailscale-link settings-model-missing-link",href:b.url,rel:"noreferrer",target:"_blank",children:b.url})]}):f.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"settings-model-grid",children:f.map(o=>e.jsxs("section",{className:"settings-model-card",children:[e.jsxs("div",{className:"settings-model-card-main",children:[e.jsxs("div",{className:"settings-model-card-copy",children:[e.jsx("strong",{className:"settings-model-card-title",children:o.displayName}),e.jsx("span",{className:"settings-model-card-status","data-status":o.status,children:ai(o.status)})]}),e.jsxs("div",{className:"settings-model-value-line",children:[e.jsx("strong",{className:"settings-model-preset-value",children:o.currentPresetName??s("settings.modelManagementPresetMissing")}),e.jsx("strong",{className:"settings-model-current-value",children:o.currentModel??s("settings.modelManagementModelUnknown")})]})]}),o.statusText?e.jsx("p",{className:"settings-model-card-note",children:o.statusText}):null]},o.app))}),e.jsx("div",{className:"settings-model-panel-actions",children:e.jsx("button",{className:"secondary-button settings-model-open-action",type:"button",disabled:!t||r,onClick:()=>{F(!0)},children:s("settings.modelManagementOpenSwitcher")})})]}):e.jsx("div",{className:"settings-model-empty",children:s("settings.modelManagementOptionsEmpty")})]})}),e.jsxs(ms,{open:C&&!b,title:s("settings.modelManagementModalTitle"),description:s("settings.modelManagementModalDescription"),className:"settings-model-modal",headerActions:e.jsx("button",{className:"secondary-button",type:"button",disabled:!t||r||h!==null,onClick:()=>{I()},children:h==="refresh"?s("common.loading"):s("settings.modelManagementRefresh")}),onClose:()=>F(!1),children:[e.jsx("div",{className:"settings-model-tabs",role:"tablist","aria-label":s("settings.modelManagementTabsLabel"),children:f.map(o=>{const N=(x==null?void 0:x.app)===o.app;return e.jsx("button",{type:"button",role:"tab",className:"settings-model-tab","aria-selected":N,"data-active":N?"true":"false",onClick:()=>k(o.app),children:o.displayName},o.app)})}),x?e.jsxs("section",{className:"settings-model-modal-panel",children:[e.jsxs("div",{className:"settings-model-modal-summary",children:[e.jsxs("div",{className:"settings-model-modal-summary-row",children:[e.jsx("span",{children:s("settings.modelManagementCurrentProfile")}),e.jsx("strong",{children:x.currentPresetName??s("settings.modelManagementPresetMissing")})]}),e.jsxs("div",{className:"settings-model-modal-summary-row",children:[e.jsx("span",{children:s("settings.modelManagementCurrentModel")}),e.jsx("strong",{children:x.currentModel??s("settings.modelManagementModelUnknown")})]})]}),x.statusText?e.jsx("p",{className:"settings-model-modal-note",children:x.statusText}):null,x.options.length>0?e.jsx("div",{className:"settings-model-switcher-list",children:x.options.map(o=>{const N=jt(x.app,o.id);return e.jsxs("div",{className:"settings-model-switcher-item","data-current":o.isCurrent?"true":"false",children:[e.jsxs("div",{className:"settings-model-switcher-item-main",children:[e.jsx("strong",{children:o.name}),e.jsx("span",{children:o.model??s("settings.modelManagementModelUnknown")})]}),e.jsx("div",{className:"settings-model-switcher-item-actions",children:o.isCurrent?e.jsx("span",{className:"settings-model-card-status","data-status":"ready",children:s("settings.modelManagementCurrentTag")}):e.jsx("button",{className:"secondary-button settings-model-option-action",type:"button",disabled:r||h!==null||x.status!=="ready",onClick:()=>{u(x.app,o)},children:h===N?s("common.loading"):s("settings.modelManagementSwitchAction")})})]},`${x.app}:${o.id}`)})}):e.jsx("div",{className:"settings-model-empty",children:x.statusText??s("settings.modelManagementOptionsEmpty")})]}):e.jsx("div",{className:"settings-model-empty",children:s("settings.modelManagementOptionsEmpty")})]})]})}function jt(t,a){return`switch:${t}:${a}`}function ni(t,a){return t&&{...t,scannedAt:new Date().toISOString(),items:t.items.map(n=>n.app===a.app?a:n)}}function vt(t,a){var r;return t.items.some(c=>c.app===a)?a:((r=t.items[0])==null?void 0:r.app)??"codex"}function ai(t){switch(t){case"unconfigured":return s("settings.modelManagementStatusUnconfigured");case"unavailable":return s("settings.modelManagementStatusUnavailable");case"error":return s("settings.modelManagementStatusError");default:return s("settings.modelManagementStatusReady")}}function Us(t){return t instanceof Re?t.message||s("settings.modelManagementLoadFailed"):t instanceof Error?t.message:s("settings.modelManagementLoadFailed")}function ii(t){var r,c,h;if(t.length===0||!t.every(j=>j.status==="unavailable"&&!j.cliAvailable&&!!j.statusText))return null;const n=((h=(((c=(r=t[0])==null?void 0:r.statusText)==null?void 0:c.trim())??"").match(ti))==null?void 0:h[1])??ei;return{message:si,url:n}}function on({triggerClassName:t="settings-button",triggerLabel:a,mobile:n=!1}){const r=ss(S=>{var O;return((O=S.session)==null?void 0:O.accessToken)??null}),c=ss(S=>{var O;return((O=S.session)==null?void 0:O.user)??null}),[h,j]=l.useState(!1),[w,p]=l.useState(!1),[T,d]=l.useState(null),[C,F]=l.useState(null),[D,k]=l.useState(null),[v,I]=l.useState(null),[u,f]=l.useState(null),[x,b]=l.useState(bs(null));l.useEffect(()=>{C&&b(bs(C))},[C]),l.useEffect(()=>{let S=!0;if(!h)return;if(!r){F(null),k(null),f(null),I(null),p(!1);return}return(async()=>{p(!0),f(null);try{const[L,G]=await Promise.all([na(),As()]);if(!S)return;F(L),k(G)}catch(L){if(!S)return;f(Os(L))}finally{S&&p(!1)}})(),()=>{S=!1}},[r,h]);function o(){j(!1),I(null),f(null),b(bs(C))}async function N(){if(r){d("check"),f(null),I(null);try{const S=await As();k(S),I(s("settings.skillOnlyOfficeCheckSuccess"))}catch(S){f(Os(S))}finally{d(null)}}}async function A(){if(r){d("save"),f(null),I(null);try{const S=await aa({enabled:x.enabled,serverUrl:x.serverUrl,publicBaseUrl:x.publicBaseUrl,callbackBaseUrl:x.callbackBaseUrl,userDisplayName:x.userDisplayName,userAvatarUrl:x.userAvatarUrl,jwtSecret:x.jwtSecret,clearJwtSecret:x.clearJwtSecret}),O=await As();F(S),k(O),b(bs(S)),I(s("settings.skillOnlyOfficeSaveSuccess"))}catch(S){f(Os(S))}finally{d(null)}}}const W=e.jsxs("div",{className:"settings-onlyoffice-modal-layout",children:[e.jsx(X,{heading:s("settings.skillOnlyOfficeStatusLabel"),children:e.jsx("div",{className:"settings-onlyoffice-metrics",role:"list","aria-label":s("settings.skillOnlyOfficeStatusLabel"),children:di(D).map(S=>e.jsxs("div",{className:"settings-onlyoffice-metric-card","data-tone":S.tone,role:"listitem",tabIndex:0,children:[e.jsx("span",{className:"settings-onlyoffice-metric-label",children:S.label}),e.jsx("strong",{className:"settings-onlyoffice-metric-value",children:S.value}),e.jsx("div",{className:"settings-onlyoffice-metric-tooltip",role:"note",children:S.detail})]},S.key))})}),e.jsxs(X,{heading:s("settings.skillOnlyOfficeSectionTitle"),children:[e.jsx(se,{label:s("settings.skillOnlyOfficeEnabledLabel"),children:e.jsxs("div",{className:"settings-onlyoffice-switch-field",children:[e.jsx(de,{checked:x.enabled,label:s("settings.skillOnlyOfficeEnabledLabel"),semanticRole:"switch",onChange:S=>{b(O=>({...O,enabled:S}))}}),e.jsx("span",{className:"settings-onlyoffice-switch-caption",children:x.enabled?s("common.enabled"):s("settings.skillOnlyOfficeStatusDisabled")})]})}),e.jsx(se,{label:s("settings.skillOnlyOfficeServerUrlLabel"),htmlFor:"onlyoffice-server-url",children:e.jsx("input",{id:"onlyoffice-server-url",className:"settings-text-input",value:x.serverUrl,onChange:S=>{b(O=>({...O,serverUrl:S.target.value}))},placeholder:s("settings.skillOnlyOfficeServerUrlPlaceholder")})}),e.jsx(se,{label:s("settings.skillOnlyOfficePublicBaseUrlLabel"),htmlFor:"onlyoffice-public-base-url",children:e.jsx("input",{id:"onlyoffice-public-base-url",className:"settings-text-input",value:x.publicBaseUrl,onChange:S=>{b(O=>({...O,publicBaseUrl:S.target.value}))},placeholder:s("settings.skillOnlyOfficePublicBaseUrlPlaceholder")})}),e.jsx(se,{label:s("settings.skillOnlyOfficeCallbackBaseUrlLabel"),htmlFor:"onlyoffice-callback-base-url",children:e.jsx("input",{id:"onlyoffice-callback-base-url",className:"settings-text-input",value:x.callbackBaseUrl,onChange:S=>{b(O=>({...O,callbackBaseUrl:S.target.value}))},placeholder:s("settings.skillOnlyOfficeCallbackBaseUrlPlaceholder")})}),e.jsx(se,{label:s("settings.skillOnlyOfficeUserDisplayNameLabel"),description:s("settings.skillOnlyOfficeUserDisplayNameDescription",{username:(c==null?void 0:c.username)??"-"}),htmlFor:"onlyoffice-user-display-name",children:e.jsx("input",{id:"onlyoffice-user-display-name",className:"settings-text-input",value:x.userDisplayName,onChange:S=>{b(O=>({...O,userDisplayName:S.target.value}))},placeholder:s("settings.skillOnlyOfficeUserDisplayNamePlaceholder")})}),e.jsx(se,{label:s("settings.skillOnlyOfficeUserAvatarUrlLabel"),description:s("settings.skillOnlyOfficeUserAvatarUrlDescription"),htmlFor:"onlyoffice-user-avatar-url",children:e.jsx("input",{id:"onlyoffice-user-avatar-url",className:"settings-text-input",value:x.userAvatarUrl,onChange:S=>{b(O=>({...O,userAvatarUrl:S.target.value}))},placeholder:s("settings.skillOnlyOfficeUserAvatarUrlPlaceholder")})}),e.jsx(se,{label:s("settings.skillOnlyOfficeJwtSecretLabel"),htmlFor:"onlyoffice-jwt-secret",children:e.jsx("input",{id:"onlyoffice-jwt-secret",className:"settings-text-input",value:x.jwtSecret,onChange:S=>{b(O=>({...O,jwtSecret:S.target.value,clearJwtSecret:!1}))},placeholder:C!=null&&C.jwtSecretConfigured?s("settings.skillOnlyOfficeJwtSecretKeepPlaceholder"):s("settings.skillOnlyOfficeJwtSecretPlaceholder")})}),C!=null&&C.jwtSecretConfigured?e.jsx(se,{label:s("settings.skillOnlyOfficeClearJwtSecretLabel"),children:e.jsxs("div",{className:"settings-onlyoffice-switch-field",children:[e.jsx(de,{checked:x.clearJwtSecret,label:s("settings.skillOnlyOfficeClearJwtSecretLabel"),semanticRole:"switch",onChange:S=>{b(O=>({...O,clearJwtSecret:S}))}}),e.jsx("span",{className:"settings-onlyoffice-switch-caption",children:x.clearJwtSecret?s("common.enabled"):s("common.disabled")})]})}):null]}),v?e.jsx("p",{className:"settings-release-status",children:v}):null,u?e.jsx("p",{className:"settings-release-status",children:u}):null,e.jsxs(ce,{className:"settings-onlyoffice-modal-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:o,children:s("common.cancel")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:w||T!==null,onClick:()=>{N()},children:T==="check"?s("settings.opencliLoading"):s("settings.skillOnlyOfficeCheckAction")}),e.jsx("button",{className:"primary-button",type:"button",disabled:w||T!==null,onClick:()=>{A()},children:T==="save"?s("butlerSettingsSaving"):s("settings.skillOnlyOfficeSaveAction")})]})]});return e.jsxs(e.Fragment,{children:[e.jsx("button",{className:t,type:"button",onClick:()=>{j(!0)},children:a??s("settings.skillOnlyOfficeOpenSettingsAction")}),n?e.jsx(Le,{open:h,title:s("settings.skillOnlyOfficeModalTitle"),description:s("settings.skillOnlyOfficeModalDescription"),height:"full",kind:"form",showHandle:!0,onClose:o,children:W}):e.jsx(Ae,{open:h,title:s("settings.skillOnlyOfficeModalTitle"),description:s("settings.skillOnlyOfficeModalDescription"),size:"regular",layout:"form",className:"settings-onlyoffice-modal",bodyClassName:"settings-onlyoffice-modal-body",onClose:o,children:W})]})}function bs(t){return{enabled:(t==null?void 0:t.enabled)??!1,serverUrl:(t==null?void 0:t.serverUrl)??"",publicBaseUrl:(t==null?void 0:t.publicBaseUrl)??"",callbackBaseUrl:(t==null?void 0:t.callbackBaseUrl)??"",userDisplayName:(t==null?void 0:t.userDisplayName)??"",userAvatarUrl:(t==null?void 0:t.userAvatarUrl)??"",jwtSecret:"",clearJwtSecret:!1}}function li(t){switch(t==null?void 0:t.state){case"ready":return s("settings.skillOnlyOfficeStatusReady");case"warning":return s("settings.skillOnlyOfficeStatusWarning");case"error":return s("settings.skillOnlyOfficeStatusError");case"misconfigured":return s("settings.skillOnlyOfficeStatusMisconfigured");case"disabled":return s("settings.skillOnlyOfficeStatusDisabled");default:return s("settings.skillOnlyOfficeStatusUnknown")}}function ri(t){switch(t){case"ready":return"success";case"warning":case"misconfigured":return"warning";case"error":return"danger";case"disabled":default:return"default"}}function ci(t){switch(t){case"pass":return s("settings.skillOnlyOfficeCheckPass");case"warn":return s("settings.skillOnlyOfficeCheckWarn");case"fail":return s("settings.skillOnlyOfficeCheckFail");case"skip":default:return s("settings.skillOnlyOfficeCheckSkip")}}function oi(t){switch(t){case"pass":return"success";case"warn":return"warning";case"fail":return"danger";case"skip":default:return"default"}}function di(t){const a=[{key:"summary",label:s("settings.skillOnlyOfficeStatusLabel"),value:li(t),detail:(t==null?void 0:t.summary)??s("settings.skillOnlyOfficeStatusUnknown"),tone:ri(t==null?void 0:t.state)}];for(const n of(t==null?void 0:t.checks)??[])a.push({key:n.key,label:n.label,value:ci(n.status),detail:n.detail,tone:oi(n.status)});return a}function Os(t){return t instanceof Re||t instanceof Error&&t.message.trim().length>0?t.message:s("settings.skillLoadError")}const ui=[{key:"streamingOutput",labelKey:"settings.providerManagementCapabilityStreaming"},{key:"toolCalls",labelKey:"settings.providerManagementCapabilityToolCalls"},{key:"assistantService",labelKey:"settings.providerManagementCapabilityAssistant"},{key:"sessionFork",labelKey:"settings.providerManagementCapabilityFork"},{key:"skillUsage",labelKey:"settings.providerManagementCapabilitySkill"}];function dn(){const t=hs(),a=ss(o=>{var N;return((N=o.session)==null?void 0:N.accessToken)??null}),[n,r]=l.useState(!1),[c,h]=l.useState(null),[j,w]=l.useState(null),[p,T]=l.useState(null),{items:d,loading:C}=ia(n&&!!a),F=ui.map(o=>({...o,label:s(o.labelKey)}));l.useEffect(()=>{a||(r(!1),h(null),w(null),T(null))},[a]);async function D(){if(a){T(null);try{await ca(!0)}catch(o){T(Fs(o,"load"))}}}function k(){r(!0),w(null),T(null),a&&D()}async function v(o){if(!a)return;const N=!o.enabled;h(o.provider),T(null),w(null);try{await ra(o.provider,N),en(),w(N?s("settings.providerManagementEnableSuccess",{provider:o.displayName}):s("settings.providerManagementDisableSuccess",{provider:o.displayName}))}catch(A){T(Fs(A,"save"))}h(null)}async function I(){if(a){T(null),w(null);try{await la(),w(s("settings.providerManagementRefreshSuccess"))}catch(o){T(Fs(o,"load"))}}}const u=d??[],f=u.filter(o=>o.enabled).length,x=u.filter(o=>!o.enabled).length,b=e.jsxs("div",{className:"settings-provider-modal-layout",children:[j?e.jsx("p",{className:"settings-provider-status",children:j}):null,p?e.jsx("p",{className:"settings-provider-error",children:p}):null,e.jsxs("div",{className:"settings-provider-summary-grid","aria-label":s("settings.providerManagementSummaryTitle"),children:[e.jsx(Rs,{label:s("settings.providerManagementSummaryEnabled"),value:String(f)}),e.jsx(Rs,{label:s("settings.providerManagementSummaryDisabled"),value:String(x)}),e.jsx(Rs,{label:s("settings.providerManagementSummaryTotal"),value:String(u.length)})]}),e.jsxs(X,{heading:s("settings.providerManagementMatrixTitle"),description:s("settings.providerManagementMatrixDescription"),className:"settings-provider-modal-section",children:[C&&u.length===0?e.jsx(le,{compact:!0,title:s("settings.providerManagementLoading")}):null,!C&&u.length===0?e.jsx(le,{title:s("settings.providerManagementEmpty"),description:s("settings.providerManagementEmptyDescription"),action:e.jsx("button",{type:"button",className:"secondary-button",disabled:!a,onClick:()=>{I()},children:s("settings.providerManagementRefresh")})}):null,u.length>0?e.jsx("div",{className:"settings-provider-matrix-shell",children:e.jsxs("table",{className:"settings-provider-matrix-table",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"settings-provider-matrix-provider-col"}),F.map(o=>e.jsx("col",{className:"settings-provider-matrix-capability-col"},o.key)),e.jsx("col",{className:"settings-provider-matrix-status-col"}),e.jsx("col",{className:"settings-provider-matrix-toggle-col"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:s("settings.providerManagementTableProvider")}),F.map(o=>e.jsx("th",{scope:"col",children:o.label},o.key)),e.jsx("th",{scope:"col",children:s("settings.providerManagementTableStatus")}),e.jsx("th",{scope:"col",children:s("settings.providerManagementTableEnabled")})]})}),e.jsx("tbody",{children:u.map(o=>e.jsxs("tr",{children:[e.jsx("th",{scope:"row",className:"settings-provider-matrix-provider-cell",children:e.jsx("div",{className:"settings-provider-matrix-provider",children:e.jsxs("div",{className:"settings-provider-matrix-provider-heading",children:[e.jsx("strong",{className:"settings-provider-matrix-provider-name",children:o.displayName}),e.jsx(re,{tone:pi(o.installState),children:hi(o)})]})})}),F.map(N=>e.jsx("td",{className:"settings-provider-matrix-capability-cell",children:e.jsx(gi,{enabled:o.productCapabilities[N.key],label:N.label})},N.key)),e.jsx("td",{className:"settings-provider-matrix-status-cell",children:e.jsx(re,{tone:o.enabled?"success":"default",children:o.enabled?s("settings.providerManagementStatusEnabled"):s("settings.providerManagementStatusDisabled")})}),e.jsx("td",{className:"settings-provider-matrix-toggle-cell",children:e.jsxs("label",{className:"settings-provider-matrix-switch",children:[e.jsx("span",{className:"settings-provider-visually-hidden",children:s("settings.providerManagementToggleLabel",{provider:o.displayName})}),e.jsx("input",{type:"checkbox",checked:o.enabled,disabled:c===o.provider,"aria-label":s("settings.providerManagementToggleLabel",{provider:o.displayName}),onChange:()=>{v(o)}}),e.jsx("span",{className:"settings-provider-matrix-switch-track","aria-hidden":"true",children:e.jsx("span",{className:"settings-provider-matrix-switch-thumb"})})]})})]},o.provider))})]})}):null]}),e.jsx(ce,{className:"settings-provider-modal-actions",children:e.jsx("button",{type:"button",className:"secondary-button",disabled:!a||C||c!==null,onClick:()=>{I()},children:C?s("common.loading"):s("settings.providerManagementRefresh")})})]});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-provider-entrypoint",children:[a?null:e.jsx("p",{className:"settings-provider-entrypoint-note",children:s("settings.providerManagementLoginRequired")}),e.jsx("button",{type:"button",className:"settings-button",disabled:!a,onClick:k,children:s("settings.providerManagementManageAction")})]}),t.isMobile?e.jsx(Le,{open:n,title:s("settings.providerManagementModalTitle"),height:"three-quarter",kind:"form",showHandle:!0,cardClassName:"settings-provider-modal",bodyClassName:"settings-provider-modal-body",onClose:()=>r(!1),children:b}):e.jsx(Ae,{open:n,title:s("settings.providerManagementModalTitle"),className:"settings-provider-modal",size:"xwide",layout:"list",bodyClassName:"settings-provider-modal-body",onClose:()=>r(!1),children:b})]})}function Rs({label:t,value:a}){return e.jsxs("div",{className:"settings-provider-summary-card",children:[e.jsx("span",{children:t}),e.jsx("strong",{children:a})]})}function gi({enabled:t,label:a}){const n=t?s("settings.providerManagementCapabilityAvailable"):s("settings.providerManagementCapabilityUnavailable");return t?e.jsx("span",{className:"settings-provider-matrix-capability","aria-label":`${a}:${n}`,role:"img",children:e.jsx("span",{className:"settings-provider-matrix-capability-check","aria-hidden":"true"})}):e.jsx("span",{className:"settings-provider-visually-hidden",children:`${a}:${n}`})}function mi(t){switch(t){case"ready":return s("settings.providerManagementInstallReady");case"missing":return s("settings.providerManagementInstallMissing");default:return s("settings.providerManagementInstallUnknown")}}function hi(t){return t.installState==="ready"&&t.version?t.version:mi(t.installState)}function pi(t){switch(t){case"ready":return"success";case"missing":return"warning";default:return"default"}}function Fs(t,a){return t instanceof Re?t.message:a==="save"?s("settings.providerManagementSaveFailed"):s("settings.providerManagementLoadFailed")}async function bi(){return await J.request("/api/channels/platforms")}async function fi(){return await J.request("/api/channels/accounts")}async function xi(t){return await J.request("/api/channels/accounts",{method:"POST",body:JSON.stringify(t)})}async function yi(t){return await J.request(`/api/channels/accounts/${t}`,{method:"DELETE"})}async function ji(t){return await J.request(`/api/channels/accounts/${t}/probe`,{method:"POST"})}async function vi(t){return await J.request(`/api/channels/accounts/${t}/poll`,{method:"POST"})}async function Ni(t){return await J.request(`/api/channels/accounts/${t}/wechat-claw/start-login`,{method:"POST"})}async function Si(t){return await J.request(`/api/channels/accounts/${t}/wechat-claw/refresh-login`,{method:"POST"})}async function wi(t){return await J.request(`/api/channels/accounts/${t}/wechat-claw/logout`,{method:"POST"})}async function Ti(t,a=20){return await J.request(`/api/channels/accounts/${t}/threads?limit=${a}`)}async function ki(t,a=20){return await J.request(`/api/channels/accounts/${t}/events?limit=${a}`)}async function Ci(t,a=20){return await J.request(`/api/channels/accounts/${t}/deliveries?limit=${a}`)}function un({code:t,...a}){switch(t){case"wechat-claw":return e.jsx(Mi,{...a});case"telegram":return e.jsx(Di,{...a});default:return e.jsx(Ai,{...a})}}function Di(t){return e.jsxs("svg",{viewBox:"0 0 64 64",fill:"none",...t,children:[e.jsx("circle",{cx:"32",cy:"32",r:"30",fill:"#2AABEE"}),e.jsx("path",{fill:"#fff",d:"M47.8 18.8 15.6 31.2c-2.2.9-2.2 2.1-.4 2.6l8.3 2.6 19.2-12.1c.9-.6 1.8-.3 1.1.4L28.3 38.7l-.6 8.6c.9 0 1.3-.4 1.9-.9l4-3.9 8.3 6.1c1.6.9 2.7.4 3.1-1.5l5.4-25.4c.6-2.3-.9-3.4-2.6-2.9Z"})]})}function Mi(t){return e.jsxs("svg",{viewBox:"0 0 64 64",fill:"none",...t,children:[e.jsx("rect",{width:"64",height:"64",rx:"18",fill:"#07C160"}),e.jsx("path",{fill:"#fff",d:"M27.5 18c-8 0-14.5 5.6-14.5 12.4 0 3.8 2 7.3 5.4 9.6l-1.7 5 5.6-2.8c1.7.4 3.4.6 5.2.6 8 0 14.5-5.6 14.5-12.4S35.5 18 27.5 18Zm-5.1 10.6a1.9 1.9 0 1 1 0 3.9 1.9 1.9 0 0 1 0-3.9Zm10.2 0a1.9 1.9 0 1 1 0 3.9 1.9 1.9 0 0 1 0-3.9Z"}),e.jsx("path",{fill:"#E7FFF1",d:"M44 28.7c-5.2 0-9.4 3.7-9.4 8.2 0 4.6 4.2 8.2 9.4 8.2 1.1 0 2.2-.2 3.3-.5l3.7 1.8-1.1-3.3a8 8 0 0 0 3.5-6.2c0-4.5-4.2-8.2-9.4-8.2Zm-3.3 6.5a1.3 1.3 0 1 1 0 2.7 1.3 1.3 0 0 1 0-2.7Zm6.6 0a1.3 1.3 0 1 1 0 2.7 1.3 1.3 0 0 1 0-2.7Z"}),e.jsx("path",{fill:"#0E9B53",d:"M42.5 19.2c4 1.5 6.8 4.4 7.9 8.1-1.8-.8-3.9-1.3-6.1-1.3-1.8 0-3.6.3-5.1.8.9-3.1 1.9-5.2 3.3-7.6Z"})]})}function Ai(t){return e.jsxs("svg",{viewBox:"0 0 64 64",fill:"none",...t,children:[e.jsx("rect",{width:"64",height:"64",rx:"18",fill:"#1F2937"}),e.jsx("path",{fill:"#fff",d:"M20 22.5A6.5 6.5 0 0 1 26.5 16h11A6.5 6.5 0 0 1 44 22.5v12A6.5 6.5 0 0 1 37.5 41H30l-7.4 6.2c-1 .8-2.6.1-2.6-1.2V22.5Z"})]})}const Pi=["codex","claude-code"],Ei=["active","disabled","degraded"],us="polling",Li=`{
|
|
2
|
+
}`,lt={"wechat-claw":[],telegram:[{key:"botToken",labelKey:"settings.channelsConfigFieldTelegramBotToken",descriptionKey:"settings.channelsConfigFieldTelegramBotTokenDescription",placeholderKey:"settings.channelsConfigFieldTelegramBotTokenPlaceholder",type:"password",required:!0}]},Ii={};function gn(){const t=hs(),a=ss(i=>{var V;return((V=i.session)==null?void 0:V.accessToken)??null}),[n,r]=l.useState(!1),[c,h]=l.useState(!1),[j,w]=l.useState([]),[p,T]=l.useState([]),[d,C]=l.useState(!1),[F,D]=l.useState(!1),[k,v]=l.useState(null),[I,u]=l.useState(null),[f,x]=l.useState(null),[b,o]=l.useState(null),[N,A]=l.useState(null),[W,S]=l.useState("platform"),[O,L]=l.useState(null),[G,H]=l.useState(null),[B,te]=l.useState(()=>fs()),[$,ae]=l.useState([]),[Q,U]=l.useState([]),[z,M]=l.useState([]),m=l.useMemo(()=>p.find(i=>i.id===O)??null,[p,O]),q=l.useMemo(()=>j.find(i=>i.code===B.platformCode)??null,[B.platformCode,j]),R=l.useMemo(()=>B.platformCode?lt[B.platformCode]??[]:[],[B.platformCode]),ge=l.useMemo(()=>new Set(p.map(i=>i.platformCode)).size,[p]),me=l.useMemo(()=>p.filter(i=>i.status==="active").length,[p]),Z=(q==null?void 0:q.code)==="wechat-claw",be=(m==null?void 0:m.platformCode)==="wechat-claw",P=l.useMemo(()=>m?Bi(m):null,[m]),_=(P==null?void 0:P.loginStatus)==="active";l.useEffect(()=>{a||(r(!1),h(!1),w([]),T([]),C(!1),D(!1),v(null),u(null),x(null),o(null),A(null),S("platform"),L(null),H(null),te(fs()),ae([]),U([]),M([]))},[a]),l.useEffect(()=>{(!O||G!==O)&&H(null)},[O,G]),l.useEffect(()=>{!n||!a||ee()},[a,n]),l.useEffect(()=>{if(!n||!a||!O){ae([]),U([]),M([]);return}ue(O)},[a,O,n]);async function ee(i={}){if(a){C(!0),o(null);try{const[V,ie]=await Promise.all([bi(),fi()]);w(V),T(ie),O&&!ie.some(_e=>_e.id===O)&&(L(null),ae([]),U([]),M([])),i.showSuccess&&x(s("settings.channelsRefreshSuccess"))}catch(V){o(Ke(V,"loadOverview"))}finally{C(!1)}}}async function ue(i){if(a){D(!0),o(null);try{const[V,ie,_e]=await Promise.all([Ti(i),ki(i),Ci(i)]);if(O!==i)return;ae(V),U(ie),M(_e)}catch(V){o(Ke(V,"loadDetails"))}finally{D(!1)}}}function fe(){r(!0),x(null),o(null)}function ke(){r(!1),h(!1),H(null)}function xe(){u(null),A(null),S("platform"),te(fs())}function De(){xe(),h(!0)}function ye(){h(!1),xe()}function Pe(i){L(i.id),H(null),x(null),o(null)}function je(i){S(i==="wechat-claw"?"binding":"config"),te(V=>fs({platformCode:i,displayName:V.platformCode===i?V.displayName:"",providerId:V.providerId,status:V.status})),A(null)}function Me(i,V){te(ie=>({...ie,configValues:{...ie.configValues,[i]:V}}))}function Ze(){const i=mn(B,q);if(!i.ok){A(i.errorText);return}S("binding"),A(null)}async function Fe(){if(!a)return;const i=Vi(B,q);if(!i.ok){A(i.errorText);return}u("save"),A(null),x(null);try{const V=await xi(i.input);T(ie=>[V,...ie]),L(V.id),ye(),x(s("settings.channelsCreateSuccess",{account:V.displayName}))}catch(V){A(Ke(V,"save"))}finally{u(null)}}async function Ye(){if(!(!a||!O)){v("probe"),o(null),x(null);try{const i=await ji(O);T(V=>_s(V,i.account)),x(i.detail),await ue(O)}catch(i){o(Ke(i,"probe"))}finally{v(null)}}}async function Ie(){if(!(!a||!O)){v("poll"),o(null),x(null);try{const i=await vi(O);T(V=>_s(V,i.account)),x(i.detail),await ue(O)}catch(i){o(Ke(i,"poll"))}finally{v(null)}}}async function Ne(i){if(!a||!O||!be)return;v(i==="start"?"wechat-start-login":i==="refresh"?"wechat-refresh-login":"wechat-logout"),o(null),x(null);try{let ie;i==="start"?ie=await Ni(O):i==="refresh"?ie=await Si(O):ie=await wi(O),Ue(ie.account),x(ie.detail)}catch(ie){o(Ke(ie,i))}finally{v(null)}}async function Y(){if(!(!a||!m)){v("remove-account"),o(null),x(null);try{const i=await yi(m.id);T(V=>V.filter(ie=>ie.id!==i.accountId)),O===i.accountId&&(L(null),ae([]),U([]),M([])),H(null),x(s("settings.channelsRemoveSuccess",{account:i.displayName}))}catch(i){o(Ke(i,"remove"))}finally{v(null)}}}function Ue(i){T(V=>_s(V,i))}async function Be(){v("refresh"),x(null),o(null);try{await ee({showSuccess:!0})}finally{v(null)}}const we=e.jsxs("div",{className:"settings-channels-summary-grid","aria-label":s("settings.channelsSummaryTitle"),children:[e.jsx(Bs,{label:s("settings.channelsSummaryAccounts"),value:String(p.length)}),e.jsx(Bs,{label:s("settings.channelsSummaryActive"),value:String(me)}),e.jsx(Bs,{label:s("settings.channelsSummaryPlatforms"),value:String(ge)})]}),We=e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:De,children:s("settings.channelsAddAccountAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:d||k!==null,onClick:()=>{Be()},children:k==="refresh"?s("settings.channelsActionPending"):s("settings.channelsRefresh")})]}),$e=!be||_,Se=m!==null&&G===m.id,ze=e.jsxs("div",{className:"settings-channels-modal-layout",children:[N?e.jsx("p",{className:"settings-channels-error",children:N}):null,e.jsxs(X,{heading:s("settings.channelsWizardTitle"),description:s("settings.channelsWizardCreateDescription"),children:[e.jsx(Ui,{currentStep:W}),W==="platform"?e.jsxs(e.Fragment,{children:[d&&j.length===0?e.jsx(le,{compact:!0,title:s("settings.channelsLoading")}):null,!d&&j.length===0?e.jsx(le,{title:s("settings.channelsPlatformsEmpty"),description:s("settings.channelsPlatformsEmptyDescription")}):null,j.length>0?e.jsx("div",{className:"settings-channels-platform-grid",children:j.map(i=>e.jsx("button",{className:"settings-channels-platform-card",type:"button","aria-pressed":B.platformCode===i.code,"data-selected":B.platformCode===i.code?"true":void 0,onClick:()=>je(i.code),children:e.jsxs("div",{className:"settings-channels-platform-card-top",children:[e.jsxs("div",{className:"settings-channels-platform-card-brand",children:[e.jsx("div",{className:"settings-channels-platform-card-logo",children:e.jsx(un,{code:i.code,width:40,height:40,"aria-hidden":"true"})}),e.jsxs("div",{className:"settings-channels-platform-card-copy",children:[e.jsx("strong",{children:i.displayName}),e.jsx("span",{children:s("settings.channelsPlatformSummary",{modes:Xe(us),multiSession:gs(i.multiSessionSupportLevel)})})]})]}),e.jsx(re,{tone:i.multiSessionSupportLevel==="supported"?"success":"warning",children:gs(i.multiSessionSupportLevel)})]})},i.code))}):null,e.jsx(ce,{children:e.jsx("button",{className:"primary-button",type:"button",disabled:!q,onClick:()=>{q&&S("config")},children:s("settings.channelsWizardNextToConfig")})})]}):null,W==="config"?e.jsxs(e.Fragment,{children:[q?e.jsx(Oi,{platformCapability:q}):e.jsx(le,{compact:!0,title:s("settings.channelsValidationPlatform"),description:s("settings.channelsWizardSelectPlatformHint")}),q?e.jsxs(e.Fragment,{children:[e.jsx(Fi,{platformCode:q.code}),e.jsx(Ri,{platformCode:q.code}),R.length>0?e.jsx("div",{className:"settings-channels-form-grid",children:R.map(i=>e.jsx(se,{label:s(i.labelKey),description:s(i.descriptionKey),htmlFor:`channels-create-config-${i.key}`,children:e.jsx("input",{id:`channels-create-config-${i.key}`,className:"settings-text-input",type:i.type??"text",placeholder:s(i.placeholderKey),value:B.configValues[i.key]??"",onChange:V=>Me(i.key,V.target.value)})},i.key))}):null,e.jsxs("details",{className:"settings-channels-advanced-config",children:[e.jsx("summary",{children:s("settings.channelsAdvancedConfigTitle")}),e.jsx("p",{className:"settings-channels-inline-note",children:s("settings.channelsAdvancedConfigDescription")}),e.jsx(se,{className:"settings-channels-form-field-wide",label:s("settings.channelsFieldConfig"),htmlFor:"channels-create-config-advanced",children:e.jsx("textarea",{id:"channels-create-config-advanced",className:"settings-channels-textarea",rows:8,value:B.advancedConfigText,onChange:i=>{te(V=>({...V,advancedConfigText:i.target.value}))}})})]})]}):null,e.jsxs(ce,{align:"between",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>S("platform"),children:s("settings.channelsWizardBackToPlatform")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!q,onClick:Ze,children:s("settings.channelsWizardNextToBinding")})]})]}):null,W==="binding"?e.jsxs(e.Fragment,{children:[q?e.jsxs("div",{className:"settings-channels-detail-grid",children:[e.jsx(Ce,{label:s("settings.channelsDetailPlatform"),value:q.displayName}),e.jsx(Ce,{label:s("settings.channelsDetailConnectionMode"),value:Xe(us)}),e.jsx(Ce,{label:s("settings.channelsWizardBindingSummary"),value:gs(q.multiSessionSupportLevel)})]}):null,e.jsxs("div",{className:"settings-channels-form-grid",children:[e.jsx(se,{label:s("settings.channelsFieldDisplayName"),description:Z?s("settings.channelsWechatCreateDescription"):void 0,htmlFor:"channels-create-display-name",children:e.jsx("input",{id:"channels-create-display-name",className:"settings-text-input",placeholder:s("settings.channelsFieldDisplayNamePlaceholder"),value:B.displayName,onChange:i=>{te(V=>({...V,displayName:i.target.value}))}})}),e.jsx(se,{label:s("settings.channelsFieldProvider"),description:s("settings.channelsFieldProviderDescription"),htmlFor:"channels-create-provider",children:e.jsx("select",{id:"channels-create-provider",className:"settings-select",value:B.providerId,onChange:i=>{te(V=>({...V,providerId:i.target.value}))},children:Pi.map(i=>e.jsx("option",{value:i,children:xs(i)},i))})}),e.jsx(se,{label:s("settings.channelsFieldStatus"),description:s("settings.channelsFieldStatusDescription"),htmlFor:"channels-create-status",children:e.jsx("select",{id:"channels-create-status",className:"settings-select",value:B.status,onChange:i=>{te(V=>({...V,status:i.target.value}))},children:Ei.map(i=>e.jsx("option",{value:i,children:Vs(i)},i))})}),e.jsx(se,{label:s("settings.channelsFieldConnectionMode"),description:s("settings.channelsFieldConnectionModeDescription"),children:e.jsxs("div",{className:"settings-channels-fixed-field",children:[e.jsx("strong",{children:Xe(us)}),e.jsx("span",{children:s("settings.channelsConnectionModeFixedHint")})]})})]}),e.jsxs(ce,{align:"between",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>S(Z?"platform":"config"),children:Z?s("settings.channelsWizardBackToPlatform"):s("settings.channelsWizardBackToConfig")}),e.jsx("button",{className:"primary-button",type:"button",disabled:I==="save",onClick:()=>{Fe()},children:I==="save"?s("settings.channelsActionPending"):s("settings.channelsCreateAction")})]})]}):null]})]}),Ee=e.jsxs("div",{className:"settings-channels-modal-layout",children:[f?e.jsx("p",{className:"settings-channels-status",children:f}):null,b?e.jsx("p",{className:"settings-channels-error",children:b}):null,we,t.isMobile?e.jsx(ce,{className:"settings-channels-inline-actions",children:We}):null,e.jsxs(X,{heading:s("settings.channelsAccountsTitle"),description:s("settings.channelsAccountsDescription"),children:[d&&p.length===0?e.jsx(le,{compact:!0,title:s("settings.channelsLoading")}):null,!d&&p.length===0?e.jsx(le,{title:s("settings.channelsAccountsEmpty"),description:s("settings.channelsAccountsEmptyDescription"),action:e.jsx("button",{className:"secondary-button",type:"button",onClick:De,children:s("settings.channelsAddAccountAction")})}):null,p.length>0?e.jsx(pe,{className:"settings-channels-account-list",children:p.map(i=>e.jsx(he,{as:"button",selected:O===i.id,className:"settings-channels-account-item",label:i.displayName,description:s("settings.channelsAccountRowDescription",{platform:i.capability.displayName,provider:xs(i.providerId),mode:Xe(i.connectionMode)}),trailing:e.jsxs("div",{className:"settings-channels-account-tags",children:[e.jsx(re,{tone:Wi(i.status),children:Vs(i.status)}),e.jsx(re,{children:xs(i.providerId)})]}),onClick:()=>Pe(i),children:e.jsxs("div",{className:"settings-channels-record-meta",children:[e.jsxs("span",{children:[s("settings.channelsThreadsTitle"),": ",i.threadCount]}),e.jsxs("span",{children:[s("settings.channelsEventsTitle"),": ",i.inboundEventCount]}),e.jsxs("span",{children:[s("settings.channelsDeliveriesTitle"),": ",i.deliveryCount]})]})},i.id))}):null]}),m?e.jsxs(e.Fragment,{children:[e.jsxs(X,{heading:s("settings.channelsDetailTitle"),description:s("settings.channelsDetailDescription"),actions:e.jsxs(ce,{className:"settings-channels-inline-actions",children:[$e?e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:k!==null,onClick:()=>{Ye()},children:k==="probe"?s("settings.channelsActionPending"):s("settings.channelsProbeAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:k!==null,onClick:()=>{Ie()},children:k==="poll"?s("settings.channelsActionPending"):s("settings.channelsPollAction")})]}):null,Se?e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:k!==null,onClick:()=>{H(null)},children:s("common.cancel")}),e.jsx("button",{className:"settings-button settings-button-danger",type:"button",disabled:k!==null,onClick:()=>{Y()},children:k==="remove-account"?s("settings.channelsActionPending"):s("settings.channelsRemoveConfirmAction")})]}):e.jsx("button",{className:"settings-button settings-button-danger",type:"button",disabled:k!==null,onClick:()=>{m&&H(m.id)},children:s("settings.channelsRemoveAction")})]}),children:[e.jsxs("div",{className:"settings-channels-detail-grid",children:[e.jsx(Ce,{label:s("settings.channelsDetailPlatform"),value:m.capability.displayName}),e.jsx(Ce,{label:s("settings.channelsDetailProvider"),value:xs(m.providerId)}),e.jsx(Ce,{label:s("settings.channelsDetailConnectionMode"),value:Xe(m.connectionMode)}),e.jsx(Ce,{label:s("settings.channelsDetailStatus"),value:Vs(m.status)}),e.jsx(Ce,{label:s("settings.channelsDetailLastInbound"),value:Ge(m.lastInboundAt)}),e.jsx(Ce,{label:s("settings.channelsDetailLastOutbound"),value:Ge(m.lastOutboundAt)})]}),m.lastError?e.jsxs("p",{className:"settings-channels-inline-note",children:[s("settings.channelsDetailLastError"),": ",m.lastError]}):null,Se?e.jsx("p",{className:"settings-channels-inline-note",children:s("settings.channelsRemoveConfirmDescription")}):null]}),m.platformCode==="wechat-claw"?e.jsxs(X,{heading:s("settings.channelsWechatBindingTitle"),description:s("settings.channelsWechatBindingDescription"),actions:e.jsxs(ce,{className:"settings-channels-inline-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:k!==null,onClick:()=>{Ne("start")},children:k==="wechat-start-login"?s("settings.channelsActionPending"):P!=null&&P.qrcodeUrl?s("settings.channelsWechatRestartBindingAction"):s("settings.channelsWechatStartLoginAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:k!==null,onClick:()=>{Ne("refresh")},children:k==="wechat-refresh-login"?s("settings.channelsActionPending"):s("settings.channelsWechatRefreshLoginAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:k!==null,onClick:()=>{Ne("logout")},children:k==="wechat-logout"?s("settings.channelsActionPending"):s("settings.channelsWechatLogoutAction")})]}),children:[e.jsxs("div",{className:"settings-channels-wechat-binding-entry",children:[e.jsxs("div",{className:"settings-channels-detail-grid",children:[e.jsx(Ce,{label:s("settings.channelsWechatLoginStatus"),value:Gi((P==null?void 0:P.loginStatus)??"not_logged_in")}),e.jsx(Ce,{label:s("settings.channelsDetailConnectionMode"),value:s("settings.channelsWechatBindingModeValue")}),e.jsx(Ce,{label:s("settings.channelsMetaUpdatedAt"),value:Ge((P==null?void 0:P.updatedAt)??null)})]}),e.jsx("p",{className:"settings-channels-inline-note",children:_?s("settings.channelsWechatBoundDescription"):s("settings.channelsWechatPendingDescription")}),P!=null&&P.lastDetail?e.jsx("p",{className:"settings-channels-inline-note",children:P.lastDetail}):null,_?null:e.jsxs("div",{className:"settings-channels-wechat-qr-panel",children:[P!=null&&P.qrcodeUrl?e.jsxs(e.Fragment,{children:[e.jsx("img",{className:"settings-channels-wechat-qr-image",src:P.qrcodeUrl,alt:s("settings.channelsWechatQrAlt")}),e.jsx("p",{className:"settings-channels-inline-note",children:s("settings.channelsWechatQrHint")}),e.jsx(ce,{className:"settings-channels-inline-actions",children:e.jsx("a",{className:"secondary-button",href:P.qrcodeSourceUrl??P.qrcodeUrl,target:"_blank",rel:"noreferrer",children:s("settings.channelsWechatOpenQrLinkAction")})})]}):e.jsx(le,{compact:!0,title:s("settings.channelsWechatQrEmpty"),description:s("settings.channelsWechatQrEmptyDescription")}),P!=null&&P.qrcodeText?e.jsx(se,{label:s("settings.channelsWechatQrRawTitle"),description:s("settings.channelsWechatQrRawDescription"),children:e.jsx("textarea",{className:"settings-textarea settings-channels-textarea",value:P.qrcodeText,readOnly:!0})}):null]})]}),e.jsx("div",{className:"settings-channels-platform-selected-notes",children:m.capability.stageOneLimitations.map(i=>e.jsx("p",{className:"settings-channels-platform-limitations",children:i},i))})]}):null,e.jsxs(X,{heading:s("settings.channelsThreadsTitle"),description:s("settings.channelsThreadsDescription",{count:m.threadCount}),children:[F?e.jsx(le,{compact:!0,title:s("settings.channelsLoadingDetails")}):null,!F&&$.length===0?e.jsx(le,{compact:!0,title:s("settings.channelsThreadsEmpty"),description:s("settings.channelsThreadsEmptyDescription")}):null,!F&&$.length>0?e.jsx(pe,{compact:!0,children:$.map(i=>e.jsx(he,{label:i.title||i.externalConversationKey,description:s("settings.channelsThreadSummary",{status:St(i.status),conversationKey:i.externalConversationKey}),trailing:e.jsx(re,{tone:$i(i.status),children:St(i.status)}),children:e.jsxs("div",{className:"settings-channels-record-meta",children:[e.jsxs("span",{children:[s("settings.channelsMetaCreatedAt"),": ",Ge(i.createdAt)]}),e.jsxs("span",{children:[s("settings.channelsMetaUpdatedAt"),": ",Ge(i.updatedAt)]}),i.externalUserId?e.jsxs("span",{children:[s("settings.channelsMetaExternalUser"),": ",i.externalUserId]}):null]})},i.id))}):null]}),e.jsxs(X,{heading:s("settings.channelsEventsTitle"),description:s("settings.channelsEventsDescription",{count:m.inboundEventCount}),children:[F?e.jsx(le,{compact:!0,title:s("settings.channelsLoadingDetails")}):null,!F&&Q.length===0?e.jsx(le,{compact:!0,title:s("settings.channelsEventsEmpty"),description:s("settings.channelsEventsEmptyDescription")}):null,!F&&Q.length>0?e.jsx(pe,{compact:!0,children:Q.map(i=>e.jsx(he,{label:Nt(i.textContent),description:s("settings.channelsEventSummary",{status:wt(i.status),conversationKey:i.externalConversationKey}),trailing:e.jsx(re,{tone:zi(i.status),children:wt(i.status)}),children:e.jsxs("div",{className:"settings-channels-record-meta",children:[e.jsxs("span",{children:[s("settings.channelsMetaReceivedAt"),": ",Ge(i.receivedAt)]}),e.jsxs("span",{children:[s("settings.channelsMetaEventId"),": ",i.externalEventId]}),i.errorMessage?e.jsxs("span",{children:[s("settings.channelsMetaError"),": ",i.errorMessage]}):null]})},i.id))}):null]}),e.jsxs(X,{heading:s("settings.channelsDeliveriesTitle"),description:s("settings.channelsDeliveriesDescription",{count:m.deliveryCount}),children:[F?e.jsx(le,{compact:!0,title:s("settings.channelsLoadingDetails")}):null,!F&&z.length===0?e.jsx(le,{compact:!0,title:s("settings.channelsDeliveriesEmpty"),description:s("settings.channelsDeliveriesEmptyDescription")}):null,!F&&z.length>0?e.jsx(pe,{compact:!0,children:z.map(i=>e.jsx(he,{label:Nt(i.textContent),description:s("settings.channelsDeliverySummary",{status:Tt(i.status)}),trailing:e.jsx(re,{tone:Ki(i.status),children:Tt(i.status)}),children:e.jsxs("div",{className:"settings-channels-record-meta",children:[e.jsxs("span",{children:[s("settings.channelsMetaCreatedAt"),": ",Ge(i.createdAt)]}),i.providerMessageRef?e.jsxs("span",{children:[s("settings.channelsMetaProviderRef"),": ",i.providerMessageRef]}):null,i.errorMessage?e.jsxs("span",{children:[s("settings.channelsMetaError"),": ",i.errorMessage]}):null]})},i.id))}):null]})]}):null]});return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"settings-channels-entrypoint",children:e.jsx("button",{className:"secondary-button",type:"button",disabled:!a,onClick:fe,children:s("settings.channelsManageAction")})}),t.isMobile?e.jsx(Le,{open:n,title:s("settings.channelsModalTitle"),height:"full",kind:"form",bodyClassName:"settings-channels-sheet-body",footer:void 0,onClose:ke,children:e.jsx("div",{className:"settings-channels-modal-body",children:Ee})}):e.jsx(Ae,{open:n,title:s("settings.channelsModalTitle"),size:"xwide",layout:"form",className:"settings-channels-modal",bodyClassName:"settings-channels-modal-body",headerActions:We,onClose:ke,children:Ee}),t.isMobile?e.jsx(Le,{open:c,title:s("settings.channelsAddAccountAction"),height:"full",kind:"form",bodyClassName:"settings-channels-sheet-body",footer:void 0,onClose:ye,children:e.jsx("div",{className:"settings-channels-modal-body",children:ze})}):e.jsx(Ae,{open:c,title:s("settings.channelsAddAccountAction"),size:"wide",layout:"form",className:"settings-channels-modal",bodyClassName:"settings-channels-modal-body",onClose:ye,children:ze})]})}function Bs({label:t,value:a}){return e.jsxs("div",{className:"settings-channels-summary-card",children:[e.jsx("span",{children:t}),e.jsx("strong",{children:a})]})}function Ce({label:t,value:a}){return e.jsxs("div",{className:"settings-channels-detail-card",children:[e.jsx("span",{children:t}),e.jsx("strong",{children:a})]})}function Ui({currentStep:t}){const a=[{step:"platform",number:1,label:s("settings.channelsWizardStepPlatform")},{step:"config",number:2,label:s("settings.channelsWizardStepConfig")},{step:"binding",number:3,label:s("settings.channelsWizardStepBinding")}],n=a.findIndex(r=>r.step===t);return e.jsx("div",{className:"settings-channels-step-strip","aria-label":s("settings.channelsWizardStepsTitle"),children:a.map((r,c)=>e.jsxs("div",{className:"settings-channels-step-chip","data-state":c===n?"current":c<n?"complete":"pending",children:[e.jsx("span",{className:"settings-channels-step-chip-badge",children:r.number}),e.jsx("span",{className:"settings-channels-step-chip-label",children:r.label})]},r.step))})}function Oi({platformCapability:t}){return e.jsxs("div",{className:"settings-channels-platform-selected",children:[e.jsxs("div",{className:"settings-channels-platform-selected-head",children:[e.jsxs("div",{className:"settings-channels-platform-card-brand",children:[e.jsx("div",{className:"settings-channels-platform-card-logo",children:e.jsx(un,{code:t.code,width:40,height:40,"aria-hidden":"true"})}),e.jsxs("div",{className:"settings-channels-platform-card-copy",children:[e.jsx("strong",{children:t.displayName}),e.jsx("span",{children:s("settings.channelsPlatformSummary",{modes:Xe(us),multiSession:gs(t.multiSessionSupportLevel)})})]})]}),e.jsx(re,{tone:t.multiSessionSupportLevel==="supported"?"success":"warning",children:gs(t.multiSessionSupportLevel)})]}),e.jsx("div",{className:"settings-channels-platform-selected-notes",children:t.stageOneLimitations.map(a=>e.jsx("p",{className:"settings-channels-platform-limitations",children:a},a))})]})}function Ri({platformCode:t}){const a=Ii[t];return a?e.jsxs("div",{className:"settings-channels-config-checklist",children:[e.jsxs("div",{className:"settings-channels-config-checklist-head",children:[e.jsx("strong",{children:s(a.titleKey)}),e.jsx("p",{className:"settings-channels-inline-note",children:s(a.summaryKey)})]}),e.jsx("ul",{className:"settings-channels-config-checklist-list",children:a.items.map(n=>e.jsx("li",{children:s(n)},n))})]}):null}function Fi({platformCode:t}){return t!=="wechat-claw"?null:e.jsxs("div",{className:"settings-channels-config-unavailable",children:[e.jsx("strong",{children:s("settings.channelsConfigWechatUnavailableTitle")}),e.jsx("p",{className:"settings-channels-inline-note",children:s("settings.channelsConfigWechatUnavailableDescription")})]})}function Bi(t){return{loginStatus:_i(t.runtimeState.wechatClawLoginStatus),qrcodeUrl:ls(t.runtimeState.wechatClawQrCodeUrl),qrcodeSourceUrl:ls(t.runtimeState.wechatClawQrCodeSourceUrl),qrcodeText:ls(t.runtimeState.wechatClawQrCodeText),lastDetail:ls(t.runtimeState.wechatClawLastDetail),updatedAt:ls(t.runtimeState.wechatClawUpdatedAt)}}function _i(t){return t==="waiting_scan"||t==="scan_confirmed"||t==="active"||t==="expired"?t:"not_logged_in"}function ls(t){if(typeof t!="string")return null;const a=t.trim();return a.length>0?a:null}function fs(t={}){return{platformCode:"",displayName:"",providerId:"codex",status:"active",configValues:{},advancedConfigText:Li,...t}}function _s(t,a){return t.findIndex(r=>r.id===a.id)===-1?[a,...t]:t.map(r=>r.id===a.id?a:r)}function mn(t,a){if(!t.platformCode||!a)return{ok:!1,errorText:s("settings.channelsValidationPlatform")};const n=qi(t.platformCode,t.configValues);if(n)return{ok:!1,errorText:n};try{hn(t.advancedConfigText)}catch{return{ok:!1,errorText:s("settings.channelsValidationConfigJson")}}return{ok:!0}}function Vi(t,a){const n=mn(t,a);if(!n.ok)return n;const r=t.displayName.trim();if(!r)return{ok:!1,errorText:s("settings.channelsValidationDisplayName")};const c=t.platformCode,h=hn(t.advancedConfigText),j=Hi(c,t.configValues,h);return{ok:!0,input:{displayName:r,platformCode:c,providerId:t.providerId,connectionMode:us,status:t.status,config:j}}}function qi(t,a){const r=(lt[t]??[]).find(c=>c.required&&!(a[c.key]??"").trim());return r?s("settings.channelsValidationRequiredField",{field:s(r.labelKey)}):null}function hn(t){if(!t.trim())return{};const a=JSON.parse(t);if(!a||typeof a!="object"||Array.isArray(a))throw new Error("advanced_config_must_be_object");return{...a}}function Hi(t,a,n){const r={...n};for(const c of lt[t]??[]){const h=(a[c.key]??"").trim();h?r[c.key]=h:delete r[c.key]}return r}function Ke(t,a){if(t instanceof Re)return t.message;switch(a){case"save":return s("settings.channelsSaveFailed");case"probe":return s("settings.channelsProbeFailed");case"poll":return s("settings.channelsPollFailed");case"remove":return s("settings.channelsRemoveFailed");case"start":case"refresh":case"logout":return s("settings.channelsSaveFailed");case"loadDetails":return s("settings.channelsLoadDetailsFailed");default:return s("settings.channelsLoadFailed")}}function Nt(t){const a=t.trim();return a.length<=72?a||s("settings.channelsTextFallback"):`${a.slice(0,72)}...`}function Ge(t){if(!t)return s("settings.channelsTimeUnknown");const a=new Date(t);return Number.isNaN(a.getTime())?t:new Intl.DateTimeFormat(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(a)}function xs(t){return t==="claude-code"?"Claude Code":"Codex"}function Xe(t){return t==="polling"?s("settings.channelsConnectionModePolling"):t==="bridge"?s("settings.channelsConnectionModeBridge"):s("settings.channelsConnectionModeWebhook")}function gs(t){return t==="supported"?s("settings.channelsMultiSessionSupported"):s("settings.channelsMultiSessionLimited")}function Vs(t){switch(t){case"disabled":return s("settings.channelsStatusDisabled");case"degraded":return s("settings.channelsStatusDegraded");default:return s("settings.channelsStatusActive")}}function Wi(t){switch(t){case"disabled":return"default";case"degraded":return"warning";default:return"success"}}function St(t){switch(t){case"closed":return s("settings.channelsThreadStatusClosed");case"failed":return s("settings.channelsThreadStatusFailed");default:return s("settings.channelsThreadStatusActive")}}function $i(t){switch(t){case"failed":return"danger";case"closed":return"default";default:return"success"}}function wt(t){switch(t){case"dispatched":return s("settings.channelsEventStatusDispatched");case"replied":return s("settings.channelsEventStatusReplied");case"failed":return s("settings.channelsEventStatusFailed");case"ignored":return s("settings.channelsEventStatusIgnored");default:return s("settings.channelsEventStatusReceived")}}function zi(t){switch(t){case"replied":return"success";case"failed":return"danger";case"ignored":return"warning";case"dispatched":return"accent";default:return"default"}}function Tt(t){switch(t){case"failed":return s("settings.channelsDeliveryStatusFailed");case"skipped":return s("settings.channelsDeliveryStatusSkipped");default:return s("settings.channelsDeliveryStatusSent")}}function Ki(t){switch(t){case"failed":return"danger";case"skipped":return"default";default:return"success"}}function Gi(t){switch(t){case"waiting_scan":return s("settings.channelsWechatLoginStatusWaitingScan");case"scan_confirmed":return s("settings.channelsWechatLoginStatusScanConfirmed");case"active":return s("settings.channelsWechatLoginStatusActive");case"expired":return s("settings.channelsWechatLoginStatusExpired");case"not_logged_in":default:return s("settings.channelsWechatLoginStatusNotLoggedIn")}}var pn={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},kt=Qe.createContext&&Qe.createContext(pn),Ji=["attr","size","title"];function Qi(t,a){if(t==null)return{};var n,r,c=Zi(t,a);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(t);for(r=0;r<h.length;r++)n=h[r],a.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(c[n]=t[n])}return c}function Zi(t,a){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(a.indexOf(r)!==-1)continue;n[r]=t[r]}return n}function ws(){return ws=Object.assign?Object.assign.bind():function(t){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},ws.apply(null,arguments)}function Ct(t,a){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);a&&(r=r.filter(function(c){return Object.getOwnPropertyDescriptor(t,c).enumerable})),n.push.apply(n,r)}return n}function Ts(t){for(var a=1;a<arguments.length;a++){var n=arguments[a]!=null?arguments[a]:{};a%2?Ct(Object(n),!0).forEach(function(r){Yi(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ct(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Yi(t,a,n){return(a=Xi(a))in t?Object.defineProperty(t,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[a]=n,t}function Xi(t){var a=el(t,"string");return typeof a=="symbol"?a:a+""}function el(t,a){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,a);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(t)}function bn(t){return t&&t.map((a,n)=>Qe.createElement(a.tag,Ts({key:n},a.attr),bn(a.child)))}function ps(t){return a=>Qe.createElement(sl,ws({attr:Ts({},t.attr)},a),bn(t.child))}function sl(t){var a=n=>{var{attr:r,size:c,title:h}=t,j=Qi(t,Ji),w=c||n.size||"1em",p;return n.className&&(p=n.className),t.className&&(p=(p?p+" ":"")+t.className),Qe.createElement("svg",ws({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,j,{className:p,style:Ts(Ts({color:t.color||n.color},n.style),t.style),height:w,width:w,xmlns:"http://www.w3.org/2000/svg"}),h&&Qe.createElement("title",null,h),t.children)};return kt!==void 0?Qe.createElement(kt.Consumer,null,n=>a(n)):a(pn)}function tl(t){return ps({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 3H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h6v2H8v2h8v-2h-2v-2h6c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},child:[]}]})(t)}function nl(t){return ps({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 0 1 5.08 16zm2.95-8H5.08a7.987 7.987 0 0 1 4.33-3.56A15.65 15.65 0 0 0 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"},child:[]}]})(t)}function Dt(t){return ps({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"},child:[]}]})(t)}function al(t){return ps({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M15.5 1h-8A2.5 2.5 0 0 0 5 3.5v17A2.5 2.5 0 0 0 7.5 23h8a2.5 2.5 0 0 0 2.5-2.5v-17A2.5 2.5 0 0 0 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z"},child:[]}]})(t)}function il(t){return ps({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z"},child:[]}]})(t)}function Mt(){return J.request("/api/auth/devices")}function ll(t){return J.request("/api/auth/devices/current/primary",{method:"POST",body:JSON.stringify(t)})}function rl(t){return J.request(`/api/auth/devices/${t}/logout`,{method:"POST"})}function fn({compact:t=!1}){const a=ss(m=>{var q;return((q=m.session)==null?void 0:q.accessToken)??null}),[n,r]=l.useState(null),[c,h]=l.useState(!1),[j,w]=l.useState(!1),[p,T]=l.useState(!1),[d,C]=l.useState(null),[F,D]=l.useState(null),[k,v]=l.useState(null),[I,u]=l.useState(null),[f,x]=l.useState(null),[b,o]=l.useState(""),[N,A]=l.useState(null);l.useEffect(()=>{let m=!0;if(!j){h(!1);return}if(!a){r(null),h(!1),v(null),u(null);return}return(async()=>{h(!0);try{const R=await Mt();if(!m)return;r(R),u(null)}catch(R){if(!m)return;u(qs(R))}finally{m&&h(!1)}})(),()=>{m=!1}},[a,j]);async function W(){const m=await Mt();r(m),u(null)}function S(){w(!0),T(!1),v(null),u(null)}function O(){d!=="primary"&&(w(!1),T(!1),x(null),o(""),A(null))}function L(m){x(m),o(""),A(null)}async function G(){if(f){C("primary"),A(null),u(null),v(null);try{await ll({password:b,primary:f==="enable"}),await W(),v(f==="enable"?s("settings.authDevicePrimaryEnabled"):s("settings.authDevicePrimaryDisabled")),x(null),o("")}catch(m){const q=qs(m);A(q),u(q)}finally{C(null)}}}async function H(m){if(m.deviceId){D(m.deviceId),u(null),v(null);try{const q=await rl(m.deviceId);await W(),v(s("settings.authDeviceLogoutDeviceSuccess",{device:ys(m),count:String(q.revokedSessionCount)}))}catch(q){u(qs(q))}finally{D(null)}}}const B=(n==null?void 0:n.currentDevice)??null,te=(n==null?void 0:n.otherActiveDevices.filter(m=>!m.isLegacy))??[],$=(n==null?void 0:n.otherActiveDevices.filter(m=>m.isLegacy))??[],ae=(n==null?void 0:n.recentLoginRecords.filter(m=>!m.isLegacy))??[],Q=(n==null?void 0:n.recentLoginRecords.filter(m=>m.isLegacy))??[],U=$.length+Q.length,z=B!==null&&!B.isLegacy,M=(B==null?void 0:B.isPrimary)===!0;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`settings-device-panel${t?" settings-device-panel-compact":""}`,children:e.jsx("div",{className:"settings-device-entry-actions",children:e.jsx("button",{className:"settings-button",type:"button",disabled:!a,onClick:S,children:s("settings.authDeviceOpenManager")})})}),e.jsx(ms,{open:j,title:s("settings.authDeviceManagement"),description:s("settings.authDeviceManagementDescription"),className:"settings-device-browser-modal",onClose:O,children:e.jsxs(e.Fragment,{children:[k?e.jsx("p",{className:"settings-release-status",children:k}):null,I?e.jsx("p",{className:"settings-release-status",children:I}):null,c?e.jsx("div",{className:"settings-device-empty",children:s("common.loading")}):e.jsxs(e.Fragment,{children:[U>0?e.jsx("section",{className:"settings-device-section",children:e.jsxs("div",{className:"settings-device-compat-banner",children:[e.jsx("p",{className:"settings-device-inline-note",children:s("settings.authDeviceLegacyHiddenHint",{count:String(U)})}),e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>T(m=>!m),children:p?s("settings.authDeviceLegacyHide"):s("settings.authDeviceLegacyReveal")})]})}):null,e.jsxs("section",{className:"settings-device-section",children:[e.jsx("div",{className:"settings-device-section-header",children:e.jsx("strong",{children:s("settings.authDeviceCurrentTitle")})}),B?e.jsx(rs,{current:!0,title:ys(B),clientType:B.clientType,browserName:B.browserName,browserVersion:B.browserVersion,osName:B.osName,osVersion:B.osVersion,timeLabelKey:"settings.authDeviceLastSeen",timestamp:B.lastSeenAt,sourceAddress:B.lastSourceAddress,badges:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"settings-device-tag","data-tone":"current",children:s("settings.authDeviceCurrentTag")}),B.isPrimary?e.jsx("span",{className:"settings-device-tag","data-tone":"primary",children:s("settings.authDevicePrimaryTag")}):null]}),actions:e.jsx(e.Fragment,{children:e.jsx("button",{className:"secondary-button","data-variant":"device-neutral",type:"button",disabled:!z||d!==null,onClick:()=>L(B.isPrimary?"disable":"enable"),children:B.isPrimary?s("settings.authDeviceDisablePrimary"):s("settings.authDeviceEnablePrimary")})}),note:z?null:s("settings.authDevicePrimaryUnavailable")}):e.jsx("div",{className:"settings-device-empty",children:s("settings.authDeviceCurrentEmpty")})]}),e.jsxs("section",{className:"settings-device-section",children:[e.jsx("div",{className:"settings-device-section-header",children:e.jsx("strong",{children:s("settings.authDeviceOthersTitle")})}),te.length>0?e.jsx("div",{className:"settings-device-list",children:te.map((m,q)=>e.jsx(rs,{title:ys(m),clientType:m.clientType,browserName:m.browserName,browserVersion:m.browserVersion,osName:m.osName,osVersion:m.osVersion,timeLabelKey:"settings.authDeviceLastSeen",timestamp:m.lastSeenAt,sourceAddress:m.lastSourceAddress,badges:e.jsxs(e.Fragment,{children:[m.isPrimary?e.jsx("span",{className:"settings-device-tag","data-tone":"primary",children:s("settings.authDevicePrimaryTag")}):null,m.isLegacy?e.jsx("span",{className:"settings-device-tag","data-tone":"legacy",children:s("settings.authDeviceLegacyTag")}):null]}),actions:m.deviceId?e.jsx("button",{className:"settings-button settings-button-danger","data-variant":"device-danger",type:"button",disabled:!M||d!==null||F!==null,onClick:()=>{H(m)},children:F===m.deviceId?s("common.loading"):s("settings.authDeviceLogoutDevice")}):null},`${m.deviceId??"legacy"}-${m.lastSeenAt}-${q}`))}):e.jsx("div",{className:"settings-device-empty",children:s("settings.authDeviceOthersEmpty")})]}),e.jsxs("section",{className:"settings-device-section",children:[e.jsx("div",{className:"settings-device-section-header",children:e.jsx("strong",{children:s("settings.authDeviceRecentTitle")})}),ae.length>0?e.jsx("div",{className:"settings-device-list",children:ae.map(m=>e.jsx(rs,{title:At(m),clientType:m.clientType,browserName:m.browserName,browserVersion:m.browserVersion,osName:m.osName,osVersion:m.osVersion,timeLabelKey:"settings.authDeviceLoginAt",timestamp:m.occurredAt,sourceAddress:m.sourceAddress,badges:m.isCurrentDevice?e.jsx("span",{className:"settings-device-tag","data-tone":"current",children:s("settings.authDeviceCurrentTag")}):null},m.id))}):e.jsx("div",{className:"settings-device-empty",children:s("settings.authDeviceRecentEmpty")})]}),p&&$.length>0?e.jsxs("section",{className:"settings-device-section",children:[e.jsx("div",{className:"settings-device-section-header",children:e.jsx("strong",{children:s("settings.authDeviceLegacyDevicesTitle")})}),e.jsx("div",{className:"settings-device-list",children:$.map((m,q)=>e.jsx(rs,{title:ys(m),clientType:m.clientType,browserName:m.browserName,browserVersion:m.browserVersion,osName:m.osName,osVersion:m.osVersion,timeLabelKey:"settings.authDeviceLastSeen",timestamp:m.lastSeenAt,sourceAddress:m.lastSourceAddress,badges:e.jsx("span",{className:"settings-device-tag","data-tone":"legacy",children:s("settings.authDeviceLegacyTag")})},`legacy-device-${m.lastSeenAt}-${q}`))})]}):null,p&&Q.length>0?e.jsxs("section",{className:"settings-device-section",children:[e.jsx("div",{className:"settings-device-section-header",children:e.jsx("strong",{children:s("settings.authDeviceLegacyRecentTitle")})}),e.jsx("div",{className:"settings-device-list",children:Q.map(m=>e.jsx(rs,{title:At(m),clientType:m.clientType,browserName:m.browserName,browserVersion:m.browserVersion,osName:m.osName,osVersion:m.osVersion,timeLabelKey:"settings.authDeviceLoginAt",timestamp:m.occurredAt,sourceAddress:m.sourceAddress,badges:e.jsx("span",{className:"settings-device-tag","data-tone":"legacy",children:s("settings.authDeviceLegacyTag")})},m.id))})]}):null]})]})}),e.jsx(ms,{open:f!==null,title:f==="enable"?s("settings.authDeviceEnablePrimaryModalTitle"):s("settings.authDeviceDisablePrimaryModalTitle"),description:f==="enable"?s("settings.authDeviceEnablePrimaryModalDescription"):s("settings.authDeviceDisablePrimaryModalDescription"),className:"settings-device-modal",onClose:()=>{d!=="primary"&&(x(null),o(""),A(null))},children:e.jsxs("div",{className:"settings-device-modal-body",children:[e.jsxs("label",{className:"settings-device-password-field",children:[e.jsx("span",{children:s("settings.authDevicePasswordLabel")}),e.jsx("input",{type:"password",className:"settings-text-input",value:b,onChange:m=>o(m.target.value)})]}),N?e.jsx("p",{className:"settings-release-status",children:N}):null,e.jsxs("div",{className:"settings-device-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:d==="primary",onClick:()=>{x(null),o(""),A(null)},children:s("common.cancel")}),e.jsx("button",{className:"settings-button",type:"button",disabled:b.trim().length===0||d==="primary",onClick:()=>{G()},children:d==="primary"?s("common.loading"):f==="enable"?s("settings.authDeviceEnablePrimary"):s("settings.authDeviceDisablePrimary")})]})]})})]})}function ys(t){var a;return t.isLegacy?s("settings.authDeviceLegacyLabel"):((a=t.displayName)==null?void 0:a.trim())||xn(t.clientType)}function At(t){var a;return t.isLegacy?s("settings.authDeviceLegacyLabel"):((a=t.displayName)==null?void 0:a.trim())||xn(t.clientType)}function cl(t){return e.jsxs("div",{className:"settings-device-identity",children:[e.jsx("span",{className:"settings-device-identity-icon","aria-hidden":"true",children:e.jsx(pl,{kind:hl(t.clientType)})}),e.jsx("div",{className:"settings-device-identity-body",children:e.jsx("strong",{children:t.title})})]})}function rs(t){const a=ml(t.browserName,t.browserVersion,t.osName,t.osVersion,t.timeLabelKey,t.timestamp,t.sourceAddress);return e.jsx("article",{className:"settings-device-item","data-current":t.current?"true":void 0,children:e.jsxs("div",{className:"settings-device-item-main",children:[e.jsxs("div",{className:"settings-device-item-content",children:[e.jsx(cl,{title:t.title,clientType:t.clientType}),e.jsx("div",{className:"settings-device-meta",children:a.map(n=>e.jsx("span",{children:n},n))}),t.note?e.jsx("p",{className:"settings-device-inline-note",children:t.note}):null]}),t.badges||t.actions?e.jsxs("div",{className:"settings-device-item-controls",children:[t.badges?e.jsx("div",{className:"settings-device-badges",children:t.badges}):null,t.actions?e.jsx("div",{className:"settings-device-actions",children:t.actions}):null]}):null]})})}function xn(t){switch(t){case"desktop":return s("settings.authDeviceClientDesktop");case"web":return s("settings.authDeviceClientWeb");case"ios":return s("settings.authDeviceClientIos");case"android":return s("settings.authDeviceClientAndroid");default:return s("settings.authDeviceClientUnknown")}}function ol(t,a){return s(t,{value:new Date(a).toLocaleString()})}function dl(t){return t?s("settings.authDeviceSourceAddressValue",{value:t}):s("settings.authDeviceSourceAddressUnknown")}function ul(t,a){return t?s("settings.authDeviceBrowserValue",{value:yn(t,a)}):null}function gl(t,a){return t?s("settings.authDeviceOsValue",{value:yn(t,a)}):null}function ml(t,a,n,r,c,h,j){return[ul(t,a),gl(n,r),ol(c,h),dl(j)].filter(w=>!!w)}function hl(t){switch(t){case"desktop":return"desktop";case"web":return"web";case"ios":return"ios";case"android":return"android";default:return"unknown"}}function yn(t,a){return a!=null&&a.trim()?`${t} ${a}`:t}function pl({kind:t}){const a=bl(t),n=a.icon;return e.jsx(n,{color:a.color})}function bl(t){switch(t){case"desktop":return{icon:tl,color:"#2563eb"};case"web":return{icon:nl,color:"#0f766e"};case"ios":return{icon:al,color:"#111827"};case"android":return{icon:il,color:"#3ddc84"};case"unknown":return{icon:Dt,color:"#64748b"};default:return{icon:Dt,color:"#64748b"}}}function qs(t){return t instanceof Re||t instanceof Error?t.message:s("settings.authDeviceLoadFailed")}function fl(){return J.request("/api/admin/users")}function xl(t){return J.request("/api/admin/users",{method:"POST",body:JSON.stringify(t)})}function yl(t,a){return J.request(`/api/admin/users/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(a)})}function jl(t,a){return J.request(`/api/admin/users/${encodeURIComponent(t)}/status`,{method:"PATCH",body:JSON.stringify({status:a})})}function vl(t){return J.request(`/api/admin/users/${encodeURIComponent(t)}`,{method:"DELETE"})}function Nl(t){return J.request(`/api/admin/users/usage?period=${t}`)}const Hs={username:"",password:""};function jn({compact:t=!1,mobile:a=!1}){const[n,r]=l.useState(!1),[c,h]=l.useState("users"),[j,w]=l.useState([]),[p,T]=l.useState(null),[d,C]=l.useState("day"),[F,D]=l.useState(null),[k,v]=l.useState(null),[I,u]=l.useState(null),[f,x]=l.useState(Hs),[b,o]=l.useState(null),[N,A]=l.useState(null),[W,S]=l.useState(null),[O,L]=l.useState(null);l.useEffect(()=>{n&&H()},[n]),l.useEffect(()=>{!n||c!=="usage"||B(d)},[c,n,d]);const G=l.useMemo(()=>{const P=(p==null?void 0:p.users)??[];return P.find(_=>_.user.userId===F)??P[0]??null},[F,p]);async function H(){A("load-users"),L(null);try{const P=await fl();w(P.items)}catch(P){L(cs(P,"settings.userManagementLoadFailed"))}finally{A(null)}}async function B(P){A("load-usage"),L(null);try{const _=await Nl(P);T(_),D(ee=>{var ue;return ee&&_.users.some(fe=>fe.user.userId===ee)?ee:((ue=_.users[0])==null?void 0:ue.user.userId)??null})}catch(_){L(cs(_,"settings.userManagementUsageLoadFailed"))}finally{A(null)}}function te(){v("create"),u(null),x(Hs),o(null),S(null),L(null)}function $(P){v("edit"),u(P.userId),x({username:P.username,password:""}),o(null),S(null),L(null)}function ae(){v(null),u(null),x(Hs)}async function Q(){A("save-user"),S(null),L(null);try{k==="create"?(await xl({username:f.username,password:f.password}),S(s("settings.userManagementCreateSuccess"))):k==="edit"&&I&&(await yl(I,{username:f.username,password:f.password.trim().length>0?f.password:void 0}),S(s("settings.userManagementUpdateSuccess"))),ae(),await H(),c==="usage"&&await B(d)}catch(P){L(cs(P,"settings.userManagementSaveFailed"))}finally{A(null)}}async function U(P){const _=P.status==="active"?"disabled":"active";A("status-user"),S(null),L(null);try{await jl(P.userId,_),S(_==="active"?s("settings.userManagementEnableSuccess"):s("settings.userManagementDisableSuccess")),await H(),c==="usage"&&await B(d)}catch(ee){L(cs(ee,"settings.userManagementStatusFailed"))}finally{A(null)}}async function z(){if(b){A("delete-user"),S(null),L(null);try{await vl(b),o(null),S(s("settings.userManagementDeleteSuccess")),await H(),c==="usage"&&await B(d)}catch(P){L(cs(P,"settings.userManagementDeleteFailed"))}finally{A(null)}}}function M(){N==="save-user"||N==="delete-user"||(r(!1),v(null),u(null),o(null),S(null),L(null))}const m=t?"settings-mobile-primary-button":"settings-button";return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`settings-user-management-entry${t?" settings-user-management-entry-compact":""}`,children:e.jsx("button",{className:m,type:"button",onClick:()=>r(!0),children:s("settings.userManagementOpenAction")})}),a?e.jsx(Le,{open:n,title:s("settings.userManagementTitle"),description:s("settings.userManagementDescription"),height:"full",kind:"form",className:"settings-user-management-sheet",bodyClassName:"settings-user-management-modal-body",onClose:M,children:q()}):e.jsx(Ae,{open:n,title:s("settings.userManagementTitle"),description:s("settings.userManagementDescription"),size:"wide",layout:"form",className:"settings-user-management-modal",bodyClassName:"settings-user-management-modal-body",onClose:M,children:q()})]});function q(){return e.jsxs("div",{className:"settings-user-management-shell",children:[e.jsxs("div",{className:"settings-user-management-tabs",role:"tablist","aria-label":s("settings.userManagementTabsLabel"),children:[e.jsx("button",{type:"button",className:"settings-user-management-tab","data-active":c==="users"?"true":void 0,role:"tab","aria-selected":c==="users",onClick:()=>h("users"),children:s("settings.userManagementUsersTab")}),e.jsx("button",{type:"button",className:"settings-user-management-tab","data-active":c==="usage"?"true":void 0,role:"tab","aria-selected":c==="usage",onClick:()=>h("usage"),children:s("settings.userManagementUsageTab")})]}),W?e.jsx("p",{className:"settings-release-status",children:W}):null,O?e.jsx("p",{className:"settings-release-status","data-tone":"error",children:O}):null,c==="users"?R():Z()]})}function R(){const P=N==="load-users"&&j.length===0;return e.jsxs("div",{className:"settings-user-management-panel",role:"tabpanel",children:[e.jsx(X,{heading:s("settings.userManagementUsersTitle"),description:s("settings.userManagementUsersDescription"),actions:e.jsx("button",{className:"settings-button",type:"button",onClick:te,children:s("settings.userManagementAddUser")}),children:P?e.jsx(le,{title:s("common.loading"),description:s("settings.userManagementLoading")}):j.length===0?e.jsx(le,{title:s("settings.userManagementUsersEmptyTitle"),description:s("settings.userManagementUsersEmptyDescription")}):e.jsx(pe,{className:"settings-user-list",children:j.map(_=>e.jsx(he,{label:_.username,description:s("settings.userManagementUserMeta",{createdAt:Tl(_.createdAt)}),trailing:e.jsxs("div",{className:"settings-user-row-actions",children:[e.jsx(re,{tone:_.status==="active"?"success":"warning",children:_.status==="active"?s("settings.userManagementStatusActive"):s("settings.userManagementStatusDisabled")}),e.jsx("button",{className:"settings-button",type:"button",onClick:()=>$(_),children:s("settings.userManagementEditUser")}),e.jsx("button",{className:"settings-button",type:"button",onClick:()=>void U(_),children:_.status==="active"?s("settings.userManagementDisableUser"):s("settings.userManagementEnableUser")}),e.jsx("button",{className:"settings-button settings-button-danger",type:"button",onClick:()=>o(_.userId),children:s("settings.userManagementDeleteUser")})]})},_.userId))})}),k?ge():null,b?me():null]})}function ge(){const P=N==="save-user",_=k==="create"?s("settings.userManagementAddUser"):s("settings.userManagementEditUser"),ee=k==="create"?s("settings.userManagementAddDescription"):s("settings.userManagementEditDescription");return e.jsx(X,{heading:_,description:ee,className:"settings-user-form-section",children:e.jsxs("div",{className:"settings-user-form",children:[e.jsx(se,{label:s("settings.userManagementUsernameLabel"),children:e.jsx("input",{className:"settings-text-input",value:f.username,autoComplete:"off",onChange:ue=>x(fe=>({...fe,username:ue.target.value}))})}),e.jsx(se,{label:s("settings.userManagementPasswordLabel"),description:k==="edit"?s("settings.userManagementPasswordEditHint"):void 0,children:e.jsx("input",{className:"settings-text-input",type:"password",value:f.password,autoComplete:"new-password",onChange:ue=>x(fe=>({...fe,password:ue.target.value}))})}),e.jsxs(ce,{children:[e.jsx("button",{className:"settings-button",type:"button",onClick:ae,disabled:P,children:s("common.cancel")}),e.jsx("button",{className:"settings-button",type:"button",onClick:()=>void Q(),disabled:P,children:P?s("common.loading"):s("common.save")})]})]})})}function me(){const P=j.find(ee=>ee.userId===b),_=N==="delete-user";return e.jsx(X,{tone:"danger",heading:s("settings.userManagementDeleteConfirmTitle"),description:s("settings.userManagementDeleteConfirmDescription",{username:(P==null?void 0:P.username)??s("common.unknown")}),children:e.jsxs(ce,{children:[e.jsx("button",{className:"settings-button",type:"button",disabled:_,onClick:()=>o(null),children:s("common.cancel")}),e.jsx("button",{className:"settings-button settings-button-danger",type:"button",disabled:_,onClick:()=>void z(),children:_?s("common.loading"):s("settings.userManagementDeleteUser")})]})})}function Z(){const P=(p==null?void 0:p.users)??[],_=N==="load-usage"&&!p;return e.jsx("div",{className:"settings-user-management-panel",role:"tabpanel",children:e.jsx(X,{heading:s("settings.userManagementUsageTitle"),description:s("settings.userManagementUsageDescription"),actions:e.jsx("div",{className:"settings-user-period-tabs",role:"tablist","aria-label":s("settings.userManagementPeriodLabel"),children:["day","week","month"].map(ee=>e.jsx("button",{type:"button",className:"settings-user-period-tab","data-active":d===ee?"true":void 0,onClick:()=>C(ee),children:wl(ee)},ee))}),children:_?e.jsx(le,{title:s("common.loading"),description:s("settings.userManagementUsageLoading")}):P.length===0?e.jsx(le,{title:s("settings.userManagementUsageEmptyTitle"),description:s("settings.userManagementUsageEmptyDescription")}):e.jsxs("div",{className:"settings-user-usage-layout",children:[e.jsx(pe,{className:"settings-user-usage-users",children:P.map(ee=>e.jsx(he,{as:"button",selected:(G==null?void 0:G.user.userId)===ee.user.userId,label:ee.user.username,description:s("settings.userManagementSessionCount",{count:ee.sessionCount}),trailing:e.jsx(re,{tone:ee.user.status==="active"?"success":"warning",children:ee.user.status==="active"?s("settings.userManagementStatusActive"):s("settings.userManagementStatusDisabled")}),onClick:()=>D(ee.user.userId)},ee.user.userId))}),G?be(G):null]})})})}function be(P){return e.jsxs("div",{className:"settings-user-usage-detail",children:[e.jsxs("div",{className:"settings-user-usage-summary",children:[e.jsx(js,{label:s("settings.userManagementMetricSessions"),value:es(P.sessionCount)}),e.jsx(js,{label:s("settings.userManagementMetricTotalTokens"),value:es(P.tokenTotals.totalTokens)}),e.jsx(js,{label:s("settings.userManagementMetricInputTokens"),value:es(P.tokenTotals.inputTokens)}),e.jsx(js,{label:s("settings.userManagementMetricOutputTokens"),value:es(P.tokenTotals.outputTokens)})]}),P.tokenUsageAvailable?null:e.jsx("p",{className:"settings-user-token-note",children:s("settings.userManagementTokenUnavailable")}),e.jsx(Sl,{userUsage:P}),e.jsxs("div",{className:"settings-user-usage-groups",children:[e.jsx(Ws,{title:s("settings.userManagementModelUsage"),items:P.modelUsage}),e.jsx(Ws,{title:s("settings.userManagementCliProviderUsage"),items:P.cliProviderUsage}),e.jsx(Ws,{title:s("settings.userManagementModelProviderUsage"),items:P.modelProviderUsage})]})]})}}function js({label:t,value:a}){return e.jsxs("div",{className:"settings-user-summary-metric",children:[e.jsx("span",{children:t}),e.jsx("strong",{children:a})]})}function Sl({userUsage:t}){const a=Math.max(1,...t.timeline.map(n=>n.totalTokens));return t.timeline.length===0?e.jsx(le,{compact:!0,title:s("settings.userManagementTokenChartEmptyTitle"),description:s("settings.userManagementTokenChartEmptyDescription")}):e.jsxs("div",{className:"settings-user-token-chart","aria-label":s("settings.userManagementTokenChartTitle"),children:[e.jsx("div",{className:"settings-user-token-chart-header",children:e.jsx("strong",{children:s("settings.userManagementTokenChartTitle")})}),e.jsx("div",{className:"settings-user-token-bars",children:t.timeline.map(n=>{const r=Math.max(6,Math.round(n.totalTokens/a*96));return e.jsxs("div",{className:"settings-user-token-bar-item",children:[e.jsx("div",{className:"settings-user-token-bar-track","aria-hidden":"true",children:e.jsx("span",{className:"settings-user-token-bar",style:{height:r}})}),e.jsx("span",{className:"settings-user-token-bar-value",children:es(n.totalTokens)}),e.jsx("span",{className:"settings-user-token-bar-label",children:n.bucket})]},n.bucket)})})]})}function Ws({title:t,items:a}){const n=Math.max(1,...a.map(r=>r.count));return e.jsxs("div",{className:"settings-user-usage-group",children:[e.jsx("strong",{children:t}),a.length===0?e.jsx("p",{className:"settings-user-usage-empty",children:s("settings.userManagementUsageGroupEmpty")}):e.jsx("div",{className:"settings-user-usage-bars",children:a.map(r=>e.jsxs("div",{className:"settings-user-usage-bar-row",children:[e.jsx("span",{className:"settings-user-usage-bar-label",children:r.label}),e.jsx("span",{className:"settings-user-usage-bar-track","aria-hidden":"true",children:e.jsx("span",{className:"settings-user-usage-bar",style:{width:`${Math.max(6,Math.round(r.count/n*100))}%`}})}),e.jsx("span",{className:"settings-user-usage-bar-value",children:es(r.count)})]},r.label))})]})}function wl(t){return t==="week"?s("settings.userManagementPeriodWeek"):t==="month"?s("settings.userManagementPeriodMonth"):s("settings.userManagementPeriodDay")}function Tl(t){const a=new Date(t);return Number.isNaN(a.getTime())?t:a.toLocaleString()}function es(t){return new Intl.NumberFormat().format(t)}function cs(t,a){return t instanceof Re?t.message||s(a):t instanceof Error?t.message:s(a)}const kl=1500,Pt=2e3,Cl=2500;function vn(){const t=ts(),[a,n]=l.useState(!1),[r,c]=l.useState(!1),[h,j]=l.useState(!1),[w,p]=l.useState(!1),[T,d]=l.useState(null),[C,F]=l.useState(null),[D,k]=l.useState(null),v=(C==null?void 0:C.packages[0])??null,I=h||!!((D==null?void 0:D.status)==="succeeded"&&D.restartScheduled);l.useEffect(()=>{if(!D||!vs(D.status))return;let b=!1;const o=window.setTimeout(async()=>{var N;try{const A=await Qt(D.taskId);if(b)return;if(k(A),d(st(A)),!vs(A.status)){if(c(!1),A.status==="succeeded"&&A.restartScheduled){j(!0),t.bridge.showNotification(s("settings.serverRestarting"),s("settings.serverInstallWarning"));return}const W=await Ms();if(b)return;F(W),k(((N=W.packages[0])==null?void 0:N.installTask)??A),d($s(W.packages[0]??null,A)),A.restartRequired&&await t.bridge.showNotification(s("settings.serverRestartRequired"),A.targetVersion??"-")}}catch(A){if(b)return;c(!1),d(A instanceof Error?A.message:s("settings.serverInstallFailed"))}},kl);return()=>{b=!0,window.clearTimeout(o)}},[t.bridge,D]),l.useEffect(()=>{if(!h||!D||D.status!=="succeeded"||!D.restartScheduled)return;let b=!1,o=0;const N=async()=>{try{const A=await Ms();if(b)return;const W=A.packages[0]??null;if(!Pl(D,W)){o=window.setTimeout(N,Pt);return}j(!1),F(A),k((W==null?void 0:W.installTask)??null),d($s(W,(W==null?void 0:W.installTask)??null))}catch{if(b)return;d(s("settings.serverRestarting")),o=window.setTimeout(N,Pt)}};return d(s("settings.serverRestarting")),o=window.setTimeout(N,Math.max(D.restartDelayMs??0,Cl)),()=>{b=!0,window.clearTimeout(o)}},[h,D]);async function u(){n(!0),d(null);try{const b=await Ms(),o=b.packages[0]??null;F(b),k((o==null?void 0:o.installTask)??null),d($s(o,(o==null?void 0:o.installTask)??null)),o!=null&&o.hasUpdate&&await t.bridge.showNotification(s("settings.serverUpdateReady"),`${s("settings.serverTargetVersion")}: ${o.latestVersion??"-"}`)}catch(b){d(b instanceof Error?b.message:s("settings.serverCheckFailed"))}finally{n(!1)}}async function f(){if(v!=null&&v.packageName){p(!1),j(!1),c(!0),d(null);try{const b=await Jt(v.packageName);k(b),d(st(b))}catch(b){c(!1),d(b instanceof Error?b.message:s("settings.serverInstallFailed"))}}}const x=!!(v&&v.checkStatus!=="check_failed"&&v.hasUpdate&&!v.restartRequired&&!vs(D==null?void 0:D.status)&&!I);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-update-card",children:[e.jsxs("div",{className:"settings-update-summary",children:[e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.serverCurrentVersion")}),e.jsx("strong",{className:"settings-update-value",children:(v==null?void 0:v.currentVersion)??"-"})]}),e.jsxs("div",{className:"settings-update-field",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.serverTargetVersion")}),e.jsx("strong",{className:"settings-update-value",children:(v==null?void 0:v.latestVersion)??"-"})]})]}),v!=null&&v.hasUpdate&&!I?e.jsx("p",{className:"settings-update-note","data-tone":"warning",children:s("settings.serverInstallWarning")}):null,vs(D==null?void 0:D.status)||I?e.jsx(Dl,{task:D,restarting:I}):null,T?e.jsx("p",{className:"settings-update-status","data-tone":Al(v,D,I),children:T}):null,e.jsxs("div",{className:"settings-update-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:a||r||I,onClick:u,children:a?s("common.loading"):s("settings.serverCheckNow")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!x||a||r||I,onClick:()=>p(!0),children:r?s("common.loading"):s("settings.serverInstallNow")})]})]}),e.jsx(El,{open:w,busy:r,mobile:t.isMobile,targetVersion:(v==null?void 0:v.latestVersion)??null,onClose:()=>p(!1),onConfirm:()=>{f()}})]})}function Dl({task:t,restarting:a}){const n=Ml(t,a);return e.jsxs("div",{className:"settings-update-progress",role:"status","aria-label":s("settings.serverProgressLabel"),children:[e.jsx("div",{className:"settings-update-progress-track",children:e.jsx("span",{className:"settings-update-progress-bar",style:{width:`${n.percent}%`}})}),e.jsx("span",{className:"settings-update-progress-text",children:s("settings.serverProgressCurrentStage",{stage:n.label})}),e.jsx("span",{className:"settings-update-progress-hint",children:s("settings.serverProgressHint")})]})}function Ml(t,a){return a?{label:s("settings.serverProgressRestarting"),percent:90}:(t==null?void 0:t.status)==="queued"?{label:s("settings.serverProgressQueued"),percent:20}:(t==null?void 0:t.status)==="running"?{label:s("settings.serverProgressInstalling"),percent:65}:{label:s("settings.serverProgressPreparing"),percent:10}}function $s(t,a){return a?st(a):t?t.restartRequired?s("settings.serverRestartRequired"):t.checkStatus==="check_failed"?t.checkError??s("settings.serverCheckFailed"):t.latestVersion?t.hasUpdate?s("settings.serverUpdateReady"):s("settings.serverUpToDate"):s("settings.serverLatestUnknown"):s("settings.serverCheckNow")}function st(t){switch(t.status){case"queued":return s("settings.serverInstallQueued");case"running":return s("settings.serverInstalling");case"succeeded":return t.restartScheduled?s("settings.serverRestarting"):t.restartRequired?s("settings.serverRestartRequired"):s("settings.serverInstallSucceeded");case"cancelled":return s("settings.serverInstallCancelled");case"timeout":return s("settings.serverInstallTimeout");case"failed":return t.errorMessage??s("settings.serverInstallFailed");default:return t.errorMessage??s("settings.serverInstallFailed")}}function Al(t,a,n){if(n)return"warning";if(a)switch(a.status){case"queued":case"running":return"warning";case"succeeded":return a.restartRequired?"warning":"success";case"failed":case"cancelled":case"timeout":return"danger";default:return"neutral"}return t?t.checkStatus==="check_failed"?"danger":t.restartRequired||t.hasUpdate?"warning":"success":"neutral"}function vs(t){return t==="queued"||t==="running"}function Pl(t,a){return a?t.targetVersion?Et(a.currentVersion)===Et(t.targetVersion):!a.hasUpdate:!1}function Et(t){return(t??"").trim().replace(/^v/i,"")}function El({open:t,busy:a,mobile:n,targetVersion:r,onClose:c,onConfirm:h}){const j=e.jsxs(ce,{children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:a,onClick:c,children:s("common.cancel")}),e.jsx("button",{type:"button",className:"primary-button",disabled:a,onClick:h,children:a?s("common.loading"):s("settings.serverInstallConfirmAction")})]}),w=e.jsxs(X,{className:"settings-update-confirm-section",children:[e.jsx("p",{className:"settings-update-confirm-warning",children:s("settings.serverInstallWarning")}),e.jsxs("div",{className:"settings-update-confirm-meta",children:[e.jsx("span",{className:"settings-update-label",children:s("settings.serverTargetVersion")}),e.jsx("strong",{className:"settings-update-value",children:r??"-"})]})]});return n?e.jsx(Le,{open:t,title:s("settings.serverInstallConfirmTitle"),description:s("settings.serverInstallConfirmDescription"),height:"auto",kind:"form",dismissible:!a,footer:j,onClose:c,children:w}):e.jsx(Ae,{open:t,title:s("settings.serverInstallConfirmTitle"),description:s("settings.serverInstallConfirmDescription"),size:"compact",layout:"confirm",bodyClassName:"settings-update-confirm-body",dismissible:!a,footer:j,onClose:c,children:w})}async function Ll(){return await J.request("/api/system/relay-tunnel/status")}async function zs(t){return await J.request("/api/system/relay-tunnel/config",{method:"PUT",body:JSON.stringify(t)})}async function Il(t){return await J.request("/api/system/relay-tunnel/control/login",{method:"POST",body:JSON.stringify(t)})}async function Ul(){return await J.request("/api/system/relay-tunnel/control/logout",{method:"POST"})}async function Ol(t){const a=t.hostLabel.trim(),n=`/api/system/relay-tunnel/control/host-label-availability?hostLabel=${encodeURIComponent(a)}`;return await J.request(n)}async function Rl(t){return await J.request("/api/system/relay-tunnel/control/bind",{method:"POST",body:JSON.stringify(t)})}async function Fl(){return await J.request("/api/system/relay-tunnel/control/wallet")}async function Lt(){return await J.request("/api/system/relay-tunnel/enable",{method:"POST"})}async function Bl(){return await J.request("/api/system/relay-tunnel/disable",{method:"POST"})}async function _l(){return await J.request("/api/system/relay-tunnel/unbind",{method:"POST"})}function Vl(){const t=hs(),{showToast:a}=at(),[n,r]=l.useState(null),[c,h]=l.useState(""),[j,w]=l.useState(()=>ut()),[p,T]=l.useState(()=>Hn()),[d,C]=l.useState(""),[F,D]=l.useState(""),[k,v]=l.useState(null),[I,u]=l.useState({status:"idle"}),[f,x]=l.useState(!0),[b,o]=l.useState(null),[N,A]=l.useState(null),[W,S]=l.useState(null),[O,L]=l.useState(null),[G,H]=l.useState(null),B=l.useRef(!0),te=ks(n==null?void 0:n.controlBaseUrl),$=Wn(j),ae=$??te,Q=ks($??(n==null?void 0:n.controlBaseUrl)),U=c.trim(),z=$!==null&&$!==te,M=(n==null?void 0:n.activated)??!1,m=d.trim().length>0&&F.trim().length>0,q=!!(n!=null&&n.controlAccountEmail),R=n!=null&&n.bindingId?!0:I.status==="available"&&I.hostLabel===U,ge=!!(n!=null&&n.bindingId)||q&&U.length>0&&R,me=It({controlBaseUrl:Q,tunnelDomain:n==null?void 0:n.tunnelDomain,hostLabel:c}),Z=!!(n!=null&&n.controlAccountEmail||n!=null&&n.bindingId),be=!!(n!=null&&n.bindingId||R),P=!!(n!=null&&n.enabled&&(n!=null&&n.bindingId)),_=!!(n!=null&&n.bindingId)||ge,ee=k?os(k.grantedBytes):s("settings.tailscaleUnavailable"),ue=os(k?k.usedBytes:n==null?void 0:n.trafficUsedBytes),fe=os(k?k.remainingBytes:n==null?void 0:n.trafficRemainingBytes),ke=nt(He.getState()),xe=oa(),De=xe?s(da(xe.kind)):null,ye=xe?Hl(xe):null;l.useEffect(()=>(B.current=!0,Pe(!1),()=>{B.current=!1}),[]),l.useEffect(()=>{if(!M)return;const i=window.setInterval(()=>{Pe(!0)},5e3);return()=>{window.clearInterval(i)}},[M]),l.useEffect(()=>{!M||!q||Me()},[M,q]),l.useEffect(()=>{n!=null&&n.bindingId||I.status!=="idle"&&I.hostLabel!==U&&u({status:"idle"})},[I,U,n==null?void 0:n.bindingId]),l.useEffect(()=>{w(te)},[te]);async function Pe(i,V){i||x(!0);try{const ie=await Ll();if(!B.current)return;je(ie,V),A(null)}catch(ie){B.current&&A(Qs(ie,"status",ke))}finally{B.current&&!i&&x(!1)}}function je(i,V){r(i),H(null),i.controlAccountEmail||v(null),i.tunnelDomain&&c.trim().length===0&&h(Nn(i.tunnelDomain)),((V==null?void 0:V.syncProfile)??!0)&&ze(i)}async function Me(){try{const i=await Fl();if(!B.current)return;v(i.wallet)}catch(i){B.current&&H(Ve(i))}}async function Ze(){if(m){o("login-control"),H(null);try{const i=await Il({email:d.trim(),password:F});L(null),je(i),await Me()}catch(i){L(Qs(i,"login",ke))}finally{o(null)}}}async function Fe(){o("logout-control"),H(null);try{const i=await Ul();je(i),v(null),u({status:"idle"})}catch(i){H(Ve(i))}finally{o(null)}}async function Ye(){if(!U)throw new Error(s("settings.relayTunnelHostLabelRequired"));if(I.status==="available"&&I.hostLabel===U)return{hostLabel:I.hostLabel,tunnelDomain:I.tunnelDomain,available:!0,reason:"available"};u({status:"checking",hostLabel:U});const i=await Ol({hostLabel:U});if(!i.available||!i.tunnelDomain){const V=Wl(i);throw u({status:"error",hostLabel:U,message:V}),new Error(V)}return u({status:"available",hostLabel:U,tunnelDomain:i.tunnelDomain}),i}async function Ie(){if(!(!Z||n!=null&&n.bindingId)){o("check-host-label"),H(null);try{await Ye()}catch{}finally{o(null)}}}async function Ne(){o("learn-service"),H(null);try{await Zs(t.bridge.openExternal,Q)}catch(i){H(Ve(i))}finally{o(null)}}async function Y(){o("manage-account"),H(null);try{await Zs(t.bridge.openExternal,Q)}catch(i){H(Ve(i))}finally{o(null)}}async function Ue(){if(me)try{await zl(me,t),a({title:s("settings.relayTunnelAccessUrlCopied"),tone:"success"})}catch(i){a({title:i instanceof Error?i.message:s("settings.relayTunnelCopyAccessUrlFailed"),tone:"error"})}}async function Be(){if(me)try{await Zs(t.bridge.openExternal,me)}catch(i){a({title:i instanceof Error?i.message:s("settings.relayTunnelOpenAccessUrlFailed"),tone:"error"})}}async function we(){if(ge){o("enable"),H(null);try{let i=n;if(i!=null&&i.activated||(i=await zs({activated:!0,controlBaseUrl:ae}),je(i)),i!=null&&i.bindingId||(await Ye(),i=await Rl({hostLabel:U}),je(i),await Me()),!(i!=null&&i.enabled)){const V=await Lt();je(V)}}catch(i){H(Ve(i))}finally{o(null)}}}async function We(){if(n!=null&&n.bindingId){o("reconnect"),H(null);try{n!=null&&n.enabled&&await Bl();const i=await Lt();je(i),i.controlAccountEmail&&await Me()}catch(i){const V=Ve(i);await Pe(!0,{syncProfile:!1}),H(V)}finally{o(null)}}}async function $e(){o("disconnect-device"),H(null);try{if(n!=null&&n.bindingId||n!=null&&n.accountId){const i=await _l();je(i)}if(n!=null&&n.activated){const i=await zs({activated:!1});je(i)}v(null),C(""),h(""),D(""),u({status:"idle"})}catch(i){H(Ve(i))}finally{o(null)}}async function Se(){if(!$){S(s("settings.serverInvalid"));return}o("save-config"),S(null);try{const i=await zs({controlBaseUrl:$});S(null),je(i)}catch(i){S(Qs(i,"config",ke))}finally{o(null)}}return e.jsxs("div",{className:"settings-relay-tunnel-panel",children:[f&&!n?e.jsx(X,{heading:s("settings.relayTunnelWizardTitle"),description:s("settings.relayTunnelWizardDescription"),children:e.jsx("p",{className:"settings-remote-access-panel-note",children:s("common.loading")})}):null,!f&&!P?e.jsxs(X,{heading:s("settings.relayTunnelWizardTitle"),description:s("settings.relayTunnelWizardDescription"),actions:e.jsx("button",{className:"secondary-button",disabled:b!==null,type:"button",onClick:()=>void Ne(),children:s("settings.relayTunnelLearnService")}),children:[N?e.jsx(Ks,{title:s("settings.relayTunnelStatusErrorTitle"),message:N,action:e.jsx("button",{className:"secondary-button",disabled:f||b!==null,type:"button",onClick:()=>void Pe(!1),children:s("common.retry")})}):null,e.jsxs("div",{className:"settings-relay-tunnel-step-list",children:[e.jsxs("section",{className:"settings-relay-tunnel-step","data-state":Gs(Z,!0),children:[e.jsxs("div",{className:"settings-relay-tunnel-step-header",children:[e.jsx("span",{className:"settings-relay-tunnel-step-badge",children:"1"}),e.jsxs("div",{className:"settings-relay-tunnel-step-copy",children:[e.jsx("strong",{className:"settings-relay-tunnel-step-title",children:s("settings.relayTunnelStepLoginTitle")}),e.jsx("p",{className:"settings-relay-tunnel-step-description",children:s("settings.relayTunnelStepLoginDescription")})]}),e.jsx(re,{className:"settings-relay-tunnel-step-tag",children:s(Js(Z,!0))})]}),e.jsx("div",{className:"settings-relay-tunnel-step-body",children:Z?e.jsxs(e.Fragment,{children:[n!=null&&n.controlAccountEmail?e.jsx("p",{className:"settings-relay-tunnel-success",children:s("settings.relayTunnelLoggedInAs",{email:n.controlAccountEmail})}):e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelStepLoginConnected")}),e.jsx(ce,{align:"start",children:e.jsx("button",{className:"secondary-button",disabled:b!==null,type:"button",onClick:()=>{if(n!=null&&n.bindingId){$e();return}Fe()},children:s("common.logout")})})]}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"settings-relay-tunnel-form",children:[e.jsx(se,{label:s("settings.relayTunnelAccountEmail"),children:e.jsx("input",{"aria-label":s("settings.relayTunnelAccountEmail"),className:"settings-text-input",type:"email",value:d,onChange:i=>{C(i.target.value),L(null)},placeholder:s("settings.relayTunnelAccountEmailPlaceholder")})}),e.jsx(se,{label:s("settings.relayTunnelAccountPassword"),children:e.jsx("input",{"aria-label":s("settings.relayTunnelAccountPassword"),className:"settings-text-input",type:"password",value:F,onChange:i=>{D(i.target.value),L(null)},placeholder:s("settings.relayTunnelAccountPasswordPlaceholder")})}),O?e.jsx(Ks,{title:s("settings.relayTunnelLoginErrorTitle"),message:O}):null,e.jsxs(ce,{align:"start",children:[e.jsx("button",{className:"settings-button",disabled:b!==null||!m,type:"button",onClick:()=>void Ze(),children:b==="login-control"?s("common.loading"):s("settings.relayTunnelLoginAccount")}),e.jsx("button",{className:"secondary-button",disabled:b!==null,type:"button",onClick:()=>{T(i=>!i),S(null)},children:p?s("settings.relayTunnelAdvancedSettingsHide"):s("settings.relayTunnelAdvancedSettings")})]}),p?e.jsxs("div",{className:"settings-relay-tunnel-inline-stack",children:[e.jsx(se,{label:s("settings.relayTunnelControlBaseUrl"),description:s("settings.relayTunnelServerAddressHint"),children:e.jsx("input",{"aria-label":s("settings.relayTunnelControlBaseUrl"),className:"settings-text-input",type:"url",value:j,onChange:i=>{w(i.target.value),S(null)},placeholder:ut()})}),e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelAdvancedSettingsDescription")}),W?e.jsx(Ks,{title:s("settings.relayTunnelConfigErrorTitle"),message:W}):null,e.jsx(ce,{align:"start",children:e.jsx("button",{className:"settings-button",disabled:f||b!==null||!z,type:"button",onClick:()=>void Se(),children:b==="save-config"?s("common.loading"):s("common.save")})})]}):null]})})})]}),e.jsxs("section",{className:"settings-relay-tunnel-step","data-state":Gs(be,Z),children:[e.jsxs("div",{className:"settings-relay-tunnel-step-header",children:[e.jsx("span",{className:"settings-relay-tunnel-step-badge",children:"2"}),e.jsxs("div",{className:"settings-relay-tunnel-step-copy",children:[e.jsx("strong",{className:"settings-relay-tunnel-step-title",children:s("settings.relayTunnelStepHostLabelTitle")}),e.jsx("p",{className:"settings-relay-tunnel-step-description",children:s("settings.relayTunnelStepHostLabelDescription")})]}),e.jsx(re,{className:"settings-relay-tunnel-step-tag",children:s(Js(be,Z))})]}),e.jsx("div",{className:"settings-relay-tunnel-step-body",children:Z?n!=null&&n.bindingId?e.jsx("p",{className:"settings-relay-tunnel-success",children:s("settings.relayTunnelHostLabelAvailable",{domain:me??n.tunnelDomain??s("settings.relayTunnelUnbound")})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-relay-tunnel-domain-row",children:[e.jsx("input",{"aria-label":s("settings.relayTunnelHostLabel"),className:"settings-text-input settings-relay-tunnel-domain-prefix",value:c,onChange:i=>h(i.target.value),placeholder:s("settings.relayTunnelHostLabelPlaceholder")}),e.jsx("span",{className:"settings-relay-tunnel-domain-suffix",children:s("settings.relayTunnelHostLabelSuffix")}),e.jsx("button",{className:"settings-button settings-relay-tunnel-domain-check",disabled:b!==null||U.length===0,type:"button",onClick:()=>void Ie(),children:b==="check-host-label"?s("common.loading"):s("settings.relayTunnelHostLabelCheck")})]}),e.jsxs("div",{className:"settings-relay-tunnel-inline-stack",children:[I.status==="available"&&I.hostLabel===U?e.jsx("p",{className:"settings-relay-tunnel-success",children:s("settings.relayTunnelHostLabelAvailable",{domain:It({controlBaseUrl:ae,tunnelDomain:I.tunnelDomain,hostLabel:I.hostLabel})??I.tunnelDomain})}):null,I.status==="checking"&&I.hostLabel===U?e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelHostLabelChecking")}):null,I.status==="error"&&I.hostLabel===U?e.jsx("p",{className:"settings-relay-tunnel-error",children:I.message}):null]})]}):e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelStepLocked")})})]}),e.jsxs("section",{className:"settings-relay-tunnel-step","data-state":Gs(P,be),children:[e.jsxs("div",{className:"settings-relay-tunnel-step-header",children:[e.jsx("span",{className:"settings-relay-tunnel-step-badge",children:"3"}),e.jsxs("div",{className:"settings-relay-tunnel-step-copy",children:[e.jsx("strong",{className:"settings-relay-tunnel-step-title",children:s("settings.relayTunnelStepStartTitle")}),e.jsx("p",{className:"settings-relay-tunnel-step-description",children:s("settings.relayTunnelStepStartDescription")})]}),e.jsx(re,{className:"settings-relay-tunnel-step-tag",children:s(Js(P,be))})]}),e.jsx("div",{className:"settings-relay-tunnel-step-body",children:be?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:M?s("settings.relayTunnelStepStartReady"):s("settings.relayTunnelActivationHint")}),e.jsx(ce,{align:"start",children:e.jsx("button",{className:"settings-button",disabled:b!==null||!_,type:"button",onClick:()=>void we(),children:b==="enable"?s("common.loading"):s("settings.relayTunnelStartAction")})})]}):e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelStepLocked")})})]})]}),e.jsxs("div",{className:"settings-relay-tunnel-inline-stack",children:[xe&&De&&ye?e.jsx(ql,{hint:ye,label:De,url:xe.url}):null,e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelTrustBoundaryNotice")}),n!=null&&n.lastError?e.jsx("p",{className:"settings-relay-tunnel-error",children:s("settings.relayTunnelRecentError",{message:n.lastError})}):null,G?e.jsx("p",{className:"settings-relay-tunnel-error",children:G}):null]})]}):null,!f&&P?e.jsxs(X,{heading:s("settings.relayTunnelReadyTitle"),description:s("settings.relayTunnelReadyDescription"),children:[e.jsxs(pe,{compact:!0,children:[xe&&De?e.jsxs(e.Fragment,{children:[e.jsx(qe,{label:s("settings.relayTunnelClientRouteLabel"),value:De}),e.jsx(qe,{label:s("settings.relayTunnelClientRouteAddressLabel"),value:xe.url})]}):null,e.jsx(qe,{className:"settings-relay-tunnel-summary-line-access-url",label:s("settings.relayTunnelAccessUrlLabel"),trailing:me?e.jsxs("div",{className:"settings-relay-tunnel-access-url",children:[e.jsx("span",{className:"settings-relay-tunnel-access-url-text",title:me,children:me}),e.jsxs("span",{className:"settings-relay-tunnel-access-url-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>void Ue(),children:s("settings.relayTunnelCopyAccessUrl")}),e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>void Be(),children:s("settings.relayTunnelOpenAccessUrl")})]})]}):e.jsx("span",{className:"settings-relay-tunnel-summary-value",children:s("settings.relayTunnelUnbound")})}),e.jsx(qe,{label:s("settings.relayTunnelTrafficGranted"),value:ee}),e.jsx(qe,{label:s("settings.relayTunnelTrafficUsed"),value:ue}),e.jsx(qe,{label:s("settings.relayTunnelTrafficRemaining"),value:fe})]}),e.jsxs(ce,{align:"start",className:"settings-relay-tunnel-ready-actions",children:[e.jsx("button",{className:"secondary-button",disabled:b!==null||!(n!=null&&n.bindingId),type:"button",onClick:()=>void We(),children:b==="reconnect"?s("common.loading"):s("settings.relayTunnelReconnectAction")}),e.jsx("button",{className:"secondary-button",disabled:b!==null,type:"button",onClick:()=>void Y(),children:b==="manage-account"?s("common.loading"):s("settings.relayTunnelManageAccountAction")}),e.jsx("button",{className:"settings-button settings-button-danger",disabled:b!==null,type:"button",onClick:()=>void $e(),children:b==="disconnect-device"?s("common.loading"):s("settings.relayTunnelDisconnectDeviceAction")})]}),e.jsxs("div",{className:"settings-relay-tunnel-inline-stack",children:[xe&&De&&ye?e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:ye}):null,e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelTrustBoundaryNotice")}),n!=null&&n.lastError?e.jsx("p",{className:"settings-relay-tunnel-error",children:s("settings.relayTunnelRecentError",{message:n.lastError})}):null,G?e.jsx("p",{className:"settings-relay-tunnel-error",children:G}):null]})]}):null]});function ze(i){const V=He.getState(),ie=$n(V);if(!ie)return;const _e=Ee(i);Kl(ie.relayTunnel??null,_e)||He.update({hosts:V.hosts.map(ns=>ns.id===ie.id?{...ns,relayTunnel:_e,updatedAt:new Date().toISOString()}:ns)})}function Ee(i){return!(i!=null&&i.bindingId)||!i.tunnelDomain?null:{provider:"codingns_relay",enabled:i.enabled,tunnelDomain:i.tunnelDomain.trim().toLowerCase(),controlBaseUrl:ks(i.controlBaseUrl),bindingId:i.bindingId,hostFingerprint:i.hostFingerprint,candidateEndpoints:i.candidateEndpoints}}}function ql({label:t,url:a,hint:n}){return e.jsxs(e.Fragment,{children:[e.jsxs(pe,{compact:!0,children:[e.jsx(qe,{label:s("settings.relayTunnelClientRouteLabel"),value:t}),e.jsx(qe,{label:s("settings.relayTunnelClientRouteAddressLabel"),value:a})]}),e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:n})]})}function qe({label:t,value:a,trailing:n,className:r}){return e.jsx(he,{className:r,label:t,trailing:n??e.jsx("span",{className:"settings-relay-tunnel-summary-value",children:a})})}function Hl(t){if(t.probeInProgress)return s("settings.relayTunnelClientRouteHintRelayProbing");switch(t.kind){case"relay":return s("settings.relayTunnelClientRouteHintRelay");case"lan":return s("settings.relayTunnelClientRouteHintLan");case"loopback":return s("settings.relayTunnelClientRouteHintLoopback");case"tailscale":return s("settings.relayTunnelClientRouteHintTailscale");default:return s("settings.relayTunnelClientRouteHintDirect")}}function Ks({title:t,message:a,action:n}){return e.jsxs("div",{className:"settings-relay-tunnel-feedback-banner",role:"alert",children:[e.jsxs("div",{className:"settings-relay-tunnel-feedback-copy",children:[e.jsx("strong",{children:t}),e.jsx("span",{children:a})]}),n?e.jsx("div",{className:"settings-relay-tunnel-feedback-action",children:n}):null]})}function Gs(t,a){return t?"done":a?"current":"pending"}function Js(t,a){return t?"settings.relayTunnelStepDone":a?"settings.relayTunnelStepCurrent":"settings.relayTunnelStepPending"}function Wl(t){switch(t.reason){case"reserved":return s("settings.relayTunnelHostLabelReserved");case"occupied":return s("settings.relayTunnelHostLabelOccupied");case"available":return t.tunnelDomain?s("settings.relayTunnelHostLabelAvailable",{domain:t.tunnelDomain}):s("settings.relayTunnelHostLabelUnavailable");default:return s("settings.relayTunnelHostLabelUnavailable")}}function Ve(t){return t instanceof Re||t instanceof Error?t.message:s("settings.relayTunnelLoadFailed")}function Qs(t,a,n){if(t instanceof Re&&t.errorCode==="NETWORK_ERROR"){const r=(n==null?void 0:n.trim())||s("common.unknown");return a==="login"?s("settings.relayTunnelLoginNetworkError",{address:r}):a==="config"?s("settings.relayTunnelConfigNetworkError",{address:r}):s("settings.relayTunnelStatusNetworkError",{address:r})}return Ve(t)}function os(t){if(!t)return s("settings.tailscaleUnavailable");const a=Number(t);return!Number.isFinite(a)||a<1024?`${t} B`:a<1024**2?`${(a/1024).toFixed(1)} KB`:a<1024**3?`${(a/1024**2).toFixed(1)} MB`:`${(a/1024**3).toFixed(2)} GB`}function Nn(t){return t?t.split(".")[0]||s("common.unknown"):s("common.unknown")}function It(t){var r,c,h,j;const a=Ut(t.hostLabel)??Ut(Nn(t.tunnelDomain));if(!a)return((r=t.tunnelDomain)==null?void 0:r.trim())??null;const n=(c=t.controlBaseUrl)==null?void 0:c.trim();if(!n)return((h=t.tunnelDomain)==null?void 0:h.trim())??null;try{const w=new URL(n);return w.hostname=`${a}.${w.hostname}`,w.pathname="/",w.search="",w.hash="",w.origin}catch{return((j=t.tunnelDomain)==null?void 0:j.trim())??null}}function Ut(t){const a=(t==null?void 0:t.trim().toLowerCase())??"";return!a||a===s("common.unknown").toLowerCase()?null:a}async function Zs(t,a){!(await t(a)).ok&&typeof window<"u"&&window.open(a,"_blank","noopener,noreferrer")}function $l(t){var r;if(typeof document>"u")return!1;const a=(r=document.execCommand)==null?void 0:r.bind(document);if(typeof a!="function")return!1;const n=document.createElement("textarea");n.value=t,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.top="-9999px",n.style.opacity="0",document.body.append(n),n.select();try{return a("copy")}catch{return!1}finally{n.remove()}}async function zl(t,a){var n;if(a.bridge.supported)try{if((await a.bridge.writeClipboardText(t)).ok)return}catch{}if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText))try{await navigator.clipboard.writeText(t);return}catch{}if(!$l(t))throw new Error(s("settings.relayTunnelCopyAccessUrlFailed"))}function Kl(t,a){return t===a?!0:!t||!a?!1:t.provider===a.provider&&t.enabled===a.enabled&&t.tunnelDomain===a.tunnelDomain&&t.controlBaseUrl===a.controlBaseUrl&&(t.bindingId??null)===(a.bindingId??null)&&(t.hostFingerprint??null)===(a.hostFingerprint??null)&&JSON.stringify(t.candidateEndpoints??[])===JSON.stringify(a.candidateEndpoints??[])}async function Ot(){return await J.request("/api/system/tailscale/status")}async function Rt(t){return await J.request("/api/system/tailscale/config",{method:"PUT",body:JSON.stringify(t)})}async function Gl(){return await J.request("/api/system/tailscale/enable",{method:"POST"})}async function Jl(){return await J.request("/api/system/tailscale/disable",{method:"POST"})}async function Ql(){return await J.request("/api/system/tailscale/login",{method:"POST"})}async function Zl(){return await J.request("/api/system/tailscale/logout",{method:"POST"})}function Yl({children:t}){return e.jsx("div",{className:"settings-remote-access-metrics",children:t})}function Ns({label:t,value:a}){return e.jsxs("article",{className:"settings-remote-access-metric-card",children:[e.jsx("span",{className:"settings-remote-access-metric-label",children:t}),e.jsx("strong",{className:"settings-remote-access-metric-value",children:a})]})}function Xl({checked:t,label:a,disabled:n,onChange:r}){return e.jsxs("div",{className:"settings-remote-access-switch",children:[e.jsx("span",{className:"settings-remote-access-switch-label",children:a}),e.jsxs("label",{className:"settings-mobile-switch","data-disabled":n?"true":void 0,onClick:c=>{if(n){c.preventDefault();return}c.target instanceof HTMLInputElement||(c.preventDefault(),r(!t))},children:[e.jsx("input",{type:"checkbox","aria-label":a,checked:t,disabled:n,onChange:c=>r(c.target.checked)}),e.jsx("span",{className:"settings-mobile-switch-track","aria-hidden":"true",children:e.jsx("span",{className:"settings-mobile-switch-thumb"})})]})]})}function er({configMode:t="modal"}){const a=hs(),[n,r]=l.useState(null),[c,h]=l.useState(""),[j,w]=l.useState(""),[p,T]=l.useState(!0),[d,C]=l.useState(null),[F,D]=l.useState(null),[k,v]=l.useState(!1),[I,u]=l.useState(!1),f=l.useRef(!0),x=l.useRef(!1),b=l.useRef(async()=>{}),o=t==="inline",N=(n==null?void 0:n.activated)??!1;x.current=I;function A(U){if(r(U),h(U.controlServerUrl??""),w(U.hostname??""),D(null),!U.activated){u(!1),v(!1);return}x.current&&!_t(U.lastError)&&u(!1)}b.current=async U=>{U||T(!0);try{const z=await Ot();if(!f.current)return;A(z)}catch(z){if(!f.current)return;D(ds(z))}finally{f.current&&!U&&T(!1)}},l.useEffect(()=>(f.current=!0,b.current(!1),()=>{f.current=!1}),[]),l.useEffect(()=>{if(!N)return;const U=window.setInterval(()=>{b.current(!0)},5e3);return()=>{window.clearInterval(U)}},[N]),l.useEffect(()=>{if(!I||!N)return;function U(){b.current(!0)}function z(){document.visibilityState==="visible"&&b.current(!0)}return window.addEventListener("focus",U),document.addEventListener("visibilitychange",z),()=>{window.removeEventListener("focus",U),document.removeEventListener("visibilitychange",z)}},[N,I]);const W=((n==null?void 0:n.controlServerUrl)??"")!==c.trim()||((n==null?void 0:n.hostname)??"")!==j.trim(),S=N&&_t(n==null?void 0:n.lastError),O=N&&nr(a.ui.osFamily)&&S;async function L(){const U=await Rt({controlServerUrl:Bt(c),hostname:Bt(j)});return A(U),U}async function G(U){C("toggle-activation"),D(null);try{const z=await Rt({activated:U});A(z)}catch(z){D(ds(z))}finally{C(null),T(!1)}}async function H(U){C(U),D(null);try{W&&U!=="disable"&&U!=="logout"&&await L();const z=U==="enable"?await Gl():U==="disable"?await Jl():U==="login"?await Ql():await Zl();A(z)}catch(z){D(ds(z))}finally{C(null)}}async function B(){C("save"),D(null);try{await L(),v(!1)}catch(U){D(ds(U))}finally{C(null)}}async function te(){C("refresh"),D(null);try{const U=await Ot();A(U)}catch(U){D(ds(U))}finally{C(null),T(!1)}}async function $(){const U=ar(a.ui.osFamily);if(U){C("install"),D(null);try{const z=await a.bridge.openExternal(U);if(!z.ok){D(z.detail??s("settings.tailscaleInstallOpenFailed"));return}u(!0)}catch(z){D(z instanceof Error?z.message:s("settings.tailscaleInstallOpenFailed"))}finally{C(null)}}}function ae(){d!=="save"&&v(!1)}const Q=N?e.jsxs("span",{className:"settings-tailscale-status-indicator","data-tone":ir((n==null?void 0:n.phase)??"disabled"),children:[e.jsx("span",{className:"settings-tailscale-status-dot","aria-hidden":"true"}),tr((n==null?void 0:n.phase)??"disabled")]}):s("settings.remoteAccessFeatureDisabledValue");return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-tailscale-panel",children:[e.jsx(X,{heading:s("settings.tailscaleSectionTitle"),description:s("settings.tailscaleSectionDescription"),actions:e.jsx(Xl,{checked:N,label:s("settings.tailscaleMasterSwitchLabel"),disabled:d!==null,onChange:U=>{G(U)}}),children:p&&!n?e.jsx("p",{className:"settings-remote-access-panel-note",children:s("common.loading")}):e.jsxs(e.Fragment,{children:[e.jsxs(Yl,{children:[e.jsx(Ns,{label:s("settings.tailscaleStatusIndicator"),value:Q}),e.jsx(Ns,{label:s("settings.tailscaleServerAddress"),value:N?(n==null?void 0:n.reachableBaseUrl)??s("settings.tailscaleUnavailable"):s("settings.tailscaleUnavailable")}),e.jsx(Ns,{label:s("settings.tailscaleAccountName"),value:N?(n==null?void 0:n.accountName)??s("settings.tailscaleUnavailable"):s("settings.tailscaleUnavailable")}),e.jsx(Ns,{label:s("settings.tailscaleIpAddress"),value:N?sr(n):s("settings.tailscaleUnavailable")})]}),N?null:e.jsx("p",{className:"settings-remote-access-panel-note",children:s("settings.tailscaleActivationHint")}),N&&(n==null?void 0:n.phase)==="needs_login"&&n.loginUrl?e.jsx("p",{className:"settings-tailscale-login-url",children:e.jsx("a",{className:"settings-tailscale-link",href:n.loginUrl,rel:"noreferrer",target:"_blank",children:n.loginUrl})}):null,F||n!=null&&n.lastError?e.jsx("p",{className:"settings-relay-tunnel-error",children:F??(n==null?void 0:n.lastError)}):null,N?e.jsxs(ce,{align:"start",children:[O?e.jsx("button",{className:"settings-button",type:"button",disabled:p||d!==null,onClick:()=>{$()},children:d==="install"?s("common.loading"):s("settings.tailscaleInstallAction")}):null,o?null:e.jsx("button",{className:"secondary-button",type:"button",disabled:p||d!==null,onClick:()=>v(!0),children:s("settings.tailscaleConfigure")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:p||d!==null,onClick:()=>{te()},children:d==="refresh"?s("common.loading"):s("settings.tailscaleRefresh")}),n!=null&&n.enabled?e.jsx("button",{className:"secondary-button",type:"button",disabled:p||d!==null||S,onClick:()=>{H("disable")},children:d==="disable"?s("common.loading"):s("settings.tailscaleDisable")}):e.jsx("button",{className:"secondary-button",type:"button",disabled:p||d!==null||S,onClick:()=>{H("enable")},children:d==="enable"?s("common.loading"):s("settings.tailscaleEnable")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:p||d!==null||!(n!=null&&n.enabled)||S,onClick:()=>{H("login")},children:d==="login"?s("common.loading"):s("settings.tailscaleLogin")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:p||d!==null||!(n!=null&&n.enabled)||S,onClick:()=>{H("logout")},children:d==="logout"?s("common.loading"):s("settings.tailscaleLogout")})]}):null]})}),o&&N?e.jsx(X,{heading:s("settings.tailscaleConfigModalTitle"),description:s("settings.tailscaleConfigModalDescription"),children:e.jsx(Ft,{controlServerUrlDraft:c,hostnameDraft:j,pendingAction:d,configDirty:W,onControlServerUrlChange:h,onHostnameChange:w,onSave:()=>{B()}})}):null]}),e.jsx(ms,{open:!o&&N&&k,title:s("settings.tailscaleConfigModalTitle"),description:s("settings.tailscaleConfigModalDescription"),size:"regular",onClose:ae,children:e.jsx(Ft,{controlServerUrlDraft:c,hostnameDraft:j,pendingAction:d,configDirty:W,footer:e.jsx("div",{className:"settings-tailscale-modal-actions",children:e.jsx("button",{className:"secondary-button",type:"button",disabled:d==="save",onClick:ae,children:s("common.cancel")})}),onControlServerUrlChange:h,onHostnameChange:w,onSave:()=>{B()}})})]})}function Ft({controlServerUrlDraft:t,hostnameDraft:a,pendingAction:n,configDirty:r,footer:c,onControlServerUrlChange:h,onHostnameChange:j,onSave:w}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-tailscale-form",children:[e.jsx(se,{label:s("settings.tailscaleControlServer"),children:e.jsx("input",{"aria-label":s("settings.tailscaleControlServer"),className:"settings-text-input",placeholder:s("settings.tailscaleControlServerPlaceholder"),value:t,onChange:p=>h(p.target.value)})}),e.jsx(se,{label:s("settings.tailscaleHostname"),children:e.jsx("input",{"aria-label":s("settings.tailscaleHostname"),className:"settings-text-input",placeholder:s("settings.tailscaleHostnamePlaceholder"),value:a,onChange:p=>j(p.target.value)})})]}),e.jsxs(ce,{align:"start",className:"settings-tailscale-config-actions",children:[c,e.jsx("button",{className:"settings-button",type:"button",disabled:n!==null||!r,onClick:w,children:n==="save"?s("common.loading"):s("common.save")})]})]})}function Bt(t){const a=t.trim();return a.length>0?a:null}function ds(t){return t instanceof Re||t instanceof Error?t.message:s("settings.tailscaleLoadFailed")}function sr(t){if(!t)return s("settings.tailscaleUnavailable");const a=[t.tailnetIpv4,t.tailnetIpv6].filter(n=>!!n);return a.length>0?a.join(" / "):s("settings.tailscaleUnavailable")}function tr(t){switch(t){case"blocked_uninitialized":return s("settings.tailscalePhaseBlockedUninitialized");case"starting":return s("settings.tailscalePhaseStarting");case"needs_login":return s("settings.tailscalePhaseNeedsLogin");case"running":return s("settings.tailscalePhaseRunning");case"stopping":return s("settings.tailscalePhaseStopping");case"error":return s("settings.tailscalePhaseError");case"disabled":default:return s("settings.tailscalePhaseDisabled")}}function _t(t){return t?t.includes("Tailscale CLI"):!1}function nr(t){return t==="macos"||t==="windows"}function ar(t){switch(t){case"macos":return"https://tailscale.com/download/mac";case"windows":return"https://tailscale.com/download/windows";default:return null}}function ir(t){switch(t){case"running":return"green";case"starting":case"needs_login":case"error":return"yellow";case"disabled":case"blocked_uninitialized":case"stopping":default:return"gray"}}function Sn({open:t,mobile:a,onClose:n}){const[r,c]=l.useState("tunnel"),h=l.useId(),j=[{id:"tunnel",label:s("settings.remoteAccessTunnelTab")},{id:"tailscale",label:s("settings.remoteAccessTailscaleTab")}],w=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"settings-model-tabs",role:"tablist","aria-label":s("settings.remoteAccessTabsLabel"),children:j.map(p=>{const T=`${h}-${p.id}-tab`,d=`${h}-${p.id}-panel`,C=r===p.id;return e.jsx("button",{id:T,type:"button",role:"tab",className:"settings-model-tab","data-active":C?"true":void 0,"aria-selected":C,"aria-controls":d,onClick:()=>c(p.id),children:p.label},p.id)})}),r==="tunnel"?e.jsx("div",{id:`${h}-tunnel-panel`,"aria-labelledby":`${h}-tunnel-tab`,role:"tabpanel",children:e.jsx(Vl,{})}):e.jsx("div",{id:`${h}-tailscale-panel`,"aria-labelledby":`${h}-tailscale-tab`,role:"tabpanel",children:e.jsx(er,{configMode:"inline"})})]});return a?e.jsx(Le,{open:t,title:s("settings.remoteAccessModalTitle"),description:s("settings.remoteAccessModalDescription"),height:"full",kind:"form",showHandle:!0,onClose:n,children:w}):e.jsx(ms,{open:t,title:s("settings.remoteAccessModalTitle"),description:s("settings.remoteAccessModalDescription"),size:"wide",onClose:n,children:w})}function wn({open:t,mobile:a,workspaceId:n,onClose:r}){var U,z;const c=it(),{showToast:h}=at(),[j,w]=l.useState([]),[p,T]=l.useState(""),[d,C]=l.useState(null),[F,D]=l.useState([]),[k,v]=l.useState([]),[I,u]=l.useState(!1),[f,x]=l.useState(!1),[b,o]=l.useState(!1),[N,A]=l.useState(!1),[W,S]=l.useState(null);async function O(M){u(!0);try{const q=(await Ca()).items;w(q);const R=lr(M??p,q);return T(R),R}catch(m){return h({title:m instanceof Error?m.message:s("plugins.listLoadFailed"),tone:"error"}),""}finally{u(!1)}}async function L(M){if(!M){C(null),D([]);return}x(!0);try{const[m,q]=await Promise.all([Da(M),Ma(M)]);C(m),D(q.items)}catch(m){h({title:m instanceof Error?m.message:s("plugins.detailLoadFailed"),tone:"error"}),C(null),D([])}finally{x(!1)}}async function G(M){const m=(n==null?void 0:n.trim())??"";if(!M||!m){v([]);return}o(!0);try{const q=await Aa(M,m);v(q.items)}catch(q){h({title:q instanceof Error?q.message:s("plugins.permissionGrantLoadFailed"),tone:"error"}),v([])}finally{o(!1)}}l.useEffect(()=>{t&&O()},[t]),l.useEffect(()=>{t&&(L(p),G(p))},[t,p]);const H=l.useMemo(()=>(d==null?void 0:d.manifest.permissions.desktop)??[],[d]),B=!!(d!=null&&d.frontend&&(n!=null&&n.trim()));async function te(){if(!(!d||N)){A(!0);try{d.enablement.enabled?await Ea(d.definition.id,s("plugins.disabledByUserReason")):await La(d.definition.id);const M=await O(d.definition.id);await L(M||d.definition.id),h({title:d.enablement.enabled?s("plugins.disableSuccess"):s("plugins.enableSuccess"),tone:"success"})}catch(M){h({title:M instanceof Error?M.message:s("plugins.saveFailed"),tone:"error"})}finally{A(!1)}}}async function $(M){const m=(n==null?void 0:n.trim())??"";if(!(!d||!m||W)){S(M.id);try{await Pa(d.definition.id,M.id,m),await Promise.all([L(d.definition.id),G(d.definition.id)]),h({title:s("plugins.revokeGrantSuccess"),tone:"success"})}catch(q){h({title:q instanceof Error?q.message:s("plugins.revokeGrantFailed"),tone:"error"})}finally{S(null)}}}function ae(){const M=(n==null?void 0:n.trim())??"";!(d!=null&&d.frontend)||!M||(c(ka(M,d.definition.id)),r())}const Q=e.jsxs("div",{className:"settings-plugin-manager-layout",children:[e.jsx(X,{heading:s("settings.pluginManagementModalListTitle"),description:s("settings.pluginManagementModalListDescription"),className:"settings-plugin-modal-section",children:I?e.jsx("p",{className:"plugins-hint-text",children:s("plugins.loading")}):j.length===0?e.jsx(le,{title:s("plugins.emptyTitle"),description:s("plugins.emptyDescription"),compact:!0}):e.jsx(pe,{className:"settings-plugin-modal-list",children:j.map(M=>e.jsx(he,{as:"button",selected:p===M.id,label:M.name,description:`${M.id} · v${M.version}`,trailing:e.jsxs("div",{className:"settings-plugin-modal-tags",children:[e.jsx(re,{tone:M.enabled?"success":"default",children:M.enabled?s("plugins.enabled"):s("plugins.disabled")}),M.hasFrontend?e.jsx(re,{children:s("plugins.frontendTag")}):null,M.hasBackend?e.jsx(re,{children:s("plugins.backendTag")}):null]}),onClick:()=>T(M.id)},M.id))})}),e.jsx(X,{heading:s("settings.pluginManagementModalDetailTitle"),description:s("settings.pluginManagementModalDetailDescription"),className:"settings-plugin-modal-section settings-plugin-modal-detail-section",children:!p&&!I?e.jsx(le,{title:s("settings.pluginManagementSelectPluginTitle"),description:s("settings.pluginManagementSelectPluginDescription"),compact:!0}):f?e.jsx("p",{className:"plugins-hint-text",children:s("plugins.loading")}):d?e.jsxs("div",{className:"settings-plugin-modal-detail-stack",children:[e.jsxs("header",{className:"settings-plugin-modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:d.manifest.name}),e.jsx("p",{children:d.manifest.description??d.definition.id})]}),e.jsxs("div",{className:"settings-plugin-modal-tags",children:[e.jsx(re,{tone:d.enablement.enabled?"success":"default",children:d.enablement.enabled?s("plugins.enabled"):s("plugins.disabled")}),e.jsx(re,{children:`v${d.manifest.version}`})]})]}),e.jsx(X,{heading:s("plugins.summaryTitle"),description:s("plugins.summaryDescription"),children:e.jsxs(pe,{compact:!0,children:[e.jsx(he,{label:s("plugins.pluginIdLabel"),description:d.definition.id}),e.jsx(he,{label:s("plugins.installRootLabel"),description:d.definition.installRoot}),e.jsx(he,{label:s("plugins.runtimeLabel"),description:d.manifest.backend?`${s("plugins.backendTag")} · ${d.manifest.backend.mode??"on_demand"}`:s("plugins.frontendOnly")})]})}),e.jsx(X,{heading:s("plugins.permissionTitle"),description:s("plugins.permissionDescription"),children:e.jsxs("div",{className:"settings-plugin-modal-tags",children:[e.jsx(re,{tone:d.manifest.permissions.workspaceRead?"success":"default",children:d.manifest.permissions.workspaceRead?s("plugins.workspaceReadAllowed"):s("plugins.workspaceReadDenied")}),e.jsx(re,{tone:d.manifest.permissions.network?"warning":"default",children:d.manifest.permissions.network?s("plugins.networkAllowed"):s("plugins.networkDenied")}),H.length>0?H.map(M=>e.jsx(re,{children:M},M)):e.jsx(re,{children:s("plugins.noDesktopPermission")})]})}),e.jsx(Ia,{grants:k,auditEvents:d.auditEvents,loading:b,revokingGrantId:W,onRevokeGrant:M=>{$(M)}}),(z=(U=d.manifest.backend)==null?void 0:U.actions)!=null&&z.length?e.jsx(X,{heading:s("plugins.actionTitle"),description:s("plugins.actionDescription"),children:e.jsx(pe,{compact:!0,children:d.manifest.backend.actions.map(M=>e.jsx(he,{label:M.title,description:`${M.id} · ${M.timeoutMs??3e4}ms`},M.id))})}):null,e.jsx(X,{heading:s("plugins.runHistoryTitle"),description:s("plugins.runHistoryDescription"),children:F.length===0?e.jsx(le,{title:s("plugins.runHistoryEmptyTitle"),description:s("plugins.runHistoryEmptyDescription"),compact:!0}):e.jsx(pe,{compact:!0,children:F.slice(0,10).map(M=>e.jsx(he,{label:M.actionId??s("plugins.unknownAction"),description:`${M.status} · ${M.createdAt}`,trailing:M.errorCode?e.jsx(re,{tone:"danger",children:M.errorCode}):null},M.id))})}),B?null:e.jsx("p",{className:"settings-plugin-modal-workspace-note",children:s("settings.pluginManagementWorkspaceRequired")}),e.jsxs(ce,{align:"between",stack:!0,children:[e.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:s("common.close")}),e.jsxs("div",{className:"settings-plugin-modal-actions",children:[d.frontend?e.jsx("button",{type:"button",className:"secondary-button",disabled:!B,onClick:ae,children:s("plugins.openPlugin")}):null,e.jsx("button",{type:"button",className:d.enablement.enabled?"secondary-button":"primary-button",disabled:N,onClick:()=>{te()},children:d.enablement.enabled?s("plugins.disableAction"):s("plugins.enableAction")})]})]})]}):e.jsx(le,{title:s("plugins.detailMissingTitle"),description:s("plugins.detailMissingDescription"),compact:!0})})]});return a?e.jsx(Le,{open:t,title:s("settings.pluginManagementModalTitle"),description:s("settings.pluginManagementModalDescription"),height:"full",kind:"form",showHandle:!0,onClose:r,children:Q}):e.jsx(Ae,{open:t,title:s("settings.pluginManagementModalTitle"),description:s("settings.pluginManagementModalDescription"),size:"xwide",layout:"list",bodyClassName:"settings-plugin-modal-body",onClose:r,children:Q})}function lr(t,a){var n;return t&&a.some(r=>r.id===t)?t:((n=a[0])==null?void 0:n.id)??""}const Tn="secret://teable/main",rr=["manual","scheduled","event_driven"],kn=["sessions","todos","tags"];function Cn({open:t,mobile:a,workspaceOptions:n=[],onClose:r}){var dt;const{showToast:c}=at(),[h,j]=l.useState("connection"),[w,p]=l.useState(null),[T,d]=l.useState(null),[C,F]=l.useState([]),[D,k]=l.useState({tags:[],sessions:[],todos:[]}),[v,I]=l.useState([]),[u,f]=l.useState({}),[x,b]=l.useState([]),[o,N]=l.useState([]),[A,W]=l.useState(!1),[S,O]=l.useState(!1),[L,G]=l.useState(!1),[H,B]=l.useState(!1),[te,$]=l.useState(!1),[ae,Q]=l.useState(null),[U,z]=l.useState(null),[M,m]=l.useState(Vt(null)),[q,R]=l.useState(Ys([])),[ge,me]=l.useState({tags:Xs("tags"),sessions:Xs("sessions"),todos:Xs("todos")}),[Z,be]=l.useState("sessions"),P=l.useRef(null),[_,ee]=l.useState([]),[ue,fe]=l.useState(null),[ke,xe]=l.useState(""),[De,ye]=l.useState(!1),[Pe,je]=l.useState([]),[Me,Ze]=l.useState(!1),Fe=l.useMemo(()=>{const g=new Set,y=[];return n.forEach(E=>{const ne=E.id.trim();!ne||g.has(ne)||(g.add(ne),y.push({id:ne,name:E.name.trim()||ne}))}),y},[n]),Ye=l.useMemo(()=>[{id:"connection",label:s("settings.teableTabConnectionSettings")},{id:"tableSync",label:s("settings.teableTabTableSyncSettings")},{id:"syncLogs",label:s("settings.teableTabSyncLogs")}],[]),Ie=l.useMemo(()=>dr(C,q),[C,q]),Ne=l.useMemo(()=>{const g=new Set(_);return Ie.filter(y=>g.has(y.tableId))},[_,Ie]),Y=l.useMemo(()=>Ne.find(g=>g.tableId===ue)??Ne[0]??null,[Ne,ue]),Ue=ge[Z],Be=q.find(g=>g.sourceType===Z)??Ys([]).find(g=>g.sourceType===Z),we=D[Z]??[],We=Y?u[Y.tableId]??[]:[],$e=(Y==null?void 0:Y.tableName)??"",Se=l.useMemo(()=>Ie.filter(g=>!_.includes(g.tableId)),[_,Ie]),ze=l.useMemo(()=>x.map(g=>({key:g.id,tag:g})),[x]);l.useEffect(()=>{t&&(j("connection"),z(null),Q(null),Ee())},[t]),l.useEffect(()=>{m(Vt(w))},[w]),l.useEffect(()=>{R(Ys((T==null?void 0:T.syncConfigs)??[]))},[T==null?void 0:T.syncConfigs]),l.useEffect(()=>{me(or((T==null?void 0:T.syncConfigs)??[],v))},[T==null?void 0:T.syncConfigs,v]),l.useEffect(()=>{const g=q.map(y=>y.targetTableId.trim()).filter(Boolean);ee(y=>{const E=Array.from(new Set([...y,...g]));return ur(y,E)?y:E})},[q]),l.useEffect(()=>{var g;t&&(ue&&Ne.some(y=>y.tableId===ue)||fe(((g=Ne[0])==null?void 0:g.tableId)??null))},[Ne,t,ue]),l.useEffect(()=>{var g;ke&&Se.some(y=>y.tableId===ke)||xe(((g=Se[0])==null?void 0:g.tableId)??"")},[Se,ke]),l.useEffect(()=>{const g=(Y==null?void 0:Y.tableId.trim())??"";!t||!g||u[g]||i(g)},[t,Y,u]),l.useEffect(()=>{!Y||P.current===Y.tableId||(P.current=Y.tableId,Y.assignedSourceType&&be(Y.assignedSourceType))},[Y]);async function Ee(){W(!0);try{const[g,y,E,ne,K,oe]=await Promise.all([ua(),ga(),mt(),ma(),ha(),pa({includeDisabled:!0}).catch(()=>({items:[],summary:{totalActiveTags:0,totalDisabledTags:0,totalRuleEnabledTags:0,totalBoundDocuments:0},status:{recomputeState:"idle",lastRecomputedAt:null,lastError:null}}))]);p(g),d(y),F(E),I(ne.mappings),N(K),k(ne.sourceFieldsByType),b(oe.items.filter(ve=>ve.parentId===null)),z(null)}catch(g){z(Je(g))}finally{W(!1)}}async function i(g){try{const y=await ba(g);f(E=>({...E,[g]:y}))}catch(y){z(Je(y))}}function V(){z(null),Q(null),ye(!1),r()}async function ie(){G(!0),z(null),Q(null);try{const g=await ja({baseUrl:M.baseUrl,spaceId:M.spaceId,baseId:M.baseId,authRef:M.authRef||Tn,authToken:M.authToken,enabled:M.enabled,mirrorMode:M.mirrorMode});p(g),Q(s("settings.teableBindingSaved")),c({title:s("settings.teableBindingSaved"),tone:"success"}),await Ee()}catch(g){const y=Je(g);z(y),c({title:y,tone:"error"})}finally{G(!1)}}async function _e(){O(!0),z(null),Q(null);try{const g=await mt();F(g);const y=s("settings.teableConnectionTestSuccess",{tableCount:g.length});Q(y),c({title:y,tone:"success"})}catch(g){const y=Je(g);z(y),c({title:y,tone:"error"})}finally{O(!1)}}function ns(g){ee(y=>y.includes(g.tableId)?y:[...y,g.tableId]),fe(g.tableId),u[g.tableId]||i(g.tableId)}function Pn(g){if(ee(y=>y.filter(E=>E!==g)),ue===g){const y=_.find(E=>E!==g)??null;fe(y)}}function En(){const g=we.filter(y=>!Ue.items.some(E=>E.sourceField===y.key&&E.targetFieldId)).map(y=>y.key);je(g.length>0?g:we.map(y=>y.key)),ye(!0)}async function Ln(){if(!Y)return;const g=we.filter(y=>Pe.includes(y.key)).map(mr);if(g.length===0){z(s("settings.teableFieldAutoCreateEmptyError"));return}Ze(!0),z(null),Q(null);try{const y=await va({tableId:Y.tableId,fields:g});Rn(y),await i(Y.tableId),ye(!1);const E=s("settings.teableFieldAutoCreateSuccess",{count:y.length});Q(E),c({title:E,tone:"success"})}catch(y){const E=Je(y);z(E),c({title:E,tone:"error"})}finally{Ze(!1)}}async function In(){if(Y){B(!0),z(null),Q(null);try{const y=(await fa({items:[{sourceType:Z,enabled:!0,targetTableId:Y.tableId,scope:Be.scope}]})).find(ne=>ne.sourceType===Z),E=(y==null?void 0:y.configId)??Ue.configId;await xa({items:[{configId:E,sourceType:Z,targetTableId:Y.tableId,items:gr(Ue.items)}]}),Q(s("settings.teableTableSyncSettingsSaved")),c({title:s("settings.teableTableSyncSettingsSaved"),tone:"success"}),await Ee()}catch(g){const y=Je(g);z(y),c({title:y,tone:"error"})}finally{B(!1)}}}async function Un(){$(!0),z(null),Q(null);try{const y=(await ya({mirrorTypes:[Z]})).summary||s("settings.teableLatestTaskEmpty");Q(y),c({title:y,tone:"success"}),await Ee()}catch(g){const y=Je(g);z(y),c({title:y,tone:"error"})}finally{$(!1)}}function Oe(g){R(y=>y.map(E=>E.sourceType===Z?g(E):E))}function On(g,y){const E=We.find(ne=>ne.fieldId===y)??null;me(ne=>({...ne,[Z]:{...ne[Z],targetTableId:(Y==null?void 0:Y.tableId)??ne[Z].targetTableId,items:we.map(K=>K.key!==g.key?ne[Z].items.find(oe=>oe.sourceField===K.key)??{sourceField:K.key,targetFieldId:"",targetFieldName:"",required:K.required}:{sourceField:K.key,targetFieldId:y,targetFieldName:(E==null?void 0:E.fieldName)??"",required:K.required}).filter(K=>K.targetFieldId)}}))}function Rn(g){me(y=>{const E=new Map(y[Z].items.map(K=>[K.sourceField,K]));g.forEach(K=>{E.set(K.sourceField,{sourceField:K.sourceField,targetFieldId:K.targetFieldId,targetFieldName:K.targetFieldName,required:K.required})});const ne=we.map(K=>E.get(K.key)??null).filter(K=>!!(K!=null&&K.targetFieldId));return{...y,[Z]:{...y[Z],targetTableId:(Y==null?void 0:Y.tableId)??y[Z].targetTableId,items:ne}}})}const Fn=e.jsx("div",{className:"settings-teable-tab-panel",children:e.jsxs(X,{heading:s("settings.teableBindingSectionTitle"),description:s("settings.teableBindingSectionDescription"),children:[e.jsx(se,{label:s("settings.teableEnabledLabel"),children:e.jsxs("div",{className:"settings-teable-switch-field",children:[e.jsx(de,{checked:M.enabled,label:s("settings.teableEnabledLabel"),semanticRole:"switch",onChange:g=>{m(y=>({...y,enabled:g}))}}),e.jsx("span",{className:"settings-teable-switch-caption",children:M.enabled?s("common.enabled"):s("common.disabled")})]})}),e.jsx(se,{label:s("settings.teableBaseUrlLabel"),description:s("settings.teableBaseUrlDescription"),htmlFor:"teable-base-url",children:e.jsx("input",{id:"teable-base-url",className:"settings-text-input",value:M.baseUrl,placeholder:s("settings.teableBaseUrlPlaceholder"),onChange:g=>m(y=>({...y,baseUrl:g.target.value}))})}),e.jsx(se,{label:s("settings.teableSpaceIdLabel"),htmlFor:"teable-space-id",children:e.jsx("input",{id:"teable-space-id",className:"settings-text-input",value:M.spaceId,placeholder:s("settings.teableSpaceIdPlaceholder"),onChange:g=>m(y=>({...y,spaceId:g.target.value}))})}),e.jsx(se,{label:s("settings.teableBaseIdLabel"),htmlFor:"teable-base-id",children:e.jsx("input",{id:"teable-base-id",className:"settings-text-input",value:M.baseId,placeholder:s("settings.teableBaseIdPlaceholder"),onChange:g=>m(y=>({...y,baseId:g.target.value}))})}),e.jsx(se,{label:s("settings.teableAuthTokenLabel"),description:s("settings.teableAuthTokenDescription"),htmlFor:"teable-auth-token",children:e.jsx("input",{id:"teable-auth-token",type:"password",className:"settings-text-input",value:M.authToken,placeholder:s("settings.teableAuthTokenPlaceholder"),onChange:g=>m(y=>({...y,authToken:g.target.value}))})}),e.jsx(se,{label:s("settings.teableMirrorModeLabel"),htmlFor:"teable-mirror-mode",children:e.jsx("select",{id:"teable-mirror-mode",className:"settings-select",value:M.mirrorMode,onChange:g=>m(y=>({...y,mirrorMode:g.target.value})),children:rr.map(g=>e.jsx("option",{value:g,children:s(`settings.teableMirrorMode.${g}`)},g))})})]})}),Bn=e.jsxs("div",{className:"settings-teable-tab-panel settings-teable-table-sync-layout",children:[e.jsx(X,{className:"settings-teable-table-picker",heading:s("settings.teableTableSyncListTitle"),children:Ie.length===0?e.jsx(le,{title:s("settings.teableTablesCatalogEmptyTitle"),description:s("settings.teableTablesCatalogEmptyDescription"),compact:!0}):e.jsxs("div",{className:"settings-teable-config-fields",children:[e.jsxs("div",{className:"settings-teable-table-add-panel",children:[e.jsx(se,{label:s("settings.teableTableToAddLabel"),htmlFor:"teable-table-to-add",children:e.jsx("select",{id:"teable-table-to-add",className:"settings-select",value:ke,disabled:Se.length===0,onChange:g=>xe(g.target.value),children:Se.length===0?e.jsx("option",{value:"",children:s("settings.teableAllTablesAdded")}):Se.map(g=>e.jsx("option",{value:g.tableId,children:g.tableName},g.tableId))})}),e.jsx("button",{type:"button",className:"secondary-button",disabled:Se.length===0,onClick:()=>{const g=Se.find(y=>y.tableId===ke)??Se[0];g&&ns(g)},children:s("settings.teableAddSyncTableAction")})]}),Ne.length===0?e.jsx(le,{title:s("settings.teableSelectSyncTableTitle"),description:s("settings.teableSelectSyncTableDescription"),compact:!0}):e.jsx(pe,{compact:!0,children:Ne.map(g=>e.jsx(he,{selected:(Y==null?void 0:Y.tableId)===g.tableId,label:g.tableName,trailing:e.jsx("button",{type:"button",className:"secondary-button",onClick:y=>{y.stopPropagation(),Pn(g.tableId)},children:s("settings.teableRemoveSyncTableAction")}),role:"button",tabIndex:0,onClick:()=>fe(g.tableId),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),fe(g.tableId))}},g.tableId))})]})}),e.jsx(X,{className:"settings-teable-table-sync-main",heading:s("settings.teableTableSyncConfigTitle"),description:s("settings.teableTableSyncConfigDescription"),children:Y?e.jsxs("div",{className:"settings-teable-config-fields",children:[e.jsx("div",{className:"settings-teable-table-summary",children:e.jsxs("div",{children:[e.jsx("span",{children:s("settings.teableSelectedSyncTableLabel")}),e.jsx("strong",{children:$e})]})}),e.jsx(se,{label:s("settings.teableSyncSourceLabel"),htmlFor:"teable-sync-source",children:e.jsx("select",{id:"teable-sync-source",className:"settings-select",value:Z,onChange:g=>be(g.target.value),children:kn.map(g=>e.jsx("option",{value:g,children:s(`settings.teableSyncSource.${g}`)},g))})}),_n(),e.jsx(X,{heading:s("settings.teableFieldMappingTitle"),description:s("settings.teableFieldMappingInlineDescription"),actions:we.length>0?e.jsx("button",{type:"button",className:"secondary-button",disabled:Me,onClick:En,children:Me?s("common.loading"):s("settings.teableFieldAutoCreateAction")}):null,children:we.length===0?e.jsx("div",{className:"settings-field-hint",children:s("settings.teableSourceFieldsEmpty")}):e.jsx(pe,{compact:!0,children:we.map(g=>{const y=Ue.items.find(E=>E.sourceField===g.key)??{sourceField:g.key,targetFieldId:"",required:g.required};return e.jsx(he,{label:g.label,description:`${g.type} · ${g.required?s("settings.teableFieldRequired"):s("settings.teableFieldOptional")}`,children:e.jsxs("select",{className:"settings-select",value:y.targetFieldId,onChange:E=>On(g,E.target.value),children:[e.jsx("option",{value:"",children:s("settings.teableFieldTargetPlaceholder")}),We.map(E=>e.jsx("option",{value:E.fieldId,children:E.fieldName},E.fieldId))]})},g.key)})})}),e.jsx(X,{heading:s("settings.teableSyncActionSectionTitle"),description:s("settings.teableSyncActionSectionDescription"),children:e.jsx(pe,{compact:!0,children:e.jsx(he,{label:s("settings.teableLatestTaskTitle"),description:((dt=T==null?void 0:T.latestMirrorSyncTask)==null?void 0:dt.summary)??s("settings.teableLatestTaskEmpty"),trailing:T!=null&&T.latestMirrorSyncTask?e.jsx(re,{tone:qt(T.latestMirrorSyncTask.state),children:s(`settings.teableTaskState.${T.latestMirrorSyncTask.state}`)}):null})})}),e.jsxs("div",{className:"settings-teable-inline-actions",children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:H||A,onClick:()=>{In()},children:H?s("common.loading"):s("settings.teableSaveTableSyncSettingsAction")}),e.jsx("button",{type:"button",className:"primary-button",disabled:te||A,onClick:()=>{Un()},children:te?s("common.loading"):s("settings.teableSyncNowAction")})]})]}):e.jsx(le,{title:s("settings.teableSelectSyncTableTitle"),description:s("settings.teableSelectSyncTableDescription"),compact:!0})})]});function _n(){if(Z==="sessions"){const E=Be.scope,ne=Array.isArray(E.workspaceIds)?E.workspaceIds:[];return e.jsxs(se,{label:s("settings.teableWorkspaceScopeLabel"),children:[e.jsxs("div",{className:"settings-teable-radio-group",children:[e.jsxs("label",{className:"settings-teable-radio-line",children:[e.jsx("input",{type:"radio",name:"teable-session-workspace-scope",checked:E.mode!=="selected_workspaces",onChange:()=>Oe(K=>({...K,scope:{mode:"all_workspaces"}}))}),e.jsx("span",{children:s("settings.teableWorkspaceScopeAll")})]}),e.jsxs("label",{className:"settings-teable-radio-line",children:[e.jsx("input",{type:"radio",name:"teable-session-workspace-scope",checked:E.mode==="selected_workspaces",onChange:()=>Oe(K=>({...K,scope:{mode:"selected_workspaces",workspaceIds:[]}}))}),e.jsx("span",{children:s("settings.teableWorkspaceScopeSelected")})]})]}),E.mode==="selected_workspaces"?rt(ne,K=>{Oe(oe=>({...oe,scope:{mode:"selected_workspaces",workspaceIds:K}}))}):null]})}if(Z==="todos"){const E=Be.scope,ne=Array.isArray(E.workspaceIds)?E.workspaceIds:[],K=ne.length>0;return e.jsxs("div",{className:"settings-teable-config-fields",children:[e.jsx(se,{label:s("settings.teableTodoSourceLabel"),children:e.jsxs("div",{className:"settings-teable-choice-list",children:[e.jsxs("label",{className:"settings-teable-choice-row",children:[e.jsx("input",{type:"checkbox",checked:E.includeWorkspaceTodos!==!1,onChange:oe=>Oe(ve=>({...ve,scope:{...E,includeWorkspaceTodos:oe.target.checked,includeAffairsTodos:E.includeAffairsTodos!==!1,workspaceIds:ne}}))}),e.jsx("span",{className:"settings-teable-choice-copy",children:e.jsx("strong",{children:s("settings.teableTodoWorkspaceSource")})})]}),e.jsxs("label",{className:"settings-teable-choice-row",children:[e.jsx("input",{type:"checkbox",checked:E.includeAffairsTodos!==!1,onChange:oe=>Oe(ve=>({...ve,scope:{...E,includeWorkspaceTodos:E.includeWorkspaceTodos!==!1,includeAffairsTodos:oe.target.checked,workspaceIds:ne}}))}),e.jsx("span",{className:"settings-teable-choice-copy",children:e.jsx("strong",{children:s("settings.teableTodoAffairsSource")})})]})]})}),e.jsxs(se,{label:s("settings.teableWorkspaceScopeLabel"),children:[e.jsxs("div",{className:"settings-teable-radio-group",children:[e.jsxs("label",{className:"settings-teable-radio-line",children:[e.jsx("input",{type:"radio",name:"teable-todo-workspace-scope",checked:!K,onChange:()=>Oe(oe=>({...oe,scope:{includeWorkspaceTodos:E.includeWorkspaceTodos!==!1,includeAffairsTodos:E.includeAffairsTodos!==!1,workspaceIds:[]}}))}),e.jsx("span",{children:s("settings.teableWorkspaceScopeAll")})]}),e.jsxs("label",{className:"settings-teable-radio-line",children:[e.jsx("input",{type:"radio",name:"teable-todo-workspace-scope",checked:K,onChange:()=>Oe(oe=>({...oe,scope:{includeWorkspaceTodos:E.includeWorkspaceTodos!==!1,includeAffairsTodos:E.includeAffairsTodos!==!1,workspaceIds:Fe[0]?[Fe[0].id]:[]}}))}),e.jsx("span",{children:s("settings.teableWorkspaceScopeSelected")})]})]}),K?rt(ne,oe=>{Oe(ve=>({...ve,scope:{includeWorkspaceTodos:E.includeWorkspaceTodos!==!1,includeAffairsTodos:E.includeAffairsTodos!==!1,workspaceIds:oe}}))}):null]})]})}const g=Be.scope,y=Array.isArray(g.rootTagIds)?g.rootTagIds:[];return e.jsx(se,{label:s("settings.teableDocumentTagRootsLabel"),description:s("settings.teableDocumentTagRootsDescription"),children:ze.length===0?e.jsx("div",{className:"settings-field-hint",children:s("settings.teableDocumentTagRootsEmpty")}):e.jsx("div",{className:"settings-teable-choice-list",children:ze.map(E=>{const ne=y.includes(E.tag.id);return e.jsxs("label",{className:"settings-teable-choice-row",children:[e.jsx("input",{type:"checkbox",checked:ne,onChange:K=>{const oe=K.target.checked?[...y,E.tag.id]:y.filter(ve=>ve!==E.tag.id);Oe(ve=>({...ve,scope:{rootTagIds:Array.from(new Set(oe))}}))}}),e.jsxs("span",{className:"settings-teable-choice-copy",children:[e.jsx("strong",{children:E.tag.path}),e.jsx("small",{children:s("shell.affairsTagTreeDocumentCount",{count:E.tag.documentCount})})]})]},E.key)})})})}function rt(g,y){return Fe.length===0?e.jsx("div",{className:"settings-field-hint",children:s("settings.teableWorkspaceScopeEmpty")}):e.jsx("div",{className:"settings-teable-choice-list settings-teable-workspace-list",children:Fe.map(E=>{const ne=g.includes(E.id);return e.jsxs("label",{className:"settings-teable-choice-row",children:[e.jsx("input",{type:"checkbox",checked:ne,onChange:K=>{const oe=K.target.checked?[...g,E.id]:g.filter(ve=>ve!==E.id);y(Array.from(new Set(oe)))}}),e.jsx("span",{className:"settings-teable-choice-copy",children:e.jsx("strong",{children:E.name})})]},E.id)})})}function ct(){const g=e.jsxs("div",{className:"settings-teable-field-picker",children:[e.jsx(X,{heading:s("settings.teableFieldAutoCreateModalSectionTitle"),description:s("settings.teableFieldAutoCreateModalSectionDescription",{table:$e}),children:e.jsx(pe,{compact:!0,children:we.map(y=>{const E=Pe.includes(y.key),ne=Ue.items.find(K=>K.sourceField===y.key&&K.targetFieldId);return e.jsx(he,{label:y.label,description:ne?s("settings.teableFieldAlreadyMappedDescription",{field:ne.targetFieldName}):`${y.type} · ${y.required?s("settings.teableFieldRequired"):s("settings.teableFieldOptional")}`,leading:e.jsx("input",{type:"checkbox",checked:E,onChange:K=>{je(oe=>K.target.checked?Array.from(new Set([...oe,y.key])):oe.filter(ve=>ve!==y.key))}})},y.key)})})}),e.jsxs(ce,{align:"end",stack:!0,children:[e.jsx("button",{type:"button",className:"secondary-button",onClick:()=>ye(!1),children:s("common.cancel")}),e.jsx("button",{type:"button",className:"primary-button",disabled:Me||Pe.length===0,onClick:()=>{Ln()},children:Me?s("common.loading"):s("settings.teableFieldAutoCreateConfirmAction")})]})]});return a?e.jsx(Le,{open:De,title:s("settings.teableFieldAutoCreateModalTitle"),description:s("settings.teableFieldAutoCreateModalDescription"),height:"three-quarter",kind:"form",showHandle:!0,onClose:()=>ye(!1),children:g}):e.jsx(Ae,{open:De,title:s("settings.teableFieldAutoCreateModalTitle"),description:s("settings.teableFieldAutoCreateModalDescription"),size:"compact",layout:"form",onClose:()=>ye(!1),children:g})}const Vn=e.jsx("div",{className:"settings-teable-tab-panel",children:e.jsx(X,{heading:s("settings.teableSyncLogsTitle"),description:s("settings.teableSyncLogsDescription"),actions:e.jsx("button",{type:"button",className:"secondary-button",disabled:A,onClick:()=>{Ee()},children:A?s("common.loading"):s("settings.teableSyncLogsRefreshAction")}),children:o.length===0?e.jsx(le,{title:s("settings.teableSyncLogsEmptyTitle"),description:s("settings.teableSyncLogsEmptyDescription"),compact:!0}):e.jsx(pe,{compact:!0,children:o.map(g=>e.jsx(he,{label:g.summary,description:pr(g),trailing:e.jsx(re,{tone:qt(g.state),children:s(`settings.teableTaskState.${g.state}`)})},g.logId))})})});function qn(){return h==="connection"?Fn:h==="syncLogs"?Vn:Bn}const ot=e.jsxs("div",{className:"settings-teable-modal-layout",children:[e.jsx("div",{className:"settings-teable-tabs",role:"tablist","aria-label":s("settings.teableModalTitle"),children:Ye.map(g=>e.jsx("button",{type:"button",role:"tab","aria-selected":h===g.id,className:h===g.id?"settings-teable-tab active":"settings-teable-tab",onClick:()=>j(g.id),children:g.label},g.id))}),qn(),ae?e.jsx("p",{className:"settings-release-status",children:ae}):null,U?e.jsx("p",{className:"settings-release-status",children:U}):null,h==="connection"?e.jsxs(ce,{className:"settings-teable-modal-actions",align:"end",stack:!0,children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:S||A,onClick:()=>{_e()},children:S?s("common.loading"):s("settings.teableTestConnectionAction")}),e.jsx("button",{type:"button",className:"primary-button",disabled:L||A,onClick:()=>{ie()},children:L?s("common.loading"):s("settings.teableSaveBindingAction")}),e.jsx("button",{type:"button",className:"secondary-button",onClick:V,children:s("common.cancel")})]}):null]});return a?e.jsxs(e.Fragment,{children:[e.jsx(Le,{open:t,title:s("settings.teableModalTitle"),height:"full",kind:"form",showHandle:!0,onClose:V,children:ot}),ct()]}):e.jsxs(e.Fragment,{children:[e.jsx(Ae,{open:t,title:s("settings.teableModalTitle"),size:"regular",layout:"form",className:"settings-teable-modal",bodyClassName:"settings-teable-modal-body",onClose:V,children:ot}),ct()]})}function Vt(t){return{baseUrl:(t==null?void 0:t.baseUrl)??"",spaceId:(t==null?void 0:t.spaceId)??"",baseId:(t==null?void 0:t.baseId)??"",authRef:(t==null?void 0:t.authRef)??Tn,authToken:"",enabled:(t==null?void 0:t.enabled)??!1,mirrorMode:(t==null?void 0:t.mirrorMode)??"manual"}}function Ys(t){const a=new Map(t.map(n=>[n.sourceType,n]));return kn.map(n=>{const r=a.get(n);return{configId:(r==null?void 0:r.configId)??`draft-${n}`,sourceType:n,enabled:(r==null?void 0:r.enabled)??!1,targetTableId:(r==null?void 0:r.targetTableId)??"",scope:(r==null?void 0:r.scope)??cr(n)}})}function cr(t){switch(t){case"tags":return{rootTagIds:[]};case"sessions":return{mode:"all_workspaces"};case"todos":return{includeWorkspaceTodos:!0,includeAffairsTodos:!0,workspaceIds:[]};default:return{rootTagIds:[]}}}function Xs(t){return{configId:`draft-${t}`,sourceType:t,targetTableId:"",items:[]}}function or(t,a){const n=new Map(t.map(c=>[c.sourceType,c])),r=new Map(a.map(c=>[c.sourceType,c]));return{tags:et("tags",n.get("tags")??null,r.get("tags")??null),sessions:et("sessions",n.get("sessions")??null,r.get("sessions")??null),todos:et("todos",n.get("todos")??null,r.get("todos")??null)}}function et(t,a,n){return{configId:(a==null?void 0:a.configId)??`draft-${t}`,sourceType:t,targetTableId:(n==null?void 0:n.targetTableId)??(a==null?void 0:a.targetTableId)??"",items:(n==null?void 0:n.items)??[]}}function dr(t,a){const n=new Map;return a.forEach(r=>{const c=r.targetTableId.trim();c&&n.set(c,r.sourceType)}),t.map(r=>({tableId:r.tableId,tableName:r.tableName,assignedSourceType:n.get(r.tableId)??null})).sort((r,c)=>r.tableName.localeCompare(c.tableName,"zh-Hans-CN"))}function ur(t,a){return t.length===a.length&&t.every((n,r)=>n===a[r])}function gr(t){return t.filter(a=>a.sourceField.trim()&&a.targetFieldId.trim()&&a.targetFieldName.trim())}function mr(t){return{sourceField:t.key,fieldName:t.label,fieldType:hr(t.type),required:t.required}}function hr(t){switch(t){case"datetime":return"date";default:return"singleLineText"}}function Je(t){return t instanceof Error&&t.message.trim()?t.message.trim():s("settings.teableLoadFailed")}function pr(t){var j;const a=t.sourceTypes.map(w=>s(`settings.teableSyncSource.${w}`)).join("、")||s("common.none"),n=s(`settings.teableSyncLogTrigger.${t.triggerType}`),r=fr(t.finishedAt??t.updatedAt??t.createdAt),c=br(t),h=[s("settings.teableSyncLogDescription",{trigger:n,source:a,time:r})];return c&&h.push(c),(j=t.errorDetail)!=null&&j.trim()&&h.push(t.errorDetail.trim()),h.join(" · ")}function br(t){const a=Object.values(t.counts).reduce((n,r)=>r?{created:n.created+(r.created??0),updated:n.updated+(r.updated??0),deleted:n.deleted+(r.deleted??0),skipped:n.skipped+(r.skipped??0)}:n,{created:0,updated:0,deleted:0,skipped:0});return a.created+a.updated+a.deleted+a.skipped===0?"":s("settings.teableSyncLogCounts",a)}function fr(t){if(!t)return s("common.none");const a=new Date(t);return Number.isNaN(a.getTime())?t:a.toLocaleString()}function qt(t){switch(t){case"succeeded":return"success";case"partial_failed":case"queued":case"running":return"warning";case"failed":return"danger";default:return"default"}}function Ht({title:t,description:a,actions:n,content:r,className:c}){return e.jsx(Na,{className:c,children:e.jsxs("section",{className:"mobile-workspace-home-header mobile-page-header",children:[e.jsx("h1",{className:"mobile-workspace-switcher-heading",children:t}),e.jsxs("div",{className:"mobile-workspace-home-toolbar-top mobile-page-header-main",children:[e.jsx("div",{className:"mobile-page-header-copy",children:e.jsx("div",{className:"mobile-workspace-home-switcher mobile-page-header-static-title",children:e.jsx("span",{className:"mobile-workspace-home-switcher-label",children:t})})}),n?e.jsx("div",{className:"mobile-workspace-home-toolbar-actions mobile-page-header-actions",children:n}):null]}),a?e.jsx("p",{className:"mobile-workspace-home-path mobile-page-header-description",children:a}):null,r?e.jsx("div",{className:"mobile-page-header-content",children:r}):null]})})}const Dn={start:43e3,end:47999};function xr(t){return t==="appearance"||t==="ability-management"||t==="channels-management"||t==="model-management"||t==="provider-management"||t==="server-connection"||t==="remote-access"||t==="security-privacy"||t==="software-update"}function yr(t){return xr(t)?t==="model-management"||t==="provider-management"?"ability-management":t:null}function jr(t){return t==="en-US"?s("locale.enUS"):s("locale.zhCN")}function vr(t){switch(t){case"acceptEdits":return s("settings.permissionModeAcceptEdits");case"bypassPermissions":return s("settings.permissionModeBypassPermissions");default:return s("settings.permissionModeDefault")}}function Nr(){const t=it(),{theme:a,selectedTheme:n,autoTheme:r,setTheme:c,setAutoTheme:h}=ea(),j=tt(R=>R),w=Cs(R=>R.profile.language),p=Cs(R=>R.profile.defaultPermissionMode),T=as(R=>R.sessionDisplaySortMode),d=as(R=>R.showSystemFiles),C=as(R=>R.notificationPreferences.notifyOnPermissionRequest),F=as(R=>R.notificationPreferences.notifyOnSessionCompleted),D=as(R=>R.notificationPreferences.notifyOnSessionFailed),k={language:w,defaultPermissionMode:p,debugPortPools:Cs(R=>R.profile.debugPortPools)??Dn},v=hs(),I=zn(j.platform),u=I,f=nt(j)??"",[x,b]=l.useState(f);l.useEffect(()=>{b(f)},[f]);function o(){Gn.clear(),Ds.resetToLocalFallback(),t("/login",{replace:!0})}function N(R){c(R)}function A(R){h(R)}function W(R){try{return Kn(R)}catch{return null}}const S=W(x),O=S!==null&&S!==f;function L(R){R.preventDefault(),S&&He.update({hosts:j.hosts.map(ge=>ge.id===j.activeHostId?{...ge,baseUrl:S,updatedAt:new Date().toISOString()}:ge)})}const G=[{value:"default",label:s("settings.permissionModeDefault")},{value:"acceptEdits",label:s("settings.permissionModeAcceptEdits")},{value:"bypassPermissions",label:s("settings.permissionModeBypassPermissions")}],H=[{value:"createdAt",label:s("settings.sessionSortModeCreatedAt")},{value:"updatedAt",label:s("settings.sessionSortModeUpdatedAt")},{value:"title",label:s("settings.sessionSortModeTitle")}];function B(R){He.update({autoReconnect:R})}function te(R){He.update({autoCheckUpdate:R})}function $(R){He.update({autoDownloadUpdate:R})}function ae(R){const ge=R==="acceptEdits"||R==="bypassPermissions"?R:"default";Ds.updateProfile({defaultPermissionMode:ge}).catch(()=>{})}function Q(R){const ge=R==="updatedAt"||R==="title"?R:"createdAt";is.setSessionDisplaySortMode(ge)}function U(R){is.setShowSystemFiles(R)}function z(R){is.setNotificationPreferences({notifyOnPermissionRequest:R})}function M(R){is.setNotificationPreferences({notifyOnSessionCompleted:R})}function m(R){is.setNotificationPreferences({notifyOnSessionFailed:R})}async function q(R){await Ds.updateProfile({debugPortPools:R})}return{platform:v,theme:a,selectedTheme:n,autoTheme:r,applyTheme:N,applyAutoTheme:A,runtimeConfig:j,accountPreferences:k,sessionDisplaySortMode:T,showSystemFiles:d,notifyOnPermissionRequest:C,notifyOnSessionCompleted:F,notifyOnSessionFailed:D,showServerSettings:u,canConfigureServerAddress:I,hostBaseUrlDraft:x,setHostBaseUrlDraft:b,canSaveHostBaseUrl:O,permissionModeOptions:G,sessionDisplaySortModeOptions:H,handleHostBaseUrlSubmit:L,handleLogout:o,updateAutoReconnect:B,updateAutoCheckUpdate:te,updateAutoDownloadUpdate:$,updateDefaultPermissionMode:ae,updateSessionDisplaySortMode:Q,updateShowSystemFiles:U,updateNotifyOnPermissionRequest:z,updateNotifyOnSessionCompleted:M,updateNotifyOnSessionFailed:m,updateDebugPortPools:q}}function nc(){const t=Nr(),a=Xn();return t.platform.isMobile?e.jsx(Tr,{model:t,appVersion:a}):e.jsx(Sr,{model:t,appVersion:a})}function Sr({model:t,appVersion:a}){var P;const[n,r]=l.useState(!1),[c,h]=l.useState(!1),[j,w]=l.useState(!1),[p,T]=l.useState(!1),{currentWorkspaceId:d,navigationGroups:C}=sn(),{theme:F,selectedTheme:D,autoTheme:k,applyTheme:v,applyAutoTheme:I,runtimeConfig:u,accountPreferences:f,sessionDisplaySortMode:x,showSystemFiles:b,notifyOnPermissionRequest:o,notifyOnSessionCompleted:N,notifyOnSessionFailed:A,showServerSettings:W,hostBaseUrlDraft:S,setHostBaseUrlDraft:O,canSaveHostBaseUrl:L,permissionModeOptions:G,sessionDisplaySortModeOptions:H,platform:B,handleHostBaseUrlSubmit:te,handleLogout:$,updateAutoReconnect:ae,updateAutoCheckUpdate:Q,updateAutoDownloadUpdate:U,updateDefaultPermissionMode:z,updateSessionDisplaySortMode:M,updateShowSystemFiles:m,updateNotifyOnPermissionRequest:q,updateNotifyOnSessionCompleted:R,updateNotifyOnSessionFailed:ge,updateDebugPortPools:me}=t,Z=d??((P=C[0])==null?void 0:P.workspace.id)??null,be=C.map(_=>{var ee;return{id:_.workspace.id,name:((ee=_.workspace.name)==null?void 0:ee.trim())||_.workspace.id}});return e.jsxs("div",{className:"settings-page",children:[e.jsxs("div",{className:"settings-container",children:[e.jsx("h1",{className:"settings-title",children:s("settings.title")}),e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.appearance")}),e.jsxs("div",{className:"settings-card",children:[e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.language")}),e.jsx("span",{className:"settings-row-description",children:s("settings.languageDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(Zt,{})})]}),e.jsxs("div",{className:"settings-row settings-row-theme",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.theme")}),e.jsx("span",{className:"settings-row-description",children:s("settings.themeDescription")})]}),e.jsxs("div",{className:"settings-row-control settings-row-control-stretch",children:[e.jsxs("div",{className:"settings-theme-panel",children:[e.jsxs("div",{className:"settings-theme-toggle-row",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.autoTheme")}),e.jsx(de,{checked:k,label:s("settings.autoTheme"),onChange:I})]}),e.jsx("span",{className:"settings-theme-note",children:s("settings.autoThemeDescription")})]}),e.jsx("div",{className:"theme-selector",children:Yt.map(_=>e.jsxs("button",{type:"button",className:`theme-card ${D===_.id&&!k?"active":""}`,"aria-pressed":D===_.id&&!k,disabled:k,onClick:()=>v(_.id),children:[e.jsx("span",{className:"theme-preview",style:{background:_.color}}),e.jsx("span",{className:"theme-label",children:Xt(_)}),D===_.id&&!k?e.jsx("span",{className:"theme-check",children:"✓"}):null]},_.id))})]})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.workspaceSessionSortMode")}),e.jsx("span",{className:"settings-row-description",children:s("settings.workspaceSessionSortModeDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx("select",{"aria-label":s("settings.workspaceSessionSortMode"),className:"settings-select",value:x,onChange:_=>M(_.target.value),children:H.map(_=>e.jsx("option",{value:_.value,children:_.label},_.value))})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.showSystemFiles")}),e.jsx("span",{className:"settings-row-description",children:s("settings.showSystemFilesDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(de,{checked:b,label:s("settings.showSystemFiles"),onChange:m})})]})]})]}),W?e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.serverConnection")}),e.jsxs("div",{className:"settings-card",children:[e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.serverAddress")}),e.jsx("span",{className:"settings-row-description",children:s("settings.serverDescription")})]}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch",children:e.jsxs("form",{className:"settings-inline-form",onSubmit:te,children:[e.jsx("input",{"aria-label":s("settings.serverAddress"),className:"settings-text-input",value:S,onChange:_=>O(_.target.value)}),e.jsx("button",{className:"settings-button",disabled:!L,type:"submit",children:s("common.save")})]})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.autoReconnect")}),e.jsx("span",{className:"settings-row-description",children:s("settings.autoReconnectDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(de,{checked:u.autoReconnect,label:s("settings.autoReconnect"),onChange:ae})})]})]})]}):null,e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.abilityManagement")}),e.jsxs("div",{className:"settings-card",children:[e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.pluginManagement")}),e.jsx("span",{className:"settings-row-description",children:s("settings.pluginManagementDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx("button",{className:"settings-button",type:"button",onClick:()=>w(!0),children:s("settings.pluginManagementAction")})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.skillOnlyOfficeSectionTitle")}),e.jsx("span",{className:"settings-row-description",children:s("settings.skillOnlyOfficeSectionDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(on,{triggerClassName:"settings-button",triggerLabel:s("settings.skillOnlyOfficeOpenSettingsAction")})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.teableEntryTitle")}),e.jsx("span",{className:"settings-row-description",children:s("settings.teableEntryDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx("button",{className:"settings-button",type:"button",onClick:()=>T(!0),children:s("settings.teableOpenSettingsAction")})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.affairsLibraryCapabilityTitle")}),e.jsx("span",{className:"settings-row-description",children:s("settings.affairsLibraryCapabilityDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(Mn,{})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.providerManagement")}),e.jsx("span",{className:"settings-row-description",children:s("settings.providerManagementDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(dn,{})})]}),e.jsxs("div",{className:"settings-row settings-row-stacked",children:[e.jsx("div",{className:"settings-row-label settings-row-label-single-line",children:e.jsx("span",{className:"settings-row-title settings-row-title-strong",children:s("settings.modelManagementSectionTitle")})}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch settings-row-control-full-width",children:e.jsx(cn,{})})]})]})]}),e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.channelsManagement")}),e.jsx("div",{className:"settings-card",children:e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.channelsManagement")}),e.jsx("span",{className:"settings-row-description",children:s("settings.channelsManagementDescription")})]}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch",children:e.jsx(gn,{})})]})})]}),e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.remoteAccess")}),e.jsx("div",{className:"settings-card",children:e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.remoteAccessManageTitle")}),e.jsx("span",{className:"settings-row-description",children:s("settings.remoteAccessManageDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx("button",{className:"settings-button",type:"button",onClick:()=>h(!0),children:s("settings.remoteAccessManageAction")})})]})})]}),e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.securityPrivacy")}),e.jsxs("div",{className:"settings-card",children:[e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.defaultPermissionMode")}),e.jsx("span",{className:"settings-row-description",children:s("settings.defaultPermissionModeDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx("select",{"aria-label":s("settings.defaultPermissionMode"),className:"settings-select",value:f.defaultPermissionMode,onChange:_=>z(_.target.value),children:G.map(_=>e.jsx("option",{value:_.value,children:_.label},_.value))})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.authDeviceManagement")}),e.jsx("span",{className:"settings-row-description",children:s("settings.authDeviceManagementDescription")})]}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch",children:e.jsx(fn,{})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.userManagementEntryTitle")}),e.jsx("span",{className:"settings-row-description",children:s("settings.userManagementEntryDescription")})]}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch",children:e.jsx(jn,{})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.notifyOnPermissionRequest")}),e.jsx("span",{className:"settings-row-description",children:s("settings.notifyOnPermissionRequestDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(de,{checked:o,label:s("settings.notifyOnPermissionRequest"),onChange:q})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.notifyOnSessionCompleted")}),e.jsx("span",{className:"settings-row-description",children:s("settings.notifyOnSessionCompletedDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(de,{checked:N,label:s("settings.notifyOnSessionCompleted"),onChange:R})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.notifyOnSessionFailed")}),e.jsx("span",{className:"settings-row-description",children:s("settings.notifyOnSessionFailedDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(de,{checked:A,label:s("settings.notifyOnSessionFailed"),onChange:ge})})]})]})]}),e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.debugPortPool")}),e.jsx("div",{className:"settings-card",children:e.jsx(An,{value:f.debugPortPools,onSave:me})})]}),e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.softwareUpdate")}),e.jsxs("div",{className:"settings-card",children:[B.isDesktop?e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.updateOneClickTitle")}),e.jsx("span",{className:"settings-row-description",children:s("settings.updateOneClickDescription")})]}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch",children:e.jsx(ln,{})})]}):e.jsxs("div",{className:"settings-row",children:[e.jsx("div",{className:"settings-row-label",children:e.jsx("span",{className:"settings-row-title",children:s("settings.serverUpdate")})}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch",children:e.jsx(vn,{})})]}),B.isWeb?null:e.jsxs(e.Fragment,{children:[B.isDesktop?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.autoCheckUpdate")}),e.jsx("span",{className:"settings-row-description",children:s("settings.autoCheckUpdateDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(de,{checked:u.autoCheckUpdate,label:s("settings.autoCheckUpdate"),onChange:Q})})]}),e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.autoDownloadUpdate")}),e.jsx("span",{className:"settings-row-description",children:s("settings.autoDownloadUpdateDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx(de,{checked:u.autoDownloadUpdate,label:s("settings.autoDownloadUpdate"),onChange:U})})]})]}):null,B.isDesktop?null:e.jsxs("div",{className:"settings-row",children:[e.jsx("div",{className:"settings-row-label",children:e.jsx("span",{className:"settings-row-title",children:s("settings.clientUpdate")})}),e.jsx("div",{className:"settings-row-control settings-row-control-stretch",children:e.jsx(an,{})})]})]})]})]}),e.jsxs("section",{className:"settings-section",children:[e.jsx("h2",{className:"settings-section-title",children:s("settings.advancedSettings")}),e.jsx("div",{className:"settings-card",children:e.jsxs("div",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row-label",children:[e.jsx("span",{className:"settings-row-title",children:s("settings.parallelTaskDebug")}),e.jsx("span",{className:"settings-row-description",children:s("settings.parallelTaskDebugDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsx("button",{className:"settings-button",type:"button",onClick:()=>r(!0),children:s("settings.parallelTaskDebugAction")})})]})})]}),e.jsxs("div",{className:"settings-footer settings-footer-with-logout",children:[e.jsxs("span",{className:"settings-version",children:["CodingNS v",a]}),e.jsx("button",{className:"settings-button settings-button-danger settings-button-sticky",onClick:$,type:"button",children:s("common.logout")})]})]}),e.jsx(Ra,{isOpen:n,onClose:()=>r(!1)}),e.jsx(Sn,{open:c,mobile:!1,onClose:()=>h(!1)}),e.jsx(wn,{open:j,mobile:!1,workspaceId:Z,onClose:()=>w(!1)}),e.jsx(Cn,{open:p,mobile:!1,workspaceOptions:be,onClose:()=>T(!1)})]})}function Mn(){const t=Sa(!0),[a,n]=l.useState(!1),[r,c]=l.useState(null),[h,j]=l.useState(null);async function w(p){if(!a){n(!0),c(null),j(null);try{await wa(p),c(p?s("settings.affairsLibraryCapabilityEnableSuccess"):s("settings.affairsLibraryCapabilityDisableSuccess"))}catch(T){j(wr(T))}finally{n(!1)}}}return e.jsxs("div",{className:"settings-affairs-library-capability-control",children:[e.jsx(de,{checked:t.enabled,label:s("settings.affairsLibraryCapabilityToggleLabel"),semanticRole:"switch",onChange:p=>{w(p)}}),r?e.jsx("span",{className:"settings-provider-status",children:r}):null,h??t.error?e.jsx("span",{className:"settings-provider-error",children:h??s("settings.affairsLibraryCapabilityLoadFailed")}):null]})}function wr(t){return t instanceof Error&&t.message.trim()?t.message:s("settings.affairsLibraryCapabilitySaveFailed")}function Tr({model:t,appVersion:a}){const n=it(),{section:r}=sa(),c=yr(r),h=[{id:"appearance",title:s("settings.appearance"),description:s("settings.appearanceSectionSummary"),value:jr(t.accountPreferences.language),icon:e.jsx(Ir,{})}];return t.showServerSettings&&h.push({id:"server-connection",title:s("settings.serverConnection"),description:s("settings.serverConnectionSectionSummary"),value:nt(t.runtimeConfig)??"",icon:e.jsx(Ur,{})}),h.push({id:"ability-management",title:s("settings.abilityManagement"),description:s("settings.abilityManagementSectionSummary"),value:s("settings.abilityManagementNavValue"),icon:e.jsx(Fr,{})},{id:"channels-management",title:s("settings.channelsManagement"),description:s("settings.channelsManagementSectionSummary"),value:s("settings.channelsManagementNavValue"),icon:e.jsx(Br,{})},{id:"remote-access",title:s("settings.remoteAccess"),description:s("settings.remoteAccessSectionSummary"),value:s("settings.remoteAccessNavValue"),icon:e.jsx(Rr,{})},{id:"security-privacy",title:s("settings.securityPrivacy"),description:s("settings.securityPrivacySectionSummary"),value:vr(t.accountPreferences.defaultPermissionMode),icon:e.jsx(_r,{})},{id:"software-update",title:s("settings.softwareUpdate"),description:s("settings.softwareUpdateSectionSummary"),value:t.platform.isWeb?s("settings.serverUpdate"):s("settings.updateOneClickValue"),icon:e.jsx(Or,{})}),(c?h.find(w=>w.id===c)??null:null)?e.jsxs("div",{className:"settings-page settings-page-mobile mobile-page-scroll-root mobile-page-with-top-header",children:[e.jsx(Ht,{title:s("settings.title")}),e.jsxs("div",{className:"settings-mobile-container",children:[c==="appearance"?e.jsx(kr,{model:t}):null,c==="ability-management"?e.jsx(Pr,{}):null,c==="channels-management"?e.jsx(Er,{}):null,c==="server-connection"&&t.showServerSettings?e.jsx(Cr,{model:t}):null,c==="remote-access"?e.jsx(Ar,{model:t}):null,c==="security-privacy"?e.jsx(Dr,{model:t}):null,c==="software-update"?e.jsx(Lr,{model:t}):null]}),e.jsx($t,{onLogout:t.handleLogout})]}):e.jsxs("div",{className:"settings-page settings-page-mobile mobile-page-scroll-root mobile-page-with-top-header",children:[e.jsx(Ht,{title:s("settings.title")}),e.jsxs("div",{className:"settings-mobile-container",children:[e.jsx("section",{className:"settings-mobile-group-section",children:e.jsx("div",{className:"settings-mobile-list",children:h.map(w=>e.jsxs("button",{type:"button",className:"settings-mobile-nav-row",onClick:()=>n(`/settings/${w.id}`),children:[e.jsx("span",{className:"settings-mobile-nav-icon",children:w.icon}),e.jsxs("span",{className:"settings-mobile-nav-copy",children:[e.jsx("span",{className:"settings-mobile-nav-title",children:w.title}),e.jsx("span",{className:"settings-mobile-nav-description",children:w.description})]}),e.jsxs("span",{className:"settings-mobile-nav-trailing",children:[w.value?e.jsx("span",{className:"settings-mobile-nav-value",children:w.value}):null,e.jsx(Vr,{})]})]},w.id))})}),e.jsx("div",{className:"settings-footer settings-footer-mobile",children:e.jsxs("span",{className:"settings-version",children:["CodingNS v",a]})})]}),e.jsx($t,{onLogout:t.handleLogout})]})}function kr({model:t}){return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.language")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.languageDescription")}),e.jsx("div",{className:"settings-mobile-list",children:e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsx("div",{className:"settings-mobile-row-copy",children:e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.language")})}),e.jsx(Zt,{variant:"compact",className:"settings-mobile-language-switcher"})]})})]}),e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.theme")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.themeDescription")}),e.jsxs("div",{className:"settings-mobile-list",children:[e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.autoTheme")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.autoThemeDescription")})]}),e.jsx(de,{checked:t.autoTheme,label:s("settings.autoTheme"),onChange:t.applyAutoTheme})]}),Yt.map(a=>{const n=t.selectedTheme===a.id&&!t.autoTheme;return e.jsxs("button",{type:"button",className:`settings-mobile-choice-row${n?" active":""}`,"aria-pressed":n,disabled:t.autoTheme,onClick:()=>t.applyTheme(a.id),children:[e.jsxs("span",{className:"settings-mobile-choice-leading",children:[e.jsx("span",{className:"settings-mobile-choice-dot",style:{background:a.color},"aria-hidden":"true"}),e.jsx("span",{className:"settings-mobile-choice-label",children:Xt(a)})]}),e.jsx("span",{className:"settings-mobile-choice-indicator","aria-hidden":"true",children:n?e.jsx(qr,{}):null})]},a.id)})]})]}),e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.fileManager")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.workspaceSessionSortModeDescription")}),e.jsxs("div",{className:"settings-mobile-list",children:[e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.workspaceSessionSortMode")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.workspaceSessionSortModeDescription")})]}),e.jsx("select",{"aria-label":s("settings.workspaceSessionSortMode"),className:"settings-select settings-mobile-select",value:t.sessionDisplaySortMode,onChange:a=>t.updateSessionDisplaySortMode(a.target.value),children:t.sessionDisplaySortModeOptions.map(a=>e.jsx("option",{value:a.value,children:a.label},a.value))})]}),e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.showSystemFiles")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.showSystemFilesDescription")})]}),e.jsx(de,{checked:t.showSystemFiles,label:s("settings.showSystemFiles"),onChange:t.updateShowSystemFiles})]})]})]})]})}function Cr({model:t}){return e.jsxs(e.Fragment,{children:[t.canConfigureServerAddress?e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.serverAddress")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.serverDescription")}),e.jsx("div",{className:"settings-mobile-list",children:e.jsxs("form",{className:"settings-mobile-form-stack",onSubmit:t.handleHostBaseUrlSubmit,children:[e.jsx("input",{"aria-label":s("settings.serverAddress"),className:"settings-text-input settings-mobile-input",value:t.hostBaseUrlDraft,onChange:a=>t.setHostBaseUrlDraft(a.target.value)}),e.jsx("button",{className:"settings-mobile-primary-button",disabled:!t.canSaveHostBaseUrl,type:"submit",children:s("common.save")})]})})]}):null,e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.serverConnection")}),e.jsx("div",{className:"settings-mobile-list",children:e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.autoReconnect")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.autoReconnectDescription")})]}),e.jsx(de,{checked:t.runtimeConfig.autoReconnect,label:s("settings.autoReconnect"),onChange:t.updateAutoReconnect})]})})]})]})}function Dr({model:t}){return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.securityPrivacy")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.securityPrivacySectionSummary")}),e.jsx("div",{className:"settings-mobile-list",children:e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.defaultPermissionMode")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.defaultPermissionModeDescription")})]}),e.jsx("select",{"aria-label":s("settings.defaultPermissionMode"),className:"settings-select settings-mobile-select",value:t.accountPreferences.defaultPermissionMode,onChange:a=>t.updateDefaultPermissionMode(a.target.value),children:t.permissionModeOptions.map(a=>e.jsx("option",{value:a.value,children:a.label},a.value))})]})})]}),e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.authDeviceManagement")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.authDeviceManagementDescription")}),e.jsx("div",{className:"settings-mobile-panel-shell",children:e.jsx(fn,{compact:!0})})]}),e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.userManagementEntryTitle")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.userManagementEntryDescription")}),e.jsx("div",{className:"settings-mobile-panel-shell",children:e.jsx(jn,{compact:!0,mobile:!0})})]}),e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.debugPortPool")}),e.jsx("div",{className:"settings-mobile-list",children:e.jsx(An,{value:t.accountPreferences.debugPortPools,onSave:t.updateDebugPortPools,compact:!0})})]}),e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.notificationSettings")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.notificationSettingsDescription")}),e.jsxs("div",{className:"settings-mobile-list",children:[e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.notifyOnPermissionRequest")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.notifyOnPermissionRequestDescription")})]}),e.jsx(de,{checked:t.notifyOnPermissionRequest,label:s("settings.notifyOnPermissionRequest"),onChange:t.updateNotifyOnPermissionRequest})]}),e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.notifyOnSessionCompleted")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.notifyOnSessionCompletedDescription")})]}),e.jsx(de,{checked:t.notifyOnSessionCompleted,label:s("settings.notifyOnSessionCompleted"),onChange:t.updateNotifyOnSessionCompleted})]}),e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.notifyOnSessionFailed")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.notifyOnSessionFailedDescription")})]}),e.jsx(de,{checked:t.notifyOnSessionFailed,label:s("settings.notifyOnSessionFailed"),onChange:t.updateNotifyOnSessionFailed})]})]})]})]})}function An(t){const[a,n]=l.useState(()=>Wt(t.value)),[r,c]=l.useState(!1),[h,j]=l.useState(null),[w,p]=l.useState(!1);l.useEffect(()=>{n(Wt(t.value))},[t.value]);async function T(){j(null),p(!1);let d;try{d=Mr(a)}catch(C){j(C instanceof Error?C.message:s("settings.debugPortPoolSaveFailed"));return}try{c(!0),await t.onSave(d),p(!0)}catch(C){j(C instanceof Error?C.message:s("settings.debugPortPoolSaveFailed"))}finally{c(!1)}}return e.jsxs("div",{className:t.compact?"settings-mobile-form-stack":"settings-debug-port-pool-editor",children:[e.jsxs("div",{className:t.compact?"settings-mobile-form-row":"settings-row",children:[e.jsx("div",{className:t.compact?"settings-mobile-row-copy":"settings-row-label settings-debug-port-pool-label",children:e.jsx("span",{className:t.compact?"settings-mobile-row-title":"settings-row-title",children:s("settings.debugPortPoolRangeLabel")})}),e.jsx("div",{className:t.compact?"settings-mobile-form-stack":"settings-row-control settings-row-control-stretch",children:e.jsxs("div",{className:"settings-inline-form",children:[e.jsx("input",{"aria-label":`${s("settings.debugPortPool")} ${s("settings.debugPortPoolStart")}`,className:"settings-text-input",inputMode:"numeric",value:a.start,onChange:d=>{const C=d.target.value;n(F=>({...F,start:C}))}}),e.jsx("span",{children:s("settings.debugPortPoolRangeSeparator")}),e.jsx("input",{"aria-label":`${s("settings.debugPortPool")} ${s("settings.debugPortPoolEnd")}`,className:"settings-text-input",inputMode:"numeric",value:a.end,onChange:d=>{const C=d.target.value;n(F=>({...F,end:C}))}}),e.jsx("button",{type:"button",className:t.compact?"settings-mobile-primary-button":"settings-button",disabled:r,onClick:()=>{T()},children:r?s("common.loading"):s("common.save")}),w?e.jsx("span",{children:s("settings.debugPortPoolSaved")}):null]})})]}),h?e.jsx("p",{className:"status-text settings-debug-port-pool-feedback","data-tone":"error",children:h}):null]})}function Wt(t){const a=t??Dn;return{start:String(a.start),end:String(a.end)}}function Mr(t){const a=Number.parseInt(t.start,10),n=Number.parseInt(t.end,10);if(!Number.isInteger(a)||!Number.isInteger(n))throw new Error(s("settings.debugPortPoolValidationInteger"));if(a<1024||n>65535||a>=n)throw new Error(s("settings.debugPortPoolValidationRange"));return{start:a,end:n}}function Ar({model:t}){const[a,n]=l.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.remoteAccess")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.remoteAccessManageDescription")}),e.jsx("div",{className:"settings-mobile-list",children:e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.remoteAccessManageTitle")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.remoteAccessSectionSummary")})]}),e.jsx("button",{className:"settings-mobile-primary-button",type:"button",onClick:()=>n(!0),children:s("settings.remoteAccessManageAction")})]})})]}),e.jsx(Sn,{open:a,mobile:!0,onClose:()=>n(!1)})]})}function Pr(){var p;const[t,a]=l.useState(!1),[n,r]=l.useState(!1),{currentWorkspaceId:c,navigationGroups:h}=sn(),j=c??((p=h[0])==null?void 0:p.workspace.id)??null,w=h.map(T=>{var d;return{id:T.workspace.id,name:((d=T.workspace.name)==null?void 0:d.trim())||T.workspace.id}});return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.abilityManagement")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.abilityManagementSectionSummary")}),e.jsxs("div",{className:"settings-mobile-list",children:[e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.pluginManagement")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.pluginManagementDescription")})]}),e.jsx("button",{className:"settings-mobile-primary-button",type:"button",onClick:()=>a(!0),children:s("settings.pluginManagementAction")})]}),e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.skillOnlyOfficeSectionTitle")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.skillOnlyOfficeSectionDescription")})]}),e.jsx(on,{triggerClassName:"settings-mobile-primary-button",triggerLabel:s("settings.skillOnlyOfficeOpenSettingsAction"),mobile:!0})]}),e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.teableEntryTitle")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.teableEntryDescription")})]}),e.jsx("button",{className:"settings-mobile-primary-button",type:"button",onClick:()=>r(!0),children:s("settings.teableOpenSettingsAction")})]}),e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.affairsLibraryCapabilityTitle")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.affairsLibraryCapabilityDescription")})]}),e.jsx(Mn,{})]})]}),e.jsxs("div",{className:"settings-mobile-ability-stack",children:[e.jsxs("div",{className:"settings-mobile-panel-shell settings-mobile-provider-shell",children:[e.jsxs("div",{className:"settings-mobile-row-copy settings-mobile-ability-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.providerManagement")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.providerManagementDescription")})]}),e.jsx(dn,{})]}),e.jsxs("div",{className:"settings-mobile-panel-shell settings-mobile-model-shell",children:[e.jsx("div",{className:"settings-mobile-row-copy settings-mobile-ability-copy settings-mobile-row-copy-single-line",children:e.jsx("span",{className:"settings-mobile-row-title settings-mobile-row-title-strong",children:s("settings.modelManagementSectionTitle")})}),e.jsx(cn,{})]})]})]}),e.jsx(wn,{open:t,mobile:!0,workspaceId:j,onClose:()=>a(!1)}),e.jsx(Cn,{open:n,mobile:!0,workspaceOptions:w,onClose:()=>r(!1)})]})}function Er(){return e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.channelsManagement")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.channelsManagementSectionSummary")}),e.jsxs("div",{className:"settings-mobile-panel-shell settings-mobile-channels-shell",children:[e.jsxs("div",{className:"settings-mobile-row-copy settings-mobile-ability-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.channelsManagement")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.channelsManagementDescription")})]}),e.jsx(gn,{})]})]})}function Lr({model:t}){return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.softwareUpdate")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.softwareUpdateSectionSummary")})]}),t.platform.isDesktop?e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.updateOneClickTitle")}),e.jsx("div",{className:"settings-mobile-panel-shell settings-mobile-update-shell",children:e.jsx(ln,{})})]}):e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:s("settings.serverUpdate")}),e.jsx("div",{className:"settings-mobile-panel-shell settings-mobile-update-shell",children:e.jsx(vn,{})})]}),t.platform.isWeb?null:e.jsxs("section",{className:"settings-mobile-group-section",children:[e.jsx("h2",{className:"settings-mobile-group-title",children:t.platform.isDesktop?s("settings.updateOptions"):s("settings.clientUpdate")}),t.platform.isDesktop?e.jsxs("div",{className:"settings-mobile-list",children:[e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.autoCheckUpdate")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.autoCheckUpdateDescription")})]}),e.jsx(de,{checked:t.runtimeConfig.autoCheckUpdate,label:s("settings.autoCheckUpdate"),onChange:t.updateAutoCheckUpdate})]}),e.jsxs("div",{className:"settings-mobile-form-row",children:[e.jsxs("div",{className:"settings-mobile-row-copy",children:[e.jsx("span",{className:"settings-mobile-row-title",children:s("settings.autoDownloadUpdate")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.autoDownloadUpdateDescription")})]}),e.jsx(de,{checked:t.runtimeConfig.autoDownloadUpdate,label:s("settings.autoDownloadUpdate"),onChange:t.updateAutoDownloadUpdate})]})]}):null,t.platform.isDesktop?null:e.jsx("div",{className:"settings-mobile-panel-shell settings-mobile-update-shell",children:e.jsx(an,{})})]})]})}function $t({onLogout:t}){return e.jsx("div",{className:"settings-mobile-sticky-footer",children:e.jsx("button",{type:"button",className:"settings-mobile-danger-button settings-mobile-danger-button-sticky",onClick:t,children:s("common.logout")})})}function Ir(){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[e.jsx("path",{d:"M10 3.5a6.5 6.5 0 1 0 6.5 6.5c0-.8-.6-1.4-1.4-1.4h-1.6A1.5 1.5 0 0 1 12 7.1V5.5c0-1.1-.9-2-2-2Z"}),e.jsx("circle",{cx:"6.6",cy:"9.2",r:".8",fill:"currentColor",stroke:"none"}),e.jsx("circle",{cx:"8.8",cy:"6.8",r:".8",fill:"currentColor",stroke:"none"}),e.jsx("circle",{cx:"12.1",cy:"6.6",r:".8",fill:"currentColor",stroke:"none"})]})}function Ur(){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[e.jsx("path",{d:"M4 7.5 10 4l6 3.5v5L10 16l-6-3.5v-5Z"}),e.jsx("path",{d:"M10 9.5V16"}),e.jsx("path",{d:"M4 7.5 10 11l6-3.5"})]})}function Or(){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[e.jsx("rect",{x:"3.5",y:"4",width:"13",height:"9.5",rx:"2.2"}),e.jsx("path",{d:"M7 16h6"}),e.jsx("path",{d:"M10 13.5V16"}),e.jsx("path",{d:"m8 8 2 2 3-3"})]})}function Rr(){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[e.jsx("circle",{cx:"10",cy:"10",r:"5.8"}),e.jsx("path",{d:"M10 4.2c1.5 1.3 2.4 3.5 2.4 5.8s-.9 4.5-2.4 5.8c-1.5-1.3-2.4-3.5-2.4-5.8s.9-4.5 2.4-5.8Z"}),e.jsx("path",{d:"M4.6 8.1h10.8"}),e.jsx("path",{d:"M4.6 11.9h10.8"})]})}function Fr(){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[e.jsx("path",{d:"M4 5.5h7"}),e.jsx("path",{d:"M4 10h12"}),e.jsx("path",{d:"M4 14.5h9"}),e.jsx("circle",{cx:"13.5",cy:"5.5",r:"1.5",fill:"currentColor",stroke:"none"}),e.jsx("circle",{cx:"8",cy:"10",r:"1.5",fill:"currentColor",stroke:"none"}),e.jsx("circle",{cx:"15.5",cy:"14.5",r:"1.5",fill:"currentColor",stroke:"none"})]})}function Br(){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[e.jsx("path",{d:"M5 5.5h4.5"}),e.jsx("path",{d:"M10.5 5.5h4.5"}),e.jsx("path",{d:"M5 10h3.5"}),e.jsx("path",{d:"M11.5 10H15"}),e.jsx("path",{d:"M5 14.5h4.5"}),e.jsx("path",{d:"M10.5 14.5h4.5"}),e.jsx("circle",{cx:"10",cy:"10",r:"1.6",fill:"currentColor",stroke:"none"}),e.jsx("path",{d:"m8.9 8.9-1.8-1.8M11.1 8.9l1.8-1.8M8.9 11.1l-1.8 1.8M11.1 11.1l1.8 1.8"})]})}function _r(){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[e.jsx("path",{d:"M10 3.2 15 5v4.4c0 3-1.9 5.8-5 7.4-3.1-1.6-5-4.4-5-7.4V5l5-1.8Z"}),e.jsx("path",{d:"m8.3 9.8 1.2 1.2 2.4-2.5"})]})}function Vr(){return e.jsx("svg",{viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:e.jsx("path",{d:"m4 2 4 4-4 4"})})}function qr(){return e.jsx("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:e.jsx("path",{d:"m3.5 8.2 2.6 2.6 6-6"})})}export{nc as SettingsPage};
|