@jingyi0605/codingns 0.9.9 → 1.0.0-beta.1
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/bin/codingns.mjs +14 -0
- package/dist/public/assets/{AdaptiveButlerPage-CqBM1XiC.js → AdaptiveButlerPage-BYETYaIe.js} +1 -1
- package/dist/public/assets/{App-Pe30N_Dy.js → App-CHsm-VrM.js} +3 -3
- package/dist/public/assets/App-Z0Zd7gXR.css +1 -0
- package/dist/public/assets/{BootstrapPage-D9ai1XhC.js → BootstrapPage-Bp0KfySv.js} +1 -1
- package/dist/public/assets/ConversationPage-BCrNml1k.js +9 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-BJVPVFf2.js → DesktopDetachPreviewPage-DlDSb_tf.js} +1 -1
- package/dist/public/assets/{DesktopModal-DyC_e0eF.js → DesktopModal-Csj5AdAN.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-BZleww0T.js → DesktopWindowPage-CacXiWjV.js} +1 -1
- package/dist/public/assets/{FileContextPanel-BklQRQXj.js → FileContextPanel-DzMUQvE5.js} +1 -1
- package/dist/public/assets/{GitSidebar-D0tb3W87.js → GitSidebar-C8IC18GH.js} +2 -2
- package/dist/public/assets/{MobileCreateSessionSheet-BS881Agk.js → MobileCreateSessionSheet-BtqR_hKc.js} +1 -1
- package/dist/public/assets/{MobileSheet-C32hwIFd.js → MobileSheet-Co-qPMBD.js} +1 -1
- package/dist/public/assets/{PluginAccessOverview-BDiz6fV8.js → PluginAccessOverview-D-KXkcyj.js} +1 -1
- package/dist/public/assets/{PluginContainerPage-BMT6J0YS.js → PluginContainerPage-BKwCIs4r.js} +1 -1
- package/dist/public/assets/{PluginDetailPage-ztNhvCWP.js → PluginDetailPage-Djv_swcO.js} +1 -1
- package/dist/public/assets/{PluginsListPage-Cuk2-U6E.js → PluginsListPage-DAECNoN6.js} +1 -1
- package/dist/public/assets/{PureConversationPage-ShluI2En.js → PureConversationPage-DP1X7Hix.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-CMbjlD0k.js → RelayConnectEntryPage-xL_IPH8a.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-CLSWyHu6.js → ServerSettingsModal-CyhMgk10.js} +1 -1
- package/dist/public/assets/{SessionIndexPage-dqfauVAj.js → SessionIndexPage-CVEz50tc.js} +1 -1
- package/dist/public/assets/SettingsPage-CQNCrgaj.js +2 -0
- package/dist/public/assets/{TerminalManagerPanel-75khWhRz.js → TerminalManagerPanel-wVnoRA8u.js} +1 -1
- package/dist/public/assets/{ToolFilesPage-S3eWxO_D.js → ToolFilesPage-BospXumK.js} +1 -1
- package/dist/public/assets/{ToolGitPage-8RAMpope.js → ToolGitPage-B2zOeCAD.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-TZACKEoH.js → ToolProcessesPage-BDShao4b.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-Whgu6Tyf.js → ToolsHomePage-s4zH7D9M.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-CC24vHza.js → WorkbenchLandingPage-D51QCU_u.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-Bo2BbMY6.js +1081 -0
- package/dist/public/assets/{WorkbenchModal-2PaCY_Gj.js → WorkbenchModal-YsyEdJ_m.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-D3l4aWJS.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-D5fnyF8z.css +1 -0
- package/dist/public/assets/{WorkspaceDebugDetailPage-Ce_oMmJ8.js → WorkspaceDebugDetailPage-CMjNLqFq.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-aX6w4Q7S.js → WorkspaceDetailPage-CKxTbPKh.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-DQttgj2w.js → WorkspaceHomePage-CEy4ShCu.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-CGVLChqs.js → client-runtime-manager-BFXU9DmS.js} +1 -1
- package/dist/public/assets/host-alias-Zb2xyVrf.js +1 -0
- package/dist/public/assets/{index-Bp1FnRo_.js → index-BilHJjYU.js} +3 -3
- package/dist/public/assets/index-OR7OITpQ.css +1 -0
- package/dist/public/assets/{login-direct-candidate-resolver-Bvs5uPix.js → login-direct-candidate-resolver-DL8DS-Si.js} +1 -1
- package/dist/public/assets/{peer-host-config-sync-oelf2T0_.js → peer-host-config-sync-d2ZcPC5P.js} +1 -1
- package/dist/public/assets/{plugin-permission-copy-Do028HzJ.js → plugin-permission-copy-DrLk22m5.js} +1 -1
- package/dist/public/assets/{plugins-api-BOugklJ-.js → plugins-api-COF4oh24.js} +1 -1
- package/dist/public/assets/{preferences-service-Dys1mbBy.js → preferences-service-CEWNV1w9.js} +1 -1
- package/dist/public/assets/{relay-entry-B6UDc5cD.js → relay-entry-Cmc8vTlE.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-BafVuBvE.js → useRegisteredDebugTemplates-FdmHG2S4.js} +1 -1
- package/dist/public/assets/workbench-navigation-ED0157V-.js +1 -0
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.js +5 -3
- package/dist/server/config/env.js.map +1 -1
- package/dist/server/modules/butler/butler-session-service.d.ts +1 -0
- package/dist/server/modules/butler/butler-session-service.js +2 -1
- package/dist/server/modules/butler/butler-session-service.js.map +1 -1
- package/dist/server/modules/client/npm-global-package-service.js +3 -0
- package/dist/server/modules/client/npm-global-package-service.js.map +1 -1
- package/dist/server/modules/client/service-update-types.d.ts +3 -0
- package/dist/server/modules/peer-host/peer-host-controller.d.ts +5 -0
- package/dist/server/modules/peer-host/peer-host-controller.js +3 -0
- package/dist/server/modules/peer-host/peer-host-controller.js.map +1 -1
- package/dist/server/modules/peer-host/peer-host-service.d.ts +1 -0
- package/dist/server/modules/peer-host/peer-host-service.js +44 -0
- package/dist/server/modules/peer-host/peer-host-service.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +1 -0
- package/dist/server/modules/sessions/session-history-service.js +6 -2
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-spooler.d.ts +5 -0
- package/dist/server/modules/terminal/runtime/terminal-log-spooler.js +54 -7
- package/dist/server/modules/terminal/runtime/terminal-log-spooler.js.map +1 -1
- package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js +2 -1
- package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js.map +1 -1
- package/dist/server/modules/workbench/workbench-service.js +11 -1
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.d.ts +4 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.js +26 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.js.map +1 -1
- package/dist/server/modules/workspace/affairs-lightweight-session-service.d.ts +15 -1
- package/dist/server/modules/workspace/affairs-lightweight-session-service.js +201 -22
- package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -1
- package/dist/server/routes/peer-hosts.js +1 -0
- package/dist/server/routes/peer-hosts.js.map +1 -1
- package/dist/server/server/create-server.js +1 -1
- package/dist/server/server/create-server.js.map +1 -1
- package/package.json +3 -2
- package/scripts/node22-runtime.mjs +176 -0
- package/scripts/postinstall.mjs +6 -0
- package/dist/public/assets/App-7zrCMhE-.css +0 -1
- package/dist/public/assets/ConversationPage-C8aU99KN.js +0 -9
- package/dist/public/assets/SettingsPage-PUga-wwJ.js +0 -2
- package/dist/public/assets/WorkbenchLayout-CoYxMzzR.js +0 -1081
- package/dist/public/assets/WorkbenchShellRoute-DLVRpGzb.css +0 -1
- package/dist/public/assets/WorkbenchShellRoute-QXztW_Ny.js +0 -1
- package/dist/public/assets/host-alias-CeDJeL0T.js +0 -1
- package/dist/public/assets/index-BehUkul4.css +0 -1
- package/dist/public/assets/workbench-navigation-Bs4OQYD3.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as l,j as e,t as s,h as Q,c as ts,e as Re,f as tt,x as ss,B as Fe,K as Qe,L as gt,M as $n,N as ks,O as zn,P as nt,i as Kn,Q as Cs,s as Gn,n as Jn,d as Ds,o as Qn}from"./index-BilHJjYU.js";import{g as Zn,j as Ss,k as Yn,l as Kt,m as Gt,n as Jt,o as Xn,p as ea,q as Qt,s as Zt,e as hs,t as Ms,f as at,u as it,v as sa,w as ta,c as na,L as Yt,x as Xt,y as en}from"./App-CHsm-VrM.js";import{a2 as mt,bu as aa,bv as sn,bw as he,bx as ia,by as As,bz as la,ab as ra,bA as oa,bB as ca,bC as da,P as ua,Q as ga,bD as ma,bE as ha,bF as ht,bG as pa,bH as ba,bI as fa,bJ as xa,bK as ya,bL as ja,bM as va,bN as Na,bO as Sa,bP as wa,u as as,b as tn,bQ as is,bR as Ta,bS as ka}from"./WorkbenchLayout-Bo2BbMY6.js";import{M as Ca,D as Ce}from"./DesktopModal-Csj5AdAN.js";import{M as Me}from"./MobileSheet-Co-qPMBD.js";import{M as Z,w as de,s as ee,H as re,v as ce,t as fe,u as be,Q as Da}from"./workbench-navigation-ED0157V-.js";import{W as ms}from"./WorkbenchModal-YsyEdJ_m.js";import{l as Ma,g as Aa,a as Pa,b as Ea,r as La,d as Ia,e as Oa}from"./plugins-api-COF4oh24.js";import{P as Ua}from"./PluginAccessOverview-D-KXkcyj.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-Zb2xyVrf.js";import"./relay-entry-Cmc8vTlE.js";import"./plugin-permission-copy-DrLk22m5.js";const pt=2e4,Ra=1e3,Fa=5e3;function Ba({isOpen:t,onClose:a}){const[n,r]=l.useState(null),[o,h]=l.useState(null),[v,w]=l.useState(!1),[b,T]=l.useState(!1),[m,C]=l.useState(null),I=l.useRef(null);if(l.useEffect(()=>{if(!t)return;let d=!1;async function x(){w(!0),C(null),h(null);try{const u=await Q.request("/api/observability/runtime/session",{method:"POST",body:JSON.stringify({ttlMs:pt})});if(d){await Ps(u.sessionId);return}I.current=u.sessionId,r(u);const k=await bt(u.sessionId);if(d){await Ps(u.sessionId);return}h(k)}catch(u){d||C(Es(u))}finally{d||w(!1)}}return x(),()=>{d=!0;const u=I.current;I.current=null,r(null),h(null),w(!1),T(!1),C(null),u&&Ps(u)}},[t]),l.useEffect(()=>{const d=(n==null?void 0:n.sessionId)??null;if(!t||!d)return;const x=d;let u=!1;async function k(){T(!0);try{const f=await bt(x);u||(h(f),C(null))}catch(f){u||C(Es(f))}finally{u||T(!1)}}const c=window.setInterval(()=>{k()},Ra);return()=>{u=!0,window.clearInterval(c)}},[t,n==null?void 0:n.sessionId]),l.useEffect(()=>{const d=(n==null?void 0:n.sessionId)??null;if(!t||!d)return;const x=d;let u=!1;async function k(){try{const f=await Q.request(`/api/observability/runtime/session/${x}/heartbeat`,{method:"POST",body:JSON.stringify({ttlMs:pt})});u||r(f)}catch(f){u||C(Es(f))}}const c=window.setInterval(()=>{k()},Fa);return()=>{u=!0,window.clearInterval(c)}},[t,n==null?void 0:n.sessionId]),!t||typeof document>"u")return null;const R=Object.entries((o==null?void 0:o.backgroundTasks.taskTypes)??{}),A=(o==null?void 0:o.registeredTasks)??[],N=Object.entries((o==null?void 0:o.schedulers.schedulers)??{}),E=Object.entries((o==null?void 0:o.backgroundTasks.totals)??{});return Zn.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":m?"error":"active",children:m?s("settings.parallelTaskDebugStatusError"):s("settings.parallelTaskDebugStatusActive")}),e.jsx(Ca,{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(o==null?void 0:o.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:Va((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:o!=null&&o.eventLoop.enabled?s("settings.parallelTaskDebugCollectorEnabled"):s("settings.parallelTaskDebugCollectorDisabled")})]})]}),v?e.jsx("div",{className:"parallel-task-debug-empty",children:s("settings.parallelTaskDebugLoading")}):null,!v&&m?e.jsx("div",{className:"parallel-task-debug-error",children:m}):null,!v&&!m&&o?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:b?s("common.loading"):s("settings.parallelTaskDebugAutoRefresh")})]}),e.jsx("div",{className:"parallel-task-debug-counter-grid",children:E.map(([d,x])=>e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:qa(d)}),e.jsx("strong",{children:x})]},d))})]}),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:A.length})]}),A.length>0?e.jsx("div",{className:"parallel-task-debug-grid",children:A.map(d=>e.jsxs("article",{className:"parallel-task-debug-panel",children:[e.jsxs("div",{className:"parallel-task-debug-panel-header",children:[e.jsx("strong",{children:d.taskType}),e.jsx("span",{children:Is(d.executionLane)})]}),e.jsxs("div",{className:"parallel-task-debug-panel-body",children:[e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskCategory"),": ",ft(d.taskType)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskRuntime"),": ",xt(d.executionLane,d.taskType)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskTimeout"),": ",ke(d.timeoutMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskConcurrency"),": ",d.concurrency??s("common.none")]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskRetry"),": ",d.retryMaxAttempts??s("common.none")]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskHelper"),": ",d.helperProcessHandler??s("common.none")]})]})]},d.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:R.length})]}),R.length>0?e.jsx("div",{className:"parallel-task-debug-grid",children:R.map(([d,x])=>e.jsxs("article",{className:"parallel-task-debug-panel",children:[e.jsxs("div",{className:"parallel-task-debug-panel-header",children:[e.jsx("strong",{children:d}),e.jsx("span",{children:Is(x.executionLane)})]}),e.jsxs("div",{className:"parallel-task-debug-panel-body",children:[e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskCategory"),": ",ft(d)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskRuntime"),": ",xt(x.executionLane,d)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugWaitAvg"),": ",ke(x.waitMs.avg)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugRunAvg"),": ",ke(x.runMs.avg)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugRunMax"),": ",ke(x.runMs.max)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugStartedCount"),": ",x.counters.started??0]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugFinishedCount"),": ",x.counters.finished??0]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugFailedCount"),": ",x.counters.failed??0]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugCacheHitCount"),": ",x.counters.cache_hit??0]})]})]},d))}):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:N.length})]}),N.length>0?e.jsx("div",{className:"parallel-task-debug-grid",children:N.map(([d,x])=>e.jsxs("article",{className:"parallel-task-debug-panel",children:[e.jsxs("div",{className:"parallel-task-debug-panel-header",children:[e.jsx("strong",{children:d}),e.jsx("span",{children:x.lastIdle?s("settings.parallelTaskDebugIdle"):s("settings.parallelTaskDebugBusy")})]}),e.jsxs("div",{className:"parallel-task-debug-panel-body",children:[e.jsxs("span",{children:[s("settings.parallelTaskDebugTickTotal"),": ",x.tickTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugIdleTickTotal"),": ",x.idleTickTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugTaskCountTotal"),": ",x.taskCountTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugSchedulerErrorTotal"),": ",x.errorTotal]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugLastDuration"),": ",ke(x.lastDurationMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugNextDelay"),": ",ke(x.nextDelayMs)]})]})]},d))}):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:o.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:ke(o.eventLoop.resolutionMs)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopMean")}),e.jsx("strong",{children:ke(o.eventLoop.meanMs)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopP95")}),e.jsx("strong",{children:ke(o.eventLoop.p95Ms)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopP99")}),e.jsx("strong",{children:ke(o.eventLoop.p99Ms)})]}),e.jsxs("div",{className:"parallel-task-debug-counter-card",children:[e.jsx("span",{children:s("settings.parallelTaskDebugEventLoopMax")}),e.jsx("strong",{children:ke(o.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:o.recentTaskActivities.length})]}),o.recentTaskActivities.length>0?e.jsx("div",{className:"parallel-task-debug-activity-list",children:o.recentTaskActivities.map(d=>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:d.taskType}),e.jsx("span",{children:Ha(d.eventType)}),e.jsx("span",{children:Is(d.executionLane)})]}),e.jsxs("p",{children:[s("settings.parallelTaskDebugTaskKey"),": ",d.key]}),e.jsxs("p",{children:[s("settings.parallelTaskDebugStatus"),": ",d.status?Wa(d.status):"-"]})]}),e.jsxs("div",{className:"parallel-task-debug-activity-meta",children:[e.jsx("span",{children:Ls(d.recordedAt)}),e.jsxs("span",{children:[s("settings.parallelTaskDebugAttempt"),": ",d.attempt??"-"]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugWaitMs"),": ",ke(d.waitMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugRunMs"),": ",ke(d.runMs)]}),e.jsxs("span",{children:[s("settings.parallelTaskDebugSource"),": ",d.source??"-"]}),d.errorMessage?e.jsxs("span",{children:[s("settings.parallelTaskDebugError"),": ",d.errorMessage]}):null]})]},d.eventId))}):e.jsx("div",{className:"parallel-task-debug-empty",children:s("settings.parallelTaskDebugEmpty")})]})]}):null]})]})]}),document.body)}async function bt(t){return await Q.request(`/api/observability/runtime?sessionId=${encodeURIComponent(t)}`)}async function Ps(t){try{await Q.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 ke(t){return t==null||Number.isNaN(t)?"-":`${Math.round(t*100)/100} ms`}function Va(t){return t===null||Number.isNaN(t)?"-":`${Math.round(t/1e3)} s`}const _a=new Set(["affairs.library_apply_config","affairs.library_index","affairs.library_export"]);function nn(t){return _a.has(t)}function ft(t){return nn(t)?s("settings.parallelTaskDebugTaskCategoryBuiltinIndexer"):s("settings.parallelTaskDebugTaskCategoryGeneric")}function xt(t,a){if(t==="helper_process"&&nn(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 qa(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 Ha(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 Wa(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 yt(){const t=ts(),a=Re.getState(),n=await t.bridge.getAndroidRuntimeInfo();if(!n.ok||!n.value)throw new Error(n.detail??"读取 Android 运行时信息失败。");const r=await Q.request(`/api/client/release-manifest?channel=${encodeURIComponent(a.releaseChannel)}&platform=android-apk`),o=r.versionCode>n.value.versionCode;return{checkedAt:new Date().toISOString(),currentVersion:n.value.version,currentVersionCode:n.value.versionCode,hasUpdate:o,manifest:r,runtimeInfo:n.value}}async function $a(t){return ts().bridge.installAndroidUpdate(t)}function za(t){return t==="beta"?s("settings.releaseChannelBeta"):s("settings.releaseChannelStable")}function lt({open:t,mobile:a,summary:n,onClose:r}){const o=n?e.jsx(Ka,{summary:n}):e.jsx(Z,{children:e.jsx("p",{className:"settings-update-notes-empty",children:s("settings.releaseNotesEmpty")})});return a?e.jsx(Me,{open:t,title:s("settings.releaseNotes"),height:"full",kind:"form",showHandle:!0,onClose:r,children:o}):e.jsx(Ce,{open:t,title:s("settings.releaseNotes"),size:"regular",layout:"viewer",onClose:r,children:o})}function Ka({summary:t}){return e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:e.jsxs("div",{className:"settings-update-notes-header",children:[t.title?e.jsx("strong",{className:"settings-update-notes-title",children:t.title}):null,e.jsxs("div",{className:"settings-update-notes-meta",children:[e.jsxs("span",{className:"settings-update-notes-version",children:["v",t.version]}),e.jsx("span",{className:"settings-update-notes-separator",children:"·"}),e.jsx("span",{className:"settings-update-notes-channel",children:za(t.channel)})]}),t.publishedAt?e.jsxs("span",{className:"settings-update-notes-published",children:[s("settings.releaseNotesPublishedAt"),":",t.publishedAt]}):null]})}),e.jsx(Z,{children:e.jsx("div",{className:"settings-update-notes-body",children:t.content?e.jsx("p",{className:"settings-update-notes-content",children:t.content}):e.jsx("p",{className:"settings-update-notes-empty",children:s("settings.releaseNotesEmpty")})})})]})}function Ga(t){return t.notes?{version:t.version,title:t.title||void 0,publishedAt:t.publishedAt||void 0,content:t.notes,channel:t.channel,source:"desktop"}:null}function Ja(t){return t.notes?{version:t.version,publishedAt:t.publishedAt||void 0,content:t.notes,channel:t.channel,source:"android"}:null}function Qa(t){return!t.latestNotes||!t.latestVersion?null:{version:t.latestVersion,title:t.latestTitle||void 0,publishedAt:t.latestPublishedAt||void 0,content:t.latestNotes,channel:t.channel,source:"service"}}function Za(){const[t,a]=l.useState(!1),[n,r]=l.useState(!1),[o,h]=l.useState(null),[v,w]=l.useState(null),[b,T]=l.useState(null),[m,C]=l.useState(!1),[I,R]=l.useState(null),[A,N]=l.useState(!1),E=l.useRef(!1);l.useEffect(()=>{if(I===null){E.current=!1;return}const u=I;async function k(){if(!E.current){E.current=!0;try{const S=await yt();if(T(S.manifest),w(S.currentVersion),C(S.hasUpdate),!S.hasUpdate||S.currentVersionCode>=u){h(s("settings.androidInstallSucceeded"));return}h(s("settings.androidInstallCancelled"))}catch(S){h(S instanceof Error?S.message:s("settings.releaseCheckFailed"))}finally{R(null)}}}function c(){k()}function f(){document.visibilityState==="visible"&&k()}return window.addEventListener("focus",c),document.addEventListener("visibilitychange",f),()=>{window.removeEventListener("focus",c),document.removeEventListener("visibilitychange",f)}},[I]);async function d(){a(!0),h(null),R(null);try{const u=await yt();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 x(){if(b){r(!0),h(null),R(null);try{const u=await $a(b);if(u.status==="installer_started"){h(s("settings.androidInstallerStarted")),R(b.versionCode);return}if(u.status==="permission_required"){h(u.detail??s("settings.androidInstallPermissionRequired")),R(null);return}if(u.status==="already_up_to_date"){h(s("settings.releaseUpToDate")),C(!1),R(null);return}h(u.detail??s("settings.releaseInstallFailed")),R(null)}catch(u){h(u instanceof Error?u.message:s("settings.releaseInstallFailed")),R(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:v??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)??"-"})]})]}),o?e.jsx("p",{className:"settings-update-status","data-tone":m?"warning":"success",children:o}):null,e.jsxs("div",{className:"settings-update-actions",children:[b!=null&&b.notes?e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>N(!0),children:s("settings.releaseNotesView")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:t||n,onClick:d,children:t?s("common.loading"):s("settings.releaseCheckNow")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!b||!m||n,onClick:x,children:n?s("common.loading"):s("settings.releaseInstallNow")})]}),e.jsx(lt,{open:A,mobile:!0,summary:b?Ja(b):null,onClose:()=>N(!1)})]})}function an({open:t,version:a,installing:n,onClose:r,onConfirm:o}){return e.jsx(Ce,{open:t,title:s("settings.releaseInstallReadyDialogTitle"),description:s("settings.releaseInstallReadyDialogDescription",{version:a??"-"}),size:"compact",layout:"confirm",dismissible:!n,footer:e.jsxs(de,{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:o,children:n?s("common.loading"):s("settings.releaseInstallReadyConfirm")})]}),onClose:r,children:e.jsx(Z,{className:"settings-update-confirm-section",children:e.jsx("p",{className:"settings-update-confirm-warning",children:s("settings.releaseInstallReadyWarning")})})})}function Ya(){const t=ts(),a=t.isDesktop,n=tt(B=>B.autoDownloadUpdate),[r,o]=l.useState(!1),[h,v]=l.useState(!1),[w,b]=l.useState(!1),[T,m]=l.useState(!1),[C,I]=l.useState(null),[R,A]=l.useState(null),[N,E]=l.useState(null),[d,x]=l.useState(!1),u=Ss(B=>B.latestState),k=Ss(B=>B.pendingRestartVersion),c=(u==null?void 0:u.currentVersion)??null,f=(u==null?void 0:u.manifest)??null,S=(u==null?void 0:u.hasUpdate)??!1,$=!!k,j=$&&N!==k,D=!!(C&&!$&&C===(f==null?void 0:f.version));async function U(){if(!$){o(!0),I(null),A(null);try{const B=await Yn({notify:"always"});A(jt(B.hasUpdate)),n&&B.hasUpdate&&B.manifest&&await G(B.manifest.version)}catch(B){A(B instanceof Error?B.message:s("settings.releaseCheckFailed"))}finally{o(!1)}}}async function G(B){var O;b(!0),A(s("settings.releaseDownloading"));try{const H=await Jt();if(!H.ok){A(H.detail??s("settings.releaseDownloadFailed"));return}I(H.version??B),A(Xa(((O=H.progress)==null?void 0:O.percent)??null))}finally{b(!1)}}async function W(){if(!(!f||!S||$)){v(!0),A(null);try{const B=await Kt();if(!B.ok){A(B.detail??s("settings.releaseInstallFailed"));return}Gt(f.version),I(null),E(null),A(s("settings.releaseRestartRequired"))}catch(B){A(B instanceof Error?B.message:s("settings.releaseInstallFailed"))}finally{v(!1)}}}async function F(){if(f!=null&&f.htmlUrl){m(!0);try{const B=await t.bridge.openExternal(f.htmlUrl);B.ok||A(B.detail??s("settings.releasePageOpenFailed"))}catch(B){A(B instanceof Error?B.message:s("settings.releasePageOpenFailed"))}finally{m(!1)}}}const se=r||w||h,ae=!!(a&&f&&S&&!$),ie=R??(a?$?s("settings.releaseRestartRequired"):u?jt(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:c??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)??k??"-"})]})]}),ie?e.jsx("p",{className:"settings-update-status","data-tone":ei(S,ie,$),children:ie}):null,e.jsxs("div",{className:"settings-update-actions",children:[f!=null&&f.notes?e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>x(!0),children:s("settings.releaseNotesView")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:!a||se||$,onClick:U,children:r?s("settings.updateChecking"):s("settings.updateCheckAll")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!ae||se,onClick:W,children:h?s("common.loading"):s("settings.releaseInstallNow")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:!(f!=null&&f.htmlUrl)||se||T,onClick:F,children:T?s("common.loading"):s("settings.releaseOpenPage")})]})]}),e.jsx(an,{open:D,version:C,installing:h,onClose:()=>I(null),onConfirm:()=>{W()}}),e.jsx(si,{open:j,version:k,onClose:()=>E(k)}),e.jsx(lt,{open:d,mobile:!1,summary:f?Ga(f):null,onClose:()=>x(!1)})]})}function jt(t){return t?s("settings.releaseUpdateReady"):s("settings.releaseUpToDate")}function Xa(t){return t===null?s("settings.releaseDownloadedReady"):s("settings.releaseDownloadedReadyWithProgress",{percent:String(t)})}function ei(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 si({open:t,version:a,onClose:n}){const[r,o]=l.useState(!1),[h,v]=l.useState(null);async function w(){o(!0),v(null);try{await Xn()}catch(b){v(b instanceof Error?b.message:s("settings.releaseRestartFailed")),o(!1)}}return e.jsx(Ce,{open:t,title:s("settings.releaseRestartDialogTitle"),description:s("settings.releaseRestartDialogDescription",{version:a??"-"}),size:"compact",layout:"confirm",dismissible:!r,footer:e.jsxs(de,{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(Z,{className:"settings-update-confirm-section",children:h?e.jsx("p",{className:"settings-update-status","data-tone":"danger",children:h}):null})})}function ln(){const t=ts();return t.platform==="desktop"?e.jsx(Ya,{}):t.platform==="android"?e.jsx(Za,{}):e.jsx("div",{className:"settings-update-card",children:e.jsx("p",{className:"settings-update-status","data-tone":"neutral",children:s("settings.clientUpdateUnsupported")})})}const ti=1500,ni=12e4;function rn(){const t=tt(U=>U.autoDownloadUpdate),a=ts(),n=Ss(U=>U.latestState),r=Ss(U=>U.pendingRestartVersion),[o,h]=l.useState(null),[v,w]=l.useState(null),[b,T]=l.useState(!1),[m,C]=l.useState(!1),[I,R]=l.useState(!1),[A,N]=l.useState(null),[E,d]=l.useState(null),x=(n==null?void 0:n.manifest)??null,u=(n==null?void 0:n.hasUpdate)??!1,k=!!(o!=null&&o.hasUpdate&&!o.restartRequired),c=k||!!(u&&x),f=!!(E&&!r&&E===(x==null?void 0:x.version)),S=b||m;async function $(){if(!r){T(!0),N(null),d(null);try{const U=await ea({notify:"never"}),G=U.servicePackage;h(G),w((G==null?void 0:G.installTask)??null);const W=U.clientState;if(t&&(W!=null&&W.hasUpdate)&&W.manifest){const F=await Jt();F.ok&&d(F.version??W.manifest.version)}N(li(G,!!(W!=null&&W.hasUpdate),U.serviceError,U.clientError))}catch(U){N(U instanceof Error?U.message:s("settings.updateCheckFailed"))}finally{T(!1)}}}async function j(){if(!(!c||r)){C(!0),N(s("settings.updateInstallingSequential"));try{if(k&&(o!=null&&o.packageName)){const U=await Qt(o.packageName);w(U),N(s("settings.updateInstallingServerFirst"));const G=await ai(U);if(w(G),G.status!=="succeeded"){N(G.errorMessage??s("settings.serverInstallFailed"));return}}if(u&&x){N(s("settings.updateInstallingClientNext"));const U=await Kt();if(!U.ok){N(U.detail??s("settings.releaseInstallFailed"));return}Gt(x.version),d(null),N(s("settings.releaseRestartRequired"));return}N(s("settings.serverInstallSucceeded"))}catch(U){N(U instanceof Error?U.message:s("settings.releaseInstallFailed"))}finally{C(!1)}}}async function D(){if(x!=null&&x.htmlUrl){R(!0);try{const U=await a.bridge.openExternal(x.htmlUrl);U.ok||N(U.detail??s("settings.releasePageOpenFailed"))}catch(U){N(U instanceof Error?U.message:s("settings.releasePageOpenFailed"))}finally{R(!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:(o==null?void 0:o.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:(o==null?void 0:o.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:(x==null?void 0:x.version)??r??"-"})]})]}),v&&on(v.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:v.status==="queued"?"20%":"65%"}})}),e.jsx("span",{className:"settings-update-progress-text",children:s("settings.serverProgressCurrentStage",{stage:v.status==="queued"?s("settings.serverProgressQueued"):s("settings.serverProgressInstalling")})}),e.jsx("span",{className:"settings-update-progress-hint",children:s("settings.serverProgressHint")})]}):null,E?e.jsx("p",{className:"settings-update-status","data-tone":"warning",children:s("settings.releaseDownloadedReady")}):null,A?e.jsx("p",{className:"settings-update-status","data-tone":c?"warning":"success",children:A}):null,e.jsxs("div",{className:"settings-update-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:S||!!r,onClick:$,children:b?s("settings.updateChecking"):s("settings.updateCheckAll")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!c||S||!!r,onClick:j,children:m?s("common.loading"):s("settings.updateInstallAll")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:!(x!=null&&x.htmlUrl)||S||I,onClick:D,children:I?s("common.loading"):s("settings.releaseOpenPage")})]})]}),e.jsx(an,{open:f,version:E,installing:m,onClose:()=>d(null),onConfirm:()=>{d(null),j()}})]})}async function ai(t){let a=t;const n=Date.now();for(;on(a.status);){if(Date.now()-n>ni)return{...a,status:"timeout",errorMessage:s("settings.serverInstallTimeout")};await ii(ti),a=await Zt(a.taskId)}return a}function ii(t){return new Promise(a=>{window.setTimeout(a,t)})}function on(t){return t==="queued"||t==="running"}function li(t,a,n,r){const o=!!(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?o?s("settings.updateServerReadyClientCheckFailed"):s("settings.updateCheckIncomplete"):o&&a?s("settings.updateBothReady"):o?s("settings.updateServerReadyOnly"):a?s("settings.updateClientReadyOnly"):s("settings.updateAllUpToDate")}const ri="https://github.com/SaladDay/cc-switch-cli",oi="当前机器未安装 cc-switch-cli。这里集成的是 CC-Switch 的衍生 CLI 版本,不是 CC-Switch UI 版本。请先安装:",ci=/(https?:\/\/[^\s]+)/i;function cn(){const t=ss(c=>{var f;return((f=c.session)==null?void 0:f.accessToken)??null}),[a,n]=l.useState(null),[r,o]=l.useState(!0),[h,v]=l.useState(null),[w,b]=l.useState(null),[T,m]=l.useState(null),[C,I]=l.useState(!1),[R,A]=l.useState("codex");l.useEffect(()=>{let c=!0;if(!t){n(null),b(null),m(null),o(!1);return}return(async()=>{o(!0);try{const S=await mt();if(!c)return;n(S),b(null),A($=>Nt(S,$))}catch(S){if(!c)return;b(Os(S))}finally{c&&o(!1)}})(),()=>{c=!1}},[t]);async function N(){const c=await mt();n(c),b(null),A(f=>Nt(c,f))}async function E(){if(t){v("refresh"),b(null),m(null);try{await N(),m(s("settings.modelManagementRefreshSuccess"))}catch(c){b(Os(c))}finally{v(null)}}}async function d(c,f){if(!t||f.isCurrent)return;const S=vt(c,f.id);v(S),b(null),m(null);try{const $=await aa({app:c,presetId:f.id});sn(),n(j=>di(j,$)),m(s("settings.modelManagementSwitchSuccess",{app:$.displayName,preset:$.currentPresetName??f.name}))}catch($){b(Os($))}finally{v(null)}}const x=(a==null?void 0:a.items)??[],u=x.find(c=>c.app===R)??x[0]??null,k=gi(x);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,k?e.jsxs("section",{className:"settings-model-missing-state",children:[e.jsx("p",{className:"settings-model-missing-copy",children:k.message}),e.jsx("a",{className:"settings-tailscale-link settings-model-missing-link",href:k.url,rel:"noreferrer",target:"_blank",children:k.url})]}):x.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"settings-model-grid",children:x.map(c=>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:c.displayName}),e.jsx("span",{className:"settings-model-card-status","data-status":c.status,children:ui(c.status)})]}),e.jsxs("div",{className:"settings-model-value-line",children:[e.jsx("strong",{className:"settings-model-preset-value",children:c.currentPresetName??s("settings.modelManagementPresetMissing")}),e.jsx("strong",{className:"settings-model-current-value",children:c.currentModel??s("settings.modelManagementModelUnknown")})]})]}),c.statusText?e.jsx("p",{className:"settings-model-card-note",children:c.statusText}):null]},c.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:()=>{I(!0)},children:s("settings.modelManagementOpenSwitcher")})})]}):e.jsx("div",{className:"settings-model-empty",children:s("settings.modelManagementOptionsEmpty")})]})}),e.jsxs(ms,{open:C&&!k,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:()=>{E()},children:h==="refresh"?s("common.loading"):s("settings.modelManagementRefresh")}),onClose:()=>I(!1),children:[e.jsx("div",{className:"settings-model-tabs",role:"tablist","aria-label":s("settings.modelManagementTabsLabel"),children:x.map(c=>{const f=(u==null?void 0:u.app)===c.app;return e.jsx("button",{type:"button",role:"tab",className:"settings-model-tab","aria-selected":f,"data-active":f?"true":"false",onClick:()=>A(c.app),children:c.displayName},c.app)})}),u?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:u.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:u.currentModel??s("settings.modelManagementModelUnknown")})]})]}),u.statusText?e.jsx("p",{className:"settings-model-modal-note",children:u.statusText}):null,u.options.length>0?e.jsx("div",{className:"settings-model-switcher-list",children:u.options.map(c=>{const f=vt(u.app,c.id);return e.jsxs("div",{className:"settings-model-switcher-item","data-current":c.isCurrent?"true":"false",children:[e.jsxs("div",{className:"settings-model-switcher-item-main",children:[e.jsx("strong",{children:c.name}),e.jsx("span",{children:c.model??s("settings.modelManagementModelUnknown")})]}),e.jsx("div",{className:"settings-model-switcher-item-actions",children:c.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||u.status!=="ready",onClick:()=>{d(u.app,c)},children:h===f?s("common.loading"):s("settings.modelManagementSwitchAction")})})]},`${u.app}:${c.id}`)})}):e.jsx("div",{className:"settings-model-empty",children:u.statusText??s("settings.modelManagementOptionsEmpty")})]}):e.jsx("div",{className:"settings-model-empty",children:s("settings.modelManagementOptionsEmpty")})]})]})}function vt(t,a){return`switch:${t}:${a}`}function di(t,a){return t&&{...t,scannedAt:new Date().toISOString(),items:t.items.map(n=>n.app===a.app?a:n)}}function Nt(t,a){var r;return t.items.some(o=>o.app===a)?a:((r=t.items[0])==null?void 0:r.app)??"codex"}function ui(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 Os(t){return t instanceof Fe?t.message||s("settings.modelManagementLoadFailed"):t instanceof Error?t.message:s("settings.modelManagementLoadFailed")}function gi(t){var r,o,h;if(t.length===0||!t.every(v=>v.status==="unavailable"&&!v.cliAvailable&&!!v.statusText))return null;const n=((h=(((o=(r=t[0])==null?void 0:r.statusText)==null?void 0:o.trim())??"").match(ci))==null?void 0:h[1])??ri;return{message:oi,url:n}}function dn({triggerClassName:t="settings-button",triggerLabel:a,mobile:n=!1}){const r=ss(j=>{var D;return((D=j.session)==null?void 0:D.accessToken)??null}),o=ss(j=>{var D;return((D=j.session)==null?void 0:D.user)??null}),[h,v]=l.useState(!1),[w,b]=l.useState(!1),[T,m]=l.useState(null),[C,I]=l.useState(null),[R,A]=l.useState(null),[N,E]=l.useState(null),[d,x]=l.useState(null),[u,k]=l.useState(bs(null));l.useEffect(()=>{C&&k(bs(C))},[C]),l.useEffect(()=>{let j=!0;if(!h)return;if(!r){I(null),A(null),x(null),E(null),b(!1);return}return(async()=>{b(!0),x(null);try{const[U,G]=await Promise.all([ia(),As()]);if(!j)return;I(U),A(G)}catch(U){if(!j)return;x(Us(U))}finally{j&&b(!1)}})(),()=>{j=!1}},[r,h]);function c(){v(!1),E(null),x(null),k(bs(C))}async function f(){if(r){m("check"),x(null),E(null);try{const j=await As();A(j),E(s("settings.skillOnlyOfficeCheckSuccess"))}catch(j){x(Us(j))}finally{m(null)}}}async function S(){if(r){m("save"),x(null),E(null);try{const j=await la({enabled:u.enabled,serverUrl:u.serverUrl,publicBaseUrl:u.publicBaseUrl,callbackBaseUrl:u.callbackBaseUrl,userDisplayName:u.userDisplayName,userAvatarUrl:u.userAvatarUrl,jwtSecret:u.jwtSecret,clearJwtSecret:u.clearJwtSecret}),D=await As();I(j),A(D),k(bs(j)),E(s("settings.skillOnlyOfficeSaveSuccess"))}catch(j){x(Us(j))}finally{m(null)}}}const $=e.jsxs("div",{className:"settings-onlyoffice-modal-layout",children:[e.jsx(Z,{heading:s("settings.skillOnlyOfficeStatusLabel"),children:e.jsx("div",{className:"settings-onlyoffice-metrics",role:"list","aria-label":s("settings.skillOnlyOfficeStatusLabel"),children:fi(R).map(j=>e.jsxs("div",{className:"settings-onlyoffice-metric-card","data-tone":j.tone,role:"listitem",tabIndex:0,children:[e.jsx("span",{className:"settings-onlyoffice-metric-label",children:j.label}),e.jsx("strong",{className:"settings-onlyoffice-metric-value",children:j.value}),e.jsx("div",{className:"settings-onlyoffice-metric-tooltip",role:"note",children:j.detail})]},j.key))})}),e.jsxs(Z,{heading:s("settings.skillOnlyOfficeSectionTitle"),children:[e.jsx(ee,{label:s("settings.skillOnlyOfficeEnabledLabel"),children:e.jsxs("div",{className:"settings-onlyoffice-switch-field",children:[e.jsx(he,{checked:u.enabled,label:s("settings.skillOnlyOfficeEnabledLabel"),semanticRole:"switch",onChange:j=>{k(D=>({...D,enabled:j}))}}),e.jsx("span",{className:"settings-onlyoffice-switch-caption",children:u.enabled?s("common.enabled"):s("settings.skillOnlyOfficeStatusDisabled")})]})}),e.jsx(ee,{label:s("settings.skillOnlyOfficeServerUrlLabel"),htmlFor:"onlyoffice-server-url",children:e.jsx("input",{id:"onlyoffice-server-url",className:"settings-text-input",value:u.serverUrl,onChange:j=>{k(D=>({...D,serverUrl:j.target.value}))},placeholder:s("settings.skillOnlyOfficeServerUrlPlaceholder")})}),e.jsx(ee,{label:s("settings.skillOnlyOfficePublicBaseUrlLabel"),htmlFor:"onlyoffice-public-base-url",children:e.jsx("input",{id:"onlyoffice-public-base-url",className:"settings-text-input",value:u.publicBaseUrl,onChange:j=>{k(D=>({...D,publicBaseUrl:j.target.value}))},placeholder:s("settings.skillOnlyOfficePublicBaseUrlPlaceholder")})}),e.jsx(ee,{label:s("settings.skillOnlyOfficeCallbackBaseUrlLabel"),htmlFor:"onlyoffice-callback-base-url",children:e.jsx("input",{id:"onlyoffice-callback-base-url",className:"settings-text-input",value:u.callbackBaseUrl,onChange:j=>{k(D=>({...D,callbackBaseUrl:j.target.value}))},placeholder:s("settings.skillOnlyOfficeCallbackBaseUrlPlaceholder")})}),e.jsx(ee,{label:s("settings.skillOnlyOfficeUserDisplayNameLabel"),description:s("settings.skillOnlyOfficeUserDisplayNameDescription",{username:(o==null?void 0:o.username)??"-"}),htmlFor:"onlyoffice-user-display-name",children:e.jsx("input",{id:"onlyoffice-user-display-name",className:"settings-text-input",value:u.userDisplayName,onChange:j=>{k(D=>({...D,userDisplayName:j.target.value}))},placeholder:s("settings.skillOnlyOfficeUserDisplayNamePlaceholder")})}),e.jsx(ee,{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:u.userAvatarUrl,onChange:j=>{k(D=>({...D,userAvatarUrl:j.target.value}))},placeholder:s("settings.skillOnlyOfficeUserAvatarUrlPlaceholder")})}),e.jsx(ee,{label:s("settings.skillOnlyOfficeJwtSecretLabel"),htmlFor:"onlyoffice-jwt-secret",children:e.jsx("input",{id:"onlyoffice-jwt-secret",className:"settings-text-input",value:u.jwtSecret,onChange:j=>{k(D=>({...D,jwtSecret:j.target.value,clearJwtSecret:!1}))},placeholder:C!=null&&C.jwtSecretConfigured?s("settings.skillOnlyOfficeJwtSecretKeepPlaceholder"):s("settings.skillOnlyOfficeJwtSecretPlaceholder")})}),C!=null&&C.jwtSecretConfigured?e.jsx(ee,{label:s("settings.skillOnlyOfficeClearJwtSecretLabel"),children:e.jsxs("div",{className:"settings-onlyoffice-switch-field",children:[e.jsx(he,{checked:u.clearJwtSecret,label:s("settings.skillOnlyOfficeClearJwtSecretLabel"),semanticRole:"switch",onChange:j=>{k(D=>({...D,clearJwtSecret:j}))}}),e.jsx("span",{className:"settings-onlyoffice-switch-caption",children:u.clearJwtSecret?s("common.enabled"):s("common.disabled")})]})}):null]}),N?e.jsx("p",{className:"settings-release-status",children:N}):null,d?e.jsx("p",{className:"settings-release-status",children:d}):null,e.jsxs(de,{className:"settings-onlyoffice-modal-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:c,children:s("common.cancel")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:w||T!==null,onClick:()=>{f()},children:T==="check"?s("settings.opencliLoading"):s("settings.skillOnlyOfficeCheckAction")}),e.jsx("button",{className:"primary-button",type:"button",disabled:w||T!==null,onClick:()=>{S()},children:T==="save"?s("butlerSettingsSaving"):s("settings.skillOnlyOfficeSaveAction")})]})]});return e.jsxs(e.Fragment,{children:[e.jsx("button",{className:t,type:"button",onClick:()=>{v(!0)},children:a??s("settings.skillOnlyOfficeOpenSettingsAction")}),n?e.jsx(Me,{open:h,title:s("settings.skillOnlyOfficeModalTitle"),description:s("settings.skillOnlyOfficeModalDescription"),height:"full",kind:"form",showHandle:!0,onClose:c,children:$}):e.jsx(Ce,{open:h,title:s("settings.skillOnlyOfficeModalTitle"),description:s("settings.skillOnlyOfficeModalDescription"),size:"regular",layout:"form",className:"settings-onlyoffice-modal",bodyClassName:"settings-onlyoffice-modal-body",onClose:c,children:$})]})}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 mi(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 hi(t){switch(t){case"ready":return"success";case"warning":case"misconfigured":return"warning";case"error":return"danger";case"disabled":default:return"default"}}function pi(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 bi(t){switch(t){case"pass":return"success";case"warn":return"warning";case"fail":return"danger";case"skip":default:return"default"}}function fi(t){const a=[{key:"summary",label:s("settings.skillOnlyOfficeStatusLabel"),value:mi(t),detail:(t==null?void 0:t.summary)??s("settings.skillOnlyOfficeStatusUnknown"),tone:hi(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:pi(n.status),detail:n.detail,tone:bi(n.status)});return a}function Us(t){return t instanceof Fe||t instanceof Error&&t.message.trim().length>0?t.message:s("settings.skillLoadError")}const xi=[{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 un(){const t=hs(),a=ss(c=>{var f;return((f=c.session)==null?void 0:f.accessToken)??null}),[n,r]=l.useState(!1),[o,h]=l.useState(null),[v,w]=l.useState(null),[b,T]=l.useState(null),{items:m,loading:C}=ra(n&&!!a),I=xi.map(c=>({...c,label:s(c.labelKey)}));l.useEffect(()=>{a||(r(!1),h(null),w(null),T(null))},[a]);async function R(){if(a){T(null);try{await da(!0)}catch(c){T(Fs(c,"load"))}}}function A(){r(!0),w(null),T(null),a&&R()}async function N(c){if(!a)return;const f=!c.enabled;h(c.provider),T(null),w(null);try{await ca(c.provider,f),sn(),w(f?s("settings.providerManagementEnableSuccess",{provider:c.displayName}):s("settings.providerManagementDisableSuccess",{provider:c.displayName}))}catch(S){T(Fs(S,"save"))}h(null)}async function E(){if(a){T(null),w(null);try{await oa(),w(s("settings.providerManagementRefreshSuccess"))}catch(c){T(Fs(c,"load"))}}}const d=m??[],x=d.filter(c=>c.enabled).length,u=d.filter(c=>!c.enabled).length,k=e.jsxs("div",{className:"settings-provider-modal-layout",children:[v?e.jsx("p",{className:"settings-provider-status",children:v}):null,b?e.jsx("p",{className:"settings-provider-error",children:b}):null,e.jsxs("div",{className:"settings-provider-summary-grid","aria-label":s("settings.providerManagementSummaryTitle"),children:[e.jsx(Rs,{label:s("settings.providerManagementSummaryEnabled"),value:String(x)}),e.jsx(Rs,{label:s("settings.providerManagementSummaryDisabled"),value:String(u)}),e.jsx(Rs,{label:s("settings.providerManagementSummaryTotal"),value:String(d.length)})]}),e.jsxs(Z,{heading:s("settings.providerManagementMatrixTitle"),description:s("settings.providerManagementMatrixDescription"),className:"settings-provider-modal-section",children:[C&&d.length===0?e.jsx(re,{compact:!0,title:s("settings.providerManagementLoading")}):null,!C&&d.length===0?e.jsx(re,{title:s("settings.providerManagementEmpty"),description:s("settings.providerManagementEmptyDescription"),action:e.jsx("button",{type:"button",className:"secondary-button",disabled:!a,onClick:()=>{E()},children:s("settings.providerManagementRefresh")})}):null,d.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"}),I.map(c=>e.jsx("col",{className:"settings-provider-matrix-capability-col"},c.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")}),I.map(c=>e.jsx("th",{scope:"col",children:c.label},c.key)),e.jsx("th",{scope:"col",children:s("settings.providerManagementTableStatus")}),e.jsx("th",{scope:"col",children:s("settings.providerManagementTableEnabled")})]})}),e.jsx("tbody",{children:d.map(c=>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:c.displayName}),e.jsx(ce,{tone:Ni(c.installState),children:vi(c)})]})})}),I.map(f=>e.jsx("td",{className:"settings-provider-matrix-capability-cell",children:e.jsx(yi,{enabled:c.productCapabilities[f.key],label:f.label})},f.key)),e.jsx("td",{className:"settings-provider-matrix-status-cell",children:e.jsx(ce,{tone:c.enabled?"success":"default",children:c.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:c.displayName})}),e.jsx("input",{type:"checkbox",checked:c.enabled,disabled:o===c.provider,"aria-label":s("settings.providerManagementToggleLabel",{provider:c.displayName}),onChange:()=>{N(c)}}),e.jsx("span",{className:"settings-provider-matrix-switch-track","aria-hidden":"true",children:e.jsx("span",{className:"settings-provider-matrix-switch-thumb"})})]})})]},c.provider))})]})}):null]}),e.jsx(de,{className:"settings-provider-modal-actions",children:e.jsx("button",{type:"button",className:"secondary-button",disabled:!a||C||o!==null,onClick:()=>{E()},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:A,children:s("settings.providerManagementManageAction")})]}),t.isMobile?e.jsx(Me,{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:k}):e.jsx(Ce,{open:n,title:s("settings.providerManagementModalTitle"),className:"settings-provider-modal",size:"xwide",layout:"list",bodyClassName:"settings-provider-modal-body",onClose:()=>r(!1),children:k})]})}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 yi({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 ji(t){switch(t){case"ready":return s("settings.providerManagementInstallReady");case"missing":return s("settings.providerManagementInstallMissing");default:return s("settings.providerManagementInstallUnknown")}}function vi(t){return t.installState==="ready"&&t.version?t.version:ji(t.installState)}function Ni(t){switch(t){case"ready":return"success";case"missing":return"warning";default:return"default"}}function Fs(t,a){return t instanceof Fe?t.message:a==="save"?s("settings.providerManagementSaveFailed"):s("settings.providerManagementLoadFailed")}async function Si(){return await Q.request("/api/channels/platforms")}async function wi(){return await Q.request("/api/channels/accounts")}async function Ti(t){return await Q.request("/api/channels/accounts",{method:"POST",body:JSON.stringify(t)})}async function ki(t){return await Q.request(`/api/channels/accounts/${t}`,{method:"DELETE"})}async function Ci(t){return await Q.request(`/api/channels/accounts/${t}/probe`,{method:"POST"})}async function Di(t){return await Q.request(`/api/channels/accounts/${t}/poll`,{method:"POST"})}async function Mi(t){return await Q.request(`/api/channels/accounts/${t}/wechat-claw/start-login`,{method:"POST"})}async function Ai(t){return await Q.request(`/api/channels/accounts/${t}/wechat-claw/refresh-login`,{method:"POST"})}async function Pi(t){return await Q.request(`/api/channels/accounts/${t}/wechat-claw/logout`,{method:"POST"})}async function Ei(t,a=20){return await Q.request(`/api/channels/accounts/${t}/threads?limit=${a}`)}async function Li(t,a=20){return await Q.request(`/api/channels/accounts/${t}/events?limit=${a}`)}async function Ii(t,a=20){return await Q.request(`/api/channels/accounts/${t}/deliveries?limit=${a}`)}function gn({code:t,...a}){switch(t){case"wechat-claw":return e.jsx(Ui,{...a});case"telegram":return e.jsx(Oi,{...a});default:return e.jsx(Ri,{...a})}}function Oi(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 Ui(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 Ri(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 Fi=["codex","claude-code"],Bi=["active","disabled","degraded"],us="polling",Vi=`{
|
|
2
|
+
}`,rt={"wechat-claw":[],telegram:[{key:"botToken",labelKey:"settings.channelsConfigFieldTelegramBotToken",descriptionKey:"settings.channelsConfigFieldTelegramBotTokenDescription",placeholderKey:"settings.channelsConfigFieldTelegramBotTokenPlaceholder",type:"password",required:!0}]},_i={};function mn(){const t=hs(),a=ss(i=>{var _;return((_=i.session)==null?void 0:_.accessToken)??null}),[n,r]=l.useState(!1),[o,h]=l.useState(!1),[v,w]=l.useState([]),[b,T]=l.useState([]),[m,C]=l.useState(!1),[I,R]=l.useState(!1),[A,N]=l.useState(null),[E,d]=l.useState(null),[x,u]=l.useState(null),[k,c]=l.useState(null),[f,S]=l.useState(null),[$,j]=l.useState("platform"),[D,U]=l.useState(null),[G,W]=l.useState(null),[F,se]=l.useState(()=>fs()),[ae,ie]=l.useState([]),[B,O]=l.useState([]),[H,M]=l.useState([]),p=l.useMemo(()=>b.find(i=>i.id===D)??null,[b,D]),q=l.useMemo(()=>v.find(i=>i.code===F.platformCode)??null,[F.platformCode,v]),me=l.useMemo(()=>F.platformCode?rt[F.platformCode]??[]:[],[F.platformCode]),V=l.useMemo(()=>new Set(b.map(i=>i.platformCode)).size,[b]),oe=l.useMemo(()=>b.filter(i=>i.status==="active").length,[b]),Y=(q==null?void 0:q.code)==="wechat-claw",xe=(p==null?void 0:p.platformCode)==="wechat-claw",L=l.useMemo(()=>p?zi(p):null,[p]),J=(L==null?void 0:L.loginStatus)==="active";l.useEffect(()=>{a||(r(!1),h(!1),w([]),T([]),C(!1),R(!1),N(null),d(null),u(null),c(null),S(null),j("platform"),U(null),W(null),se(fs()),ie([]),O([]),M([]))},[a]),l.useEffect(()=>{(!D||G!==D)&&W(null)},[D,G]),l.useEffect(()=>{!n||!a||te()},[a,n]),l.useEffect(()=>{if(!n||!a||!D){ie([]),O([]),M([]);return}ue(D)},[a,D,n]);async function te(i={}){if(a){C(!0),c(null);try{const[_,le]=await Promise.all([Si(),wi()]);w(_),T(le),D&&!le.some(_e=>_e.id===D)&&(U(null),ie([]),O([]),M([])),i.showSuccess&&u(s("settings.channelsRefreshSuccess"))}catch(_){c(Ke(_,"loadOverview"))}finally{C(!1)}}}async function ue(i){if(a){R(!0),c(null);try{const[_,le,_e]=await Promise.all([Ei(i),Li(i),Ii(i)]);if(D!==i)return;ie(_),O(le),M(_e)}catch(_){c(Ke(_,"loadDetails"))}finally{R(!1)}}}function K(){r(!0),u(null),c(null)}function pe(){r(!1),h(!1),W(null)}function ye(){d(null),S(null),j("platform"),se(fs())}function Ae(){ye(),h(!0)}function je(){h(!1),ye()}function Ee(i){U(i.id),W(null),u(null),c(null)}function ve(i){j(i==="wechat-claw"?"binding":"config"),se(_=>fs({platformCode:i,displayName:_.platformCode===i?_.displayName:"",providerId:_.providerId,status:_.status})),S(null)}function Pe(i,_){se(le=>({...le,configValues:{...le.configValues,[i]:_}}))}function Ze(){const i=hn(F,q);if(!i.ok){S(i.errorText);return}j("binding"),S(null)}async function Be(){if(!a)return;const i=Gi(F,q);if(!i.ok){S(i.errorText);return}d("save"),S(null),u(null);try{const _=await Ti(i.input);T(le=>[_,...le]),U(_.id),je(),u(s("settings.channelsCreateSuccess",{account:_.displayName}))}catch(_){S(Ke(_,"save"))}finally{d(null)}}async function Ye(){if(!(!a||!D)){N("probe"),c(null),u(null);try{const i=await Ci(D);T(_=>Vs(_,i.account)),u(i.detail),await ue(D)}catch(i){c(Ke(i,"probe"))}finally{N(null)}}}async function Ie(){if(!(!a||!D)){N("poll"),c(null),u(null);try{const i=await Di(D);T(_=>Vs(_,i.account)),u(i.detail),await ue(D)}catch(i){c(Ke(i,"poll"))}finally{N(null)}}}async function Se(i){if(!a||!D||!xe)return;N(i==="start"?"wechat-start-login":i==="refresh"?"wechat-refresh-login":"wechat-logout"),c(null),u(null);try{let le;i==="start"?le=await Mi(D):i==="refresh"?le=await Ai(D):le=await Pi(D),Oe(le.account),u(le.detail)}catch(le){c(Ke(le,i))}finally{N(null)}}async function X(){if(!(!a||!p)){N("remove-account"),c(null),u(null);try{const i=await ki(p.id);T(_=>_.filter(le=>le.id!==i.accountId)),D===i.accountId&&(U(null),ie([]),O([]),M([])),W(null),u(s("settings.channelsRemoveSuccess",{account:i.displayName}))}catch(i){c(Ke(i,"remove"))}finally{N(null)}}}function Oe(i){T(_=>Vs(_,i))}async function Ve(){N("refresh"),u(null),c(null);try{await te({showSuccess:!0})}finally{N(null)}}const Te=e.jsxs("div",{className:"settings-channels-summary-grid","aria-label":s("settings.channelsSummaryTitle"),children:[e.jsx(Bs,{label:s("settings.channelsSummaryAccounts"),value:String(b.length)}),e.jsx(Bs,{label:s("settings.channelsSummaryActive"),value:String(oe)}),e.jsx(Bs,{label:s("settings.channelsSummaryPlatforms"),value:String(V)})]}),We=e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:Ae,children:s("settings.channelsAddAccountAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:m||A!==null,onClick:()=>{Ve()},children:A==="refresh"?s("settings.channelsActionPending"):s("settings.channelsRefresh")})]}),$e=!xe||J,we=p!==null&&G===p.id,ze=e.jsxs("div",{className:"settings-channels-modal-layout",children:[f?e.jsx("p",{className:"settings-channels-error",children:f}):null,e.jsxs(Z,{heading:s("settings.channelsWizardTitle"),description:s("settings.channelsWizardCreateDescription"),children:[e.jsx(qi,{currentStep:$}),$==="platform"?e.jsxs(e.Fragment,{children:[m&&v.length===0?e.jsx(re,{compact:!0,title:s("settings.channelsLoading")}):null,!m&&v.length===0?e.jsx(re,{title:s("settings.channelsPlatformsEmpty"),description:s("settings.channelsPlatformsEmptyDescription")}):null,v.length>0?e.jsx("div",{className:"settings-channels-platform-grid",children:v.map(i=>e.jsx("button",{className:"settings-channels-platform-card",type:"button","aria-pressed":F.platformCode===i.code,"data-selected":F.platformCode===i.code?"true":void 0,onClick:()=>ve(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(gn,{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(ce,{tone:i.multiSessionSupportLevel==="supported"?"success":"warning",children:gs(i.multiSessionSupportLevel)})]})},i.code))}):null,e.jsx(de,{children:e.jsx("button",{className:"primary-button",type:"button",disabled:!q,onClick:()=>{q&&j("config")},children:s("settings.channelsWizardNextToConfig")})})]}):null,$==="config"?e.jsxs(e.Fragment,{children:[q?e.jsx(Hi,{platformCapability:q}):e.jsx(re,{compact:!0,title:s("settings.channelsValidationPlatform"),description:s("settings.channelsWizardSelectPlatformHint")}),q?e.jsxs(e.Fragment,{children:[e.jsx($i,{platformCode:q.code}),e.jsx(Wi,{platformCode:q.code}),me.length>0?e.jsx("div",{className:"settings-channels-form-grid",children:me.map(i=>e.jsx(ee,{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:F.configValues[i.key]??"",onChange:_=>Pe(i.key,_.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(ee,{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:F.advancedConfigText,onChange:i=>{se(_=>({..._,advancedConfigText:i.target.value}))}})})]})]}):null,e.jsxs(de,{align:"between",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>j("platform"),children:s("settings.channelsWizardBackToPlatform")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!q,onClick:Ze,children:s("settings.channelsWizardNextToBinding")})]})]}):null,$==="binding"?e.jsxs(e.Fragment,{children:[q?e.jsxs("div",{className:"settings-channels-detail-grid",children:[e.jsx(De,{label:s("settings.channelsDetailPlatform"),value:q.displayName}),e.jsx(De,{label:s("settings.channelsDetailConnectionMode"),value:Xe(us)}),e.jsx(De,{label:s("settings.channelsWizardBindingSummary"),value:gs(q.multiSessionSupportLevel)})]}):null,e.jsxs("div",{className:"settings-channels-form-grid",children:[e.jsx(ee,{label:s("settings.channelsFieldDisplayName"),description:Y?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:F.displayName,onChange:i=>{se(_=>({..._,displayName:i.target.value}))}})}),e.jsx(ee,{label:s("settings.channelsFieldProvider"),description:s("settings.channelsFieldProviderDescription"),htmlFor:"channels-create-provider",children:e.jsx("select",{id:"channels-create-provider",className:"settings-select",value:F.providerId,onChange:i=>{se(_=>({..._,providerId:i.target.value}))},children:Fi.map(i=>e.jsx("option",{value:i,children:xs(i)},i))})}),e.jsx(ee,{label:s("settings.channelsFieldStatus"),description:s("settings.channelsFieldStatusDescription"),htmlFor:"channels-create-status",children:e.jsx("select",{id:"channels-create-status",className:"settings-select",value:F.status,onChange:i=>{se(_=>({..._,status:i.target.value}))},children:Bi.map(i=>e.jsx("option",{value:i,children:_s(i)},i))})}),e.jsx(ee,{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(de,{align:"between",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>j(Y?"platform":"config"),children:Y?s("settings.channelsWizardBackToPlatform"):s("settings.channelsWizardBackToConfig")}),e.jsx("button",{className:"primary-button",type:"button",disabled:E==="save",onClick:()=>{Be()},children:E==="save"?s("settings.channelsActionPending"):s("settings.channelsCreateAction")})]})]}):null]})]}),Le=e.jsxs("div",{className:"settings-channels-modal-layout",children:[x?e.jsx("p",{className:"settings-channels-status",children:x}):null,k?e.jsx("p",{className:"settings-channels-error",children:k}):null,Te,t.isMobile?e.jsx(de,{className:"settings-channels-inline-actions",children:We}):null,e.jsxs(Z,{heading:s("settings.channelsAccountsTitle"),description:s("settings.channelsAccountsDescription"),children:[m&&b.length===0?e.jsx(re,{compact:!0,title:s("settings.channelsLoading")}):null,!m&&b.length===0?e.jsx(re,{title:s("settings.channelsAccountsEmpty"),description:s("settings.channelsAccountsEmptyDescription"),action:e.jsx("button",{className:"secondary-button",type:"button",onClick:Ae,children:s("settings.channelsAddAccountAction")})}):null,b.length>0?e.jsx(fe,{className:"settings-channels-account-list",children:b.map(i=>e.jsx(be,{as:"button",selected:D===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(ce,{tone:Zi(i.status),children:_s(i.status)}),e.jsx(ce,{children:xs(i.providerId)})]}),onClick:()=>Ee(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]}),p?e.jsxs(e.Fragment,{children:[e.jsxs(Z,{heading:s("settings.channelsDetailTitle"),description:s("settings.channelsDetailDescription"),actions:e.jsxs(de,{className:"settings-channels-inline-actions",children:[$e?e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:A!==null,onClick:()=>{Ye()},children:A==="probe"?s("settings.channelsActionPending"):s("settings.channelsProbeAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:A!==null,onClick:()=>{Ie()},children:A==="poll"?s("settings.channelsActionPending"):s("settings.channelsPollAction")})]}):null,we?e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:A!==null,onClick:()=>{W(null)},children:s("common.cancel")}),e.jsx("button",{className:"settings-button settings-button-danger",type:"button",disabled:A!==null,onClick:()=>{X()},children:A==="remove-account"?s("settings.channelsActionPending"):s("settings.channelsRemoveConfirmAction")})]}):e.jsx("button",{className:"settings-button settings-button-danger",type:"button",disabled:A!==null,onClick:()=>{p&&W(p.id)},children:s("settings.channelsRemoveAction")})]}),children:[e.jsxs("div",{className:"settings-channels-detail-grid",children:[e.jsx(De,{label:s("settings.channelsDetailPlatform"),value:p.capability.displayName}),e.jsx(De,{label:s("settings.channelsDetailProvider"),value:xs(p.providerId)}),e.jsx(De,{label:s("settings.channelsDetailConnectionMode"),value:Xe(p.connectionMode)}),e.jsx(De,{label:s("settings.channelsDetailStatus"),value:_s(p.status)}),e.jsx(De,{label:s("settings.channelsDetailLastInbound"),value:Ge(p.lastInboundAt)}),e.jsx(De,{label:s("settings.channelsDetailLastOutbound"),value:Ge(p.lastOutboundAt)})]}),p.lastError?e.jsxs("p",{className:"settings-channels-inline-note",children:[s("settings.channelsDetailLastError"),": ",p.lastError]}):null,we?e.jsx("p",{className:"settings-channels-inline-note",children:s("settings.channelsRemoveConfirmDescription")}):null]}),p.platformCode==="wechat-claw"?e.jsxs(Z,{heading:s("settings.channelsWechatBindingTitle"),description:s("settings.channelsWechatBindingDescription"),actions:e.jsxs(de,{className:"settings-channels-inline-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:A!==null,onClick:()=>{Se("start")},children:A==="wechat-start-login"?s("settings.channelsActionPending"):L!=null&&L.qrcodeUrl?s("settings.channelsWechatRestartBindingAction"):s("settings.channelsWechatStartLoginAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:A!==null,onClick:()=>{Se("refresh")},children:A==="wechat-refresh-login"?s("settings.channelsActionPending"):s("settings.channelsWechatRefreshLoginAction")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:A!==null,onClick:()=>{Se("logout")},children:A==="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(De,{label:s("settings.channelsWechatLoginStatus"),value:sl((L==null?void 0:L.loginStatus)??"not_logged_in")}),e.jsx(De,{label:s("settings.channelsDetailConnectionMode"),value:s("settings.channelsWechatBindingModeValue")}),e.jsx(De,{label:s("settings.channelsMetaUpdatedAt"),value:Ge((L==null?void 0:L.updatedAt)??null)})]}),e.jsx("p",{className:"settings-channels-inline-note",children:J?s("settings.channelsWechatBoundDescription"):s("settings.channelsWechatPendingDescription")}),L!=null&&L.lastDetail?e.jsx("p",{className:"settings-channels-inline-note",children:L.lastDetail}):null,J?null:e.jsxs("div",{className:"settings-channels-wechat-qr-panel",children:[L!=null&&L.qrcodeUrl?e.jsxs(e.Fragment,{children:[e.jsx("img",{className:"settings-channels-wechat-qr-image",src:L.qrcodeUrl,alt:s("settings.channelsWechatQrAlt")}),e.jsx("p",{className:"settings-channels-inline-note",children:s("settings.channelsWechatQrHint")}),e.jsx(de,{className:"settings-channels-inline-actions",children:e.jsx("a",{className:"secondary-button",href:L.qrcodeSourceUrl??L.qrcodeUrl,target:"_blank",rel:"noreferrer",children:s("settings.channelsWechatOpenQrLinkAction")})})]}):e.jsx(re,{compact:!0,title:s("settings.channelsWechatQrEmpty"),description:s("settings.channelsWechatQrEmptyDescription")}),L!=null&&L.qrcodeText?e.jsx(ee,{label:s("settings.channelsWechatQrRawTitle"),description:s("settings.channelsWechatQrRawDescription"),children:e.jsx("textarea",{className:"settings-textarea settings-channels-textarea",value:L.qrcodeText,readOnly:!0})}):null]})]}),e.jsx("div",{className:"settings-channels-platform-selected-notes",children:p.capability.stageOneLimitations.map(i=>e.jsx("p",{className:"settings-channels-platform-limitations",children:i},i))})]}):null,e.jsxs(Z,{heading:s("settings.channelsThreadsTitle"),description:s("settings.channelsThreadsDescription",{count:p.threadCount}),children:[I?e.jsx(re,{compact:!0,title:s("settings.channelsLoadingDetails")}):null,!I&&ae.length===0?e.jsx(re,{compact:!0,title:s("settings.channelsThreadsEmpty"),description:s("settings.channelsThreadsEmptyDescription")}):null,!I&&ae.length>0?e.jsx(fe,{compact:!0,children:ae.map(i=>e.jsx(be,{label:i.title||i.externalConversationKey,description:s("settings.channelsThreadSummary",{status:wt(i.status),conversationKey:i.externalConversationKey}),trailing:e.jsx(ce,{tone:Yi(i.status),children:wt(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(Z,{heading:s("settings.channelsEventsTitle"),description:s("settings.channelsEventsDescription",{count:p.inboundEventCount}),children:[I?e.jsx(re,{compact:!0,title:s("settings.channelsLoadingDetails")}):null,!I&&B.length===0?e.jsx(re,{compact:!0,title:s("settings.channelsEventsEmpty"),description:s("settings.channelsEventsEmptyDescription")}):null,!I&&B.length>0?e.jsx(fe,{compact:!0,children:B.map(i=>e.jsx(be,{label:St(i.textContent),description:s("settings.channelsEventSummary",{status:Tt(i.status),conversationKey:i.externalConversationKey}),trailing:e.jsx(ce,{tone:Xi(i.status),children:Tt(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(Z,{heading:s("settings.channelsDeliveriesTitle"),description:s("settings.channelsDeliveriesDescription",{count:p.deliveryCount}),children:[I?e.jsx(re,{compact:!0,title:s("settings.channelsLoadingDetails")}):null,!I&&H.length===0?e.jsx(re,{compact:!0,title:s("settings.channelsDeliveriesEmpty"),description:s("settings.channelsDeliveriesEmptyDescription")}):null,!I&&H.length>0?e.jsx(fe,{compact:!0,children:H.map(i=>e.jsx(be,{label:St(i.textContent),description:s("settings.channelsDeliverySummary",{status:kt(i.status)}),trailing:e.jsx(ce,{tone:el(i.status),children:kt(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:K,children:s("settings.channelsManageAction")})}),t.isMobile?e.jsx(Me,{open:n,title:s("settings.channelsModalTitle"),height:"full",kind:"form",bodyClassName:"settings-channels-sheet-body",footer:void 0,onClose:pe,children:e.jsx("div",{className:"settings-channels-modal-body",children:Le})}):e.jsx(Ce,{open:n,title:s("settings.channelsModalTitle"),size:"xwide",layout:"form",className:"settings-channels-modal",bodyClassName:"settings-channels-modal-body",headerActions:We,onClose:pe,children:Le}),t.isMobile?e.jsx(Me,{open:o,title:s("settings.channelsAddAccountAction"),height:"full",kind:"form",bodyClassName:"settings-channels-sheet-body",footer:void 0,onClose:je,children:e.jsx("div",{className:"settings-channels-modal-body",children:ze})}):e.jsx(Ce,{open:o,title:s("settings.channelsAddAccountAction"),size:"wide",layout:"form",className:"settings-channels-modal",bodyClassName:"settings-channels-modal-body",onClose:je,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 De({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 qi({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,o)=>e.jsxs("div",{className:"settings-channels-step-chip","data-state":o===n?"current":o<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 Hi({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(gn,{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(ce,{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 Wi({platformCode:t}){const a=_i[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 $i({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 zi(t){return{loginStatus:Ki(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 Ki(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:Vi,...t}}function Vs(t,a){return t.findIndex(r=>r.id===a.id)===-1?[a,...t]:t.map(r=>r.id===a.id?a:r)}function hn(t,a){if(!t.platformCode||!a)return{ok:!1,errorText:s("settings.channelsValidationPlatform")};const n=Ji(t.platformCode,t.configValues);if(n)return{ok:!1,errorText:n};try{pn(t.advancedConfigText)}catch{return{ok:!1,errorText:s("settings.channelsValidationConfigJson")}}return{ok:!0}}function Gi(t,a){const n=hn(t,a);if(!n.ok)return n;const r=t.displayName.trim();if(!r)return{ok:!1,errorText:s("settings.channelsValidationDisplayName")};const o=t.platformCode,h=pn(t.advancedConfigText),v=Qi(o,t.configValues,h);return{ok:!0,input:{displayName:r,platformCode:o,providerId:t.providerId,connectionMode:us,status:t.status,config:v}}}function Ji(t,a){const r=(rt[t]??[]).find(o=>o.required&&!(a[o.key]??"").trim());return r?s("settings.channelsValidationRequiredField",{field:s(r.labelKey)}):null}function pn(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 Qi(t,a,n){const r={...n};for(const o of rt[t]??[]){const h=(a[o.key]??"").trim();h?r[o.key]=h:delete r[o.key]}return r}function Ke(t,a){if(t instanceof Fe)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 St(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 _s(t){switch(t){case"disabled":return s("settings.channelsStatusDisabled");case"degraded":return s("settings.channelsStatusDegraded");default:return s("settings.channelsStatusActive")}}function Zi(t){switch(t){case"disabled":return"default";case"degraded":return"warning";default:return"success"}}function wt(t){switch(t){case"closed":return s("settings.channelsThreadStatusClosed");case"failed":return s("settings.channelsThreadStatusFailed");default:return s("settings.channelsThreadStatusActive")}}function Yi(t){switch(t){case"failed":return"danger";case"closed":return"default";default:return"success"}}function Tt(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 Xi(t){switch(t){case"replied":return"success";case"failed":return"danger";case"ignored":return"warning";case"dispatched":return"accent";default:return"default"}}function kt(t){switch(t){case"failed":return s("settings.channelsDeliveryStatusFailed");case"skipped":return s("settings.channelsDeliveryStatusSkipped");default:return s("settings.channelsDeliveryStatusSent")}}function el(t){switch(t){case"failed":return"danger";case"skipped":return"default";default:return"success"}}function sl(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 bn={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Ct=Qe.createContext&&Qe.createContext(bn),tl=["attr","size","title"];function nl(t,a){if(t==null)return{};var n,r,o=al(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)&&(o[n]=t[n])}return o}function al(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 Dt(t,a){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);a&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).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?Dt(Object(n),!0).forEach(function(r){il(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Dt(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function il(t,a,n){return(a=ll(a))in t?Object.defineProperty(t,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[a]=n,t}function ll(t){var a=rl(t,"string");return typeof a=="symbol"?a:a+""}function rl(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 fn(t){return t&&t.map((a,n)=>Qe.createElement(a.tag,Ts({key:n},a.attr),fn(a.child)))}function ps(t){return a=>Qe.createElement(ol,ws({attr:Ts({},t.attr)},a),fn(t.child))}function ol(t){var a=n=>{var{attr:r,size:o,title:h}=t,v=nl(t,tl),w=o||n.size||"1em",b;return n.className&&(b=n.className),t.className&&(b=(b?b+" ":"")+t.className),Qe.createElement("svg",ws({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,v,{className:b,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 Ct!==void 0?Qe.createElement(Ct.Consumer,null,n=>a(n)):a(bn)}function cl(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 dl(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 Mt(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 ul(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 gl(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 At(){return Q.request("/api/auth/devices")}function ml(t){return Q.request("/api/auth/devices/current/primary",{method:"POST",body:JSON.stringify(t)})}function hl(t){return Q.request(`/api/auth/devices/${t}/logout`,{method:"POST"})}function xn({compact:t=!1}){const a=ss(p=>{var q;return((q=p.session)==null?void 0:q.accessToken)??null}),[n,r]=l.useState(null),[o,h]=l.useState(!1),[v,w]=l.useState(!1),[b,T]=l.useState(!1),[m,C]=l.useState(null),[I,R]=l.useState(null),[A,N]=l.useState(null),[E,d]=l.useState(null),[x,u]=l.useState(null),[k,c]=l.useState(""),[f,S]=l.useState(null);l.useEffect(()=>{let p=!0;if(!v){h(!1);return}if(!a){r(null),h(!1),N(null),d(null);return}return(async()=>{h(!0);try{const me=await At();if(!p)return;r(me),d(null)}catch(me){if(!p)return;d(qs(me))}finally{p&&h(!1)}})(),()=>{p=!1}},[a,v]);async function $(){const p=await At();r(p),d(null)}function j(){w(!0),T(!1),N(null),d(null)}function D(){m!=="primary"&&(w(!1),T(!1),u(null),c(""),S(null))}function U(p){u(p),c(""),S(null)}async function G(){if(x){C("primary"),S(null),d(null),N(null);try{await ml({password:k,primary:x==="enable"}),await $(),N(x==="enable"?s("settings.authDevicePrimaryEnabled"):s("settings.authDevicePrimaryDisabled")),u(null),c("")}catch(p){const q=qs(p);S(q),d(q)}finally{C(null)}}}async function W(p){if(p.deviceId){R(p.deviceId),d(null),N(null);try{const q=await hl(p.deviceId);await $(),N(s("settings.authDeviceLogoutDeviceSuccess",{device:ys(p),count:String(q.revokedSessionCount)}))}catch(q){d(qs(q))}finally{R(null)}}}const F=(n==null?void 0:n.currentDevice)??null,se=(n==null?void 0:n.otherActiveDevices.filter(p=>!p.isLegacy))??[],ae=(n==null?void 0:n.otherActiveDevices.filter(p=>p.isLegacy))??[],ie=(n==null?void 0:n.recentLoginRecords.filter(p=>!p.isLegacy))??[],B=(n==null?void 0:n.recentLoginRecords.filter(p=>p.isLegacy))??[],O=ae.length+B.length,H=F!==null&&!F.isLegacy,M=(F==null?void 0:F.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:j,children:s("settings.authDeviceOpenManager")})})}),e.jsx(ms,{open:v,title:s("settings.authDeviceManagement"),description:s("settings.authDeviceManagementDescription"),className:"settings-device-browser-modal",onClose:D,children:e.jsxs(e.Fragment,{children:[A?e.jsx("p",{className:"settings-release-status",children:A}):null,E?e.jsx("p",{className:"settings-release-status",children:E}):null,o?e.jsx("div",{className:"settings-device-empty",children:s("common.loading")}):e.jsxs(e.Fragment,{children:[O>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(O)})}),e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>T(p=>!p),children:b?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")})}),F?e.jsx(rs,{current:!0,title:ys(F),clientType:F.clientType,browserName:F.browserName,browserVersion:F.browserVersion,osName:F.osName,osVersion:F.osVersion,timeLabelKey:"settings.authDeviceLastSeen",timestamp:F.lastSeenAt,sourceAddress:F.lastSourceAddress,badges:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"settings-device-tag","data-tone":"current",children:s("settings.authDeviceCurrentTag")}),F.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:!H||m!==null,onClick:()=>U(F.isPrimary?"disable":"enable"),children:F.isPrimary?s("settings.authDeviceDisablePrimary"):s("settings.authDeviceEnablePrimary")})}),note:H?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")})}),se.length>0?e.jsx("div",{className:"settings-device-list",children:se.map((p,q)=>e.jsx(rs,{title:ys(p),clientType:p.clientType,browserName:p.browserName,browserVersion:p.browserVersion,osName:p.osName,osVersion:p.osVersion,timeLabelKey:"settings.authDeviceLastSeen",timestamp:p.lastSeenAt,sourceAddress:p.lastSourceAddress,badges:e.jsxs(e.Fragment,{children:[p.isPrimary?e.jsx("span",{className:"settings-device-tag","data-tone":"primary",children:s("settings.authDevicePrimaryTag")}):null,p.isLegacy?e.jsx("span",{className:"settings-device-tag","data-tone":"legacy",children:s("settings.authDeviceLegacyTag")}):null]}),actions:p.deviceId?e.jsx("button",{className:"settings-button settings-button-danger","data-variant":"device-danger",type:"button",disabled:!M||m!==null||I!==null,onClick:()=>{W(p)},children:I===p.deviceId?s("common.loading"):s("settings.authDeviceLogoutDevice")}):null},`${p.deviceId??"legacy"}-${p.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")})}),ie.length>0?e.jsx("div",{className:"settings-device-list",children:ie.map(p=>e.jsx(rs,{title:Pt(p),clientType:p.clientType,browserName:p.browserName,browserVersion:p.browserVersion,osName:p.osName,osVersion:p.osVersion,timeLabelKey:"settings.authDeviceLoginAt",timestamp:p.occurredAt,sourceAddress:p.sourceAddress,badges:p.isCurrentDevice?e.jsx("span",{className:"settings-device-tag","data-tone":"current",children:s("settings.authDeviceCurrentTag")}):null},p.id))}):e.jsx("div",{className:"settings-device-empty",children:s("settings.authDeviceRecentEmpty")})]}),b&&ae.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:ae.map((p,q)=>e.jsx(rs,{title:ys(p),clientType:p.clientType,browserName:p.browserName,browserVersion:p.browserVersion,osName:p.osName,osVersion:p.osVersion,timeLabelKey:"settings.authDeviceLastSeen",timestamp:p.lastSeenAt,sourceAddress:p.lastSourceAddress,badges:e.jsx("span",{className:"settings-device-tag","data-tone":"legacy",children:s("settings.authDeviceLegacyTag")})},`legacy-device-${p.lastSeenAt}-${q}`))})]}):null,b&&B.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:B.map(p=>e.jsx(rs,{title:Pt(p),clientType:p.clientType,browserName:p.browserName,browserVersion:p.browserVersion,osName:p.osName,osVersion:p.osVersion,timeLabelKey:"settings.authDeviceLoginAt",timestamp:p.occurredAt,sourceAddress:p.sourceAddress,badges:e.jsx("span",{className:"settings-device-tag","data-tone":"legacy",children:s("settings.authDeviceLegacyTag")})},p.id))})]}):null]})]})}),e.jsx(ms,{open:x!==null,title:x==="enable"?s("settings.authDeviceEnablePrimaryModalTitle"):s("settings.authDeviceDisablePrimaryModalTitle"),description:x==="enable"?s("settings.authDeviceEnablePrimaryModalDescription"):s("settings.authDeviceDisablePrimaryModalDescription"),className:"settings-device-modal",onClose:()=>{m!=="primary"&&(u(null),c(""),S(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:k,onChange:p=>c(p.target.value)})]}),f?e.jsx("p",{className:"settings-release-status",children:f}):null,e.jsxs("div",{className:"settings-device-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:m==="primary",onClick:()=>{u(null),c(""),S(null)},children:s("common.cancel")}),e.jsx("button",{className:"settings-button",type:"button",disabled:k.trim().length===0||m==="primary",onClick:()=>{G()},children:m==="primary"?s("common.loading"):x==="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())||yn(t.clientType)}function Pt(t){var a;return t.isLegacy?s("settings.authDeviceLegacyLabel"):((a=t.displayName)==null?void 0:a.trim())||yn(t.clientType)}function pl(t){return e.jsxs("div",{className:"settings-device-identity",children:[e.jsx("span",{className:"settings-device-identity-icon","aria-hidden":"true",children:e.jsx(Nl,{kind:vl(t.clientType)})}),e.jsx("div",{className:"settings-device-identity-body",children:e.jsx("strong",{children:t.title})})]})}function rs(t){const a=jl(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(pl,{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 yn(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 bl(t,a){return s(t,{value:new Date(a).toLocaleString()})}function fl(t){return t?s("settings.authDeviceSourceAddressValue",{value:t}):s("settings.authDeviceSourceAddressUnknown")}function xl(t,a){return t?s("settings.authDeviceBrowserValue",{value:jn(t,a)}):null}function yl(t,a){return t?s("settings.authDeviceOsValue",{value:jn(t,a)}):null}function jl(t,a,n,r,o,h,v){return[xl(t,a),yl(n,r),bl(o,h),fl(v)].filter(w=>!!w)}function vl(t){switch(t){case"desktop":return"desktop";case"web":return"web";case"ios":return"ios";case"android":return"android";default:return"unknown"}}function jn(t,a){return a!=null&&a.trim()?`${t} ${a}`:t}function Nl({kind:t}){const a=Sl(t),n=a.icon;return e.jsx(n,{color:a.color})}function Sl(t){switch(t){case"desktop":return{icon:cl,color:"#2563eb"};case"web":return{icon:dl,color:"#0f766e"};case"ios":return{icon:ul,color:"#111827"};case"android":return{icon:gl,color:"#3ddc84"};case"unknown":return{icon:Mt,color:"#64748b"};default:return{icon:Mt,color:"#64748b"}}}function qs(t){return t instanceof Fe||t instanceof Error?t.message:s("settings.authDeviceLoadFailed")}function wl(){return Q.request("/api/admin/users")}function Tl(t){return Q.request("/api/admin/users",{method:"POST",body:JSON.stringify(t)})}function kl(t,a){return Q.request(`/api/admin/users/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(a)})}function Cl(t,a){return Q.request(`/api/admin/users/${encodeURIComponent(t)}/status`,{method:"PATCH",body:JSON.stringify({status:a})})}function Dl(t){return Q.request(`/api/admin/users/${encodeURIComponent(t)}`,{method:"DELETE"})}function Ml(t){return Q.request(`/api/admin/users/usage?period=${t}`)}const Hs={username:"",password:""};function vn({compact:t=!1,mobile:a=!1}){const[n,r]=l.useState(!1),[o,h]=l.useState("users"),[v,w]=l.useState([]),[b,T]=l.useState(null),[m,C]=l.useState("day"),[I,R]=l.useState(null),[A,N]=l.useState(null),[E,d]=l.useState(null),[x,u]=l.useState(Hs),[k,c]=l.useState(null),[f,S]=l.useState(null),[$,j]=l.useState(null),[D,U]=l.useState(null);l.useEffect(()=>{n&&W()},[n]),l.useEffect(()=>{!n||o!=="usage"||F(m)},[o,n,m]);const G=l.useMemo(()=>{const L=(b==null?void 0:b.users)??[];return L.find(J=>J.user.userId===I)??L[0]??null},[I,b]);async function W(){S("load-users"),U(null);try{const L=await wl();w(L.items)}catch(L){U(os(L,"settings.userManagementLoadFailed"))}finally{S(null)}}async function F(L){S("load-usage"),U(null);try{const J=await Ml(L);T(J),R(te=>{var ue;return te&&J.users.some(K=>K.user.userId===te)?te:((ue=J.users[0])==null?void 0:ue.user.userId)??null})}catch(J){U(os(J,"settings.userManagementUsageLoadFailed"))}finally{S(null)}}function se(){N("create"),d(null),u(Hs),c(null),j(null),U(null)}function ae(L){N("edit"),d(L.userId),u({username:L.username,password:""}),c(null),j(null),U(null)}function ie(){N(null),d(null),u(Hs)}async function B(){S("save-user"),j(null),U(null);try{A==="create"?(await Tl({username:x.username,password:x.password}),j(s("settings.userManagementCreateSuccess"))):A==="edit"&&E&&(await kl(E,{username:x.username,password:x.password.trim().length>0?x.password:void 0}),j(s("settings.userManagementUpdateSuccess"))),ie(),await W(),o==="usage"&&await F(m)}catch(L){U(os(L,"settings.userManagementSaveFailed"))}finally{S(null)}}async function O(L){const J=L.status==="active"?"disabled":"active";S("status-user"),j(null),U(null);try{await Cl(L.userId,J),j(J==="active"?s("settings.userManagementEnableSuccess"):s("settings.userManagementDisableSuccess")),await W(),o==="usage"&&await F(m)}catch(te){U(os(te,"settings.userManagementStatusFailed"))}finally{S(null)}}async function H(){if(k){S("delete-user"),j(null),U(null);try{await Dl(k),c(null),j(s("settings.userManagementDeleteSuccess")),await W(),o==="usage"&&await F(m)}catch(L){U(os(L,"settings.userManagementDeleteFailed"))}finally{S(null)}}}function M(){f==="save-user"||f==="delete-user"||(r(!1),N(null),d(null),c(null),j(null),U(null))}const p=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:p,type:"button",onClick:()=>r(!0),children:s("settings.userManagementOpenAction")})}),a?e.jsx(Me,{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(Ce,{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":o==="users"?"true":void 0,role:"tab","aria-selected":o==="users",onClick:()=>h("users"),children:s("settings.userManagementUsersTab")}),e.jsx("button",{type:"button",className:"settings-user-management-tab","data-active":o==="usage"?"true":void 0,role:"tab","aria-selected":o==="usage",onClick:()=>h("usage"),children:s("settings.userManagementUsageTab")})]}),$?e.jsx("p",{className:"settings-release-status",children:$}):null,D?e.jsx("p",{className:"settings-release-status","data-tone":"error",children:D}):null,o==="users"?me():Y()]})}function me(){const L=f==="load-users"&&v.length===0;return e.jsxs("div",{className:"settings-user-management-panel",role:"tabpanel",children:[e.jsx(Z,{heading:s("settings.userManagementUsersTitle"),description:s("settings.userManagementUsersDescription"),actions:e.jsx("button",{className:"settings-button",type:"button",onClick:se,children:s("settings.userManagementAddUser")}),children:L?e.jsx(re,{title:s("common.loading"),description:s("settings.userManagementLoading")}):v.length===0?e.jsx(re,{title:s("settings.userManagementUsersEmptyTitle"),description:s("settings.userManagementUsersEmptyDescription")}):e.jsx(fe,{className:"settings-user-list",children:v.map(J=>e.jsx(be,{label:J.username,description:s("settings.userManagementUserMeta",{createdAt:El(J.createdAt)}),trailing:e.jsxs("div",{className:"settings-user-row-actions",children:[e.jsx(ce,{tone:J.status==="active"?"success":"warning",children:J.status==="active"?s("settings.userManagementStatusActive"):s("settings.userManagementStatusDisabled")}),e.jsx("button",{className:"settings-button",type:"button",onClick:()=>ae(J),children:s("settings.userManagementEditUser")}),e.jsx("button",{className:"settings-button",type:"button",onClick:()=>void O(J),children:J.status==="active"?s("settings.userManagementDisableUser"):s("settings.userManagementEnableUser")}),e.jsx("button",{className:"settings-button settings-button-danger",type:"button",onClick:()=>c(J.userId),children:s("settings.userManagementDeleteUser")})]})},J.userId))})}),A?V():null,k?oe():null]})}function V(){const L=f==="save-user",J=A==="create"?s("settings.userManagementAddUser"):s("settings.userManagementEditUser"),te=A==="create"?s("settings.userManagementAddDescription"):s("settings.userManagementEditDescription");return e.jsx(Z,{heading:J,description:te,className:"settings-user-form-section",children:e.jsxs("div",{className:"settings-user-form",children:[e.jsx(ee,{label:s("settings.userManagementUsernameLabel"),children:e.jsx("input",{className:"settings-text-input",value:x.username,autoComplete:"off",onChange:ue=>u(K=>({...K,username:ue.target.value}))})}),e.jsx(ee,{label:s("settings.userManagementPasswordLabel"),description:A==="edit"?s("settings.userManagementPasswordEditHint"):void 0,children:e.jsx("input",{className:"settings-text-input",type:"password",value:x.password,autoComplete:"new-password",onChange:ue=>u(K=>({...K,password:ue.target.value}))})}),e.jsxs(de,{children:[e.jsx("button",{className:"settings-button",type:"button",onClick:ie,disabled:L,children:s("common.cancel")}),e.jsx("button",{className:"settings-button",type:"button",onClick:()=>void B(),disabled:L,children:L?s("common.loading"):s("common.save")})]})]})})}function oe(){const L=v.find(te=>te.userId===k),J=f==="delete-user";return e.jsx(Z,{tone:"danger",heading:s("settings.userManagementDeleteConfirmTitle"),description:s("settings.userManagementDeleteConfirmDescription",{username:(L==null?void 0:L.username)??s("common.unknown")}),children:e.jsxs(de,{children:[e.jsx("button",{className:"settings-button",type:"button",disabled:J,onClick:()=>c(null),children:s("common.cancel")}),e.jsx("button",{className:"settings-button settings-button-danger",type:"button",disabled:J,onClick:()=>void H(),children:J?s("common.loading"):s("settings.userManagementDeleteUser")})]})})}function Y(){const L=(b==null?void 0:b.users)??[],J=f==="load-usage"&&!b;return e.jsx("div",{className:"settings-user-management-panel",role:"tabpanel",children:e.jsx(Z,{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(te=>e.jsx("button",{type:"button",className:"settings-user-period-tab","data-active":m===te?"true":void 0,onClick:()=>C(te),children:Pl(te)},te))}),children:J?e.jsx(re,{title:s("common.loading"),description:s("settings.userManagementUsageLoading")}):L.length===0?e.jsx(re,{title:s("settings.userManagementUsageEmptyTitle"),description:s("settings.userManagementUsageEmptyDescription")}):e.jsxs("div",{className:"settings-user-usage-layout",children:[e.jsx(fe,{className:"settings-user-usage-users",children:L.map(te=>e.jsx(be,{as:"button",selected:(G==null?void 0:G.user.userId)===te.user.userId,label:te.user.username,description:s("settings.userManagementSessionCount",{count:te.sessionCount}),trailing:e.jsx(ce,{tone:te.user.status==="active"?"success":"warning",children:te.user.status==="active"?s("settings.userManagementStatusActive"):s("settings.userManagementStatusDisabled")}),onClick:()=>R(te.user.userId)},te.user.userId))}),G?xe(G):null]})})})}function xe(L){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(L.sessionCount)}),e.jsx(js,{label:s("settings.userManagementMetricTotalTokens"),value:es(L.tokenTotals.totalTokens)}),e.jsx(js,{label:s("settings.userManagementMetricInputTokens"),value:es(L.tokenTotals.inputTokens)}),e.jsx(js,{label:s("settings.userManagementMetricOutputTokens"),value:es(L.tokenTotals.outputTokens)})]}),L.tokenUsageAvailable?null:e.jsx("p",{className:"settings-user-token-note",children:s("settings.userManagementTokenUnavailable")}),e.jsx(Al,{userUsage:L}),e.jsxs("div",{className:"settings-user-usage-groups",children:[e.jsx(Ws,{title:s("settings.userManagementModelUsage"),items:L.modelUsage}),e.jsx(Ws,{title:s("settings.userManagementCliProviderUsage"),items:L.cliProviderUsage}),e.jsx(Ws,{title:s("settings.userManagementModelProviderUsage"),items:L.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 Al({userUsage:t}){const a=Math.max(1,...t.timeline.map(n=>n.totalTokens));return t.timeline.length===0?e.jsx(re,{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 Pl(t){return t==="week"?s("settings.userManagementPeriodWeek"):t==="month"?s("settings.userManagementPeriodMonth"):s("settings.userManagementPeriodDay")}function El(t){const a=new Date(t);return Number.isNaN(a.getTime())?t:a.toLocaleString()}function es(t){return new Intl.NumberFormat().format(t)}function os(t,a){return t instanceof Fe?t.message||s(a):t instanceof Error?t.message:s(a)}const Ll=1500,Et=2e3,Il=2500;function Nn(){const t=ts(),[a,n]=l.useState(!1),[r,o]=l.useState(!1),[h,v]=l.useState(!1),[w,b]=l.useState(!1),[T,m]=l.useState(!1),[C,I]=l.useState(null),[R,A]=l.useState(null),[N,E]=l.useState(null),d=(R==null?void 0:R.packages[0])??null,x=h||!!((N==null?void 0:N.status)==="succeeded"&&N.restartScheduled);l.useEffect(()=>{if(!N||!vs(N.status))return;let f=!1;const S=window.setTimeout(async()=>{var $;try{const j=await Zt(N.taskId);if(f)return;if(E(j),I(st(j)),!vs(j.status)){if(o(!1),j.status==="succeeded"&&j.restartScheduled){v(!0),t.bridge.showNotification(s("settings.serverRestarting"),s("settings.serverInstallWarning"));return}const D=await Ms();if(f)return;A(D),E((($=D.packages[0])==null?void 0:$.installTask)??j),I($s(D.packages[0]??null,j)),j.restartRequired&&await t.bridge.showNotification(s("settings.serverRestartRequired"),j.targetVersion??"-")}}catch(j){if(f)return;o(!1),I(j instanceof Error?j.message:s("settings.serverInstallFailed"))}},Ll);return()=>{f=!0,window.clearTimeout(S)}},[t.bridge,N]),l.useEffect(()=>{if(!h||!N||N.status!=="succeeded"||!N.restartScheduled)return;let f=!1,S=0;const $=async()=>{try{const j=await Ms();if(f)return;const D=j.packages[0]??null;if(!Fl(N,D)){S=window.setTimeout($,Et);return}v(!1),A(j),E((D==null?void 0:D.installTask)??null),I($s(D,(D==null?void 0:D.installTask)??null))}catch{if(f)return;I(s("settings.serverRestarting")),S=window.setTimeout($,Et)}};return I(s("settings.serverRestarting")),S=window.setTimeout($,Math.max(N.restartDelayMs??0,Il)),()=>{f=!0,window.clearTimeout(S)}},[h,N]);async function u(){n(!0),I(null);try{const f=await Ms(),S=f.packages[0]??null;A(f),E((S==null?void 0:S.installTask)??null),I($s(S,(S==null?void 0:S.installTask)??null)),S!=null&&S.hasUpdate&&await t.bridge.showNotification(s("settings.serverUpdateReady"),`${s("settings.serverTargetVersion")}: ${S.latestVersion??"-"}`)}catch(f){I(f instanceof Error?f.message:s("settings.serverCheckFailed"))}finally{n(!1)}}async function k(){if(d!=null&&d.packageName){b(!1),v(!1),o(!0),I(null);try{const f=await Qt(d.packageName);E(f),I(st(f))}catch(f){o(!1),I(f instanceof Error?f.message:s("settings.serverInstallFailed"))}}}const c=!!(d&&d.checkStatus!=="check_failed"&&d.hasUpdate&&!d.restartRequired&&!vs(N==null?void 0:N.status)&&!x);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:(d==null?void 0:d.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:(d==null?void 0:d.latestVersion)??"-"})]})]}),d!=null&&d.hasUpdate&&!x?e.jsx("p",{className:"settings-update-note","data-tone":"warning",children:s("settings.serverInstallWarning")}):null,vs(N==null?void 0:N.status)||x?e.jsx(Ol,{task:N,restarting:x}):null,C?e.jsx("p",{className:"settings-update-status","data-tone":Rl(d,N,x),children:C}):null,e.jsxs("div",{className:"settings-update-actions",children:[d!=null&&d.latestNotes?e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>m(!0),children:s("settings.releaseNotesView")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:a||r||x,onClick:u,children:a?s("common.loading"):s("settings.serverCheckNow")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!c||a||r||x,onClick:()=>b(!0),children:r?s("common.loading"):s("settings.serverInstallNow")})]})]}),e.jsx(Bl,{open:w,busy:r,mobile:t.isMobile,targetVersion:(d==null?void 0:d.latestVersion)??null,onClose:()=>b(!1),onConfirm:()=>{k()}}),e.jsx(lt,{open:T,mobile:t.isMobile,summary:d?Qa(d):null,onClose:()=>m(!1)})]})}function Ol({task:t,restarting:a}){const n=Ul(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 Ul(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 Rl(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 Fl(t,a){return a?t.targetVersion?Lt(a.currentVersion)===Lt(t.targetVersion):!a.hasUpdate:!1}function Lt(t){return(t??"").trim().replace(/^v/i,"")}function Bl({open:t,busy:a,mobile:n,targetVersion:r,onClose:o,onConfirm:h}){const v=e.jsxs(de,{children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:a,onClick:o,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(Z,{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(Me,{open:t,title:s("settings.serverInstallConfirmTitle"),description:s("settings.serverInstallConfirmDescription"),height:"auto",kind:"form",dismissible:!a,footer:v,onClose:o,children:w}):e.jsx(Ce,{open:t,title:s("settings.serverInstallConfirmTitle"),description:s("settings.serverInstallConfirmDescription"),size:"compact",layout:"confirm",bodyClassName:"settings-update-confirm-body",dismissible:!a,footer:v,onClose:o,children:w})}function Sn({open:t,mobile:a,onClose:n,onConfirm:r}){const[o,h]=l.useState(!1);function v(){h(!1),n()}function w(){h(!1),r()}const b=e.jsxs(e.Fragment,{children:[e.jsxs(Z,{tone:"danger",className:"settings-beta-warning-section",children:[e.jsx("p",{className:"settings-beta-warning-description",children:s("settings.betaChannelConsentDescription")}),e.jsxs("ul",{className:"settings-beta-warning-risks",children:[e.jsx("li",{children:s("settings.betaChannelConsentRisk1")}),e.jsx("li",{children:s("settings.betaChannelConsentRisk2")})]})]}),e.jsx(Z,{tone:"accent",className:"settings-beta-consent-section",children:e.jsxs("label",{className:"settings-beta-consent-checkbox-label",children:[e.jsx("input",{type:"checkbox",className:"settings-beta-consent-checkbox",checked:o,onChange:T=>h(T.target.checked)}),e.jsx("span",{children:s("settings.betaChannelConsentCheckbox")})]})}),e.jsxs(de,{children:[e.jsx("button",{type:"button",className:"secondary-button",onClick:v,children:s("common.cancel")}),e.jsx("button",{type:"button",className:"primary-button settings-beta-consent-confirm-button",disabled:!o,onClick:w,children:s("settings.betaChannelConsentConfirm")})]})]});return a?e.jsx(Me,{open:t,title:s("settings.betaChannelConsentTitle"),kind:"form",height:"auto",onClose:v,children:b}):e.jsx(Ce,{open:t,title:s("settings.betaChannelConsentTitle"),size:"compact",layout:"confirm",onClose:v,children:b})}async function Vl(){return await Q.request("/api/system/relay-tunnel/status")}async function zs(t){return await Q.request("/api/system/relay-tunnel/config",{method:"PUT",body:JSON.stringify(t)})}async function _l(t){return await Q.request("/api/system/relay-tunnel/control/login",{method:"POST",body:JSON.stringify(t)})}async function ql(){return await Q.request("/api/system/relay-tunnel/control/logout",{method:"POST"})}async function Hl(t){const a=t.hostLabel.trim(),n=`/api/system/relay-tunnel/control/host-label-availability?hostLabel=${encodeURIComponent(a)}`;return await Q.request(n)}async function Wl(t){return await Q.request("/api/system/relay-tunnel/control/bind",{method:"POST",body:JSON.stringify(t)})}async function $l(){return await Q.request("/api/system/relay-tunnel/control/wallet")}async function It(){return await Q.request("/api/system/relay-tunnel/enable",{method:"POST"})}async function zl(){return await Q.request("/api/system/relay-tunnel/disable",{method:"POST"})}async function Kl(){return await Q.request("/api/system/relay-tunnel/unbind",{method:"POST"})}function Gl(){const t=hs(),{showToast:a}=at(),[n,r]=l.useState(null),[o,h]=l.useState(""),[v,w]=l.useState(()=>gt()),[b,T]=l.useState(()=>$n()),[m,C]=l.useState(""),[I,R]=l.useState(""),[A,N]=l.useState(null),[E,d]=l.useState({status:"idle"}),[x,u]=l.useState(!0),[k,c]=l.useState(null),[f,S]=l.useState(null),[$,j]=l.useState(null),[D,U]=l.useState(null),[G,W]=l.useState(null),F=l.useRef(!0),se=ks(n==null?void 0:n.controlBaseUrl),ae=zn(v),ie=ae??se,B=ks(ae??(n==null?void 0:n.controlBaseUrl)),O=o.trim(),H=ae!==null&&ae!==se,M=(n==null?void 0:n.activated)??!1,p=m.trim().length>0&&I.trim().length>0,q=!!(n!=null&&n.controlAccountEmail),me=n!=null&&n.bindingId?!0:E.status==="available"&&E.hostLabel===O,V=!!(n!=null&&n.bindingId)||q&&O.length>0&&me,oe=Ot({controlBaseUrl:B,tunnelDomain:n==null?void 0:n.tunnelDomain,hostLabel:o}),Y=!!(n!=null&&n.controlAccountEmail||n!=null&&n.bindingId),xe=!!(n!=null&&n.bindingId||me),L=!!(n!=null&&n.enabled&&(n!=null&&n.bindingId)),J=!!(n!=null&&n.bindingId)||V,te=A?cs(A.grantedBytes):s("settings.tailscaleUnavailable"),ue=cs(A?A.usedBytes:n==null?void 0:n.trafficUsedBytes),K=cs(A?A.remainingBytes:n==null?void 0:n.trafficRemainingBytes),pe=nt(Re.getState()),ye=ua(),Ae=ye?s(ga(ye.kind)):null,je=ye?Ql(ye):null;l.useEffect(()=>(F.current=!0,Ee(!1),()=>{F.current=!1}),[]),l.useEffect(()=>{if(!M)return;const i=window.setInterval(()=>{Ee(!0)},5e3);return()=>{window.clearInterval(i)}},[M]),l.useEffect(()=>{!M||!q||Pe()},[M,q]),l.useEffect(()=>{n!=null&&n.bindingId||E.status!=="idle"&&E.hostLabel!==O&&d({status:"idle"})},[E,O,n==null?void 0:n.bindingId]),l.useEffect(()=>{w(se)},[se]);async function Ee(i,_){i||u(!0);try{const le=await Vl();if(!F.current)return;ve(le,_),S(null)}catch(le){F.current&&S(Qs(le,"status",pe))}finally{F.current&&!i&&u(!1)}}function ve(i,_){r(i),W(null),i.controlAccountEmail||N(null),i.tunnelDomain&&o.trim().length===0&&h(wn(i.tunnelDomain)),((_==null?void 0:_.syncProfile)??!0)&&ze(i)}async function Pe(){try{const i=await $l();if(!F.current)return;N(i.wallet)}catch(i){F.current&&W(qe(i))}}async function Ze(){if(p){c("login-control"),W(null);try{const i=await _l({email:m.trim(),password:I});U(null),ve(i),await Pe()}catch(i){U(Qs(i,"login",pe))}finally{c(null)}}}async function Be(){c("logout-control"),W(null);try{const i=await ql();ve(i),N(null),d({status:"idle"})}catch(i){W(qe(i))}finally{c(null)}}async function Ye(){if(!O)throw new Error(s("settings.relayTunnelHostLabelRequired"));if(E.status==="available"&&E.hostLabel===O)return{hostLabel:E.hostLabel,tunnelDomain:E.tunnelDomain,available:!0,reason:"available"};d({status:"checking",hostLabel:O});const i=await Hl({hostLabel:O});if(!i.available||!i.tunnelDomain){const _=Zl(i);throw d({status:"error",hostLabel:O,message:_}),new Error(_)}return d({status:"available",hostLabel:O,tunnelDomain:i.tunnelDomain}),i}async function Ie(){if(!(!Y||n!=null&&n.bindingId)){c("check-host-label"),W(null);try{await Ye()}catch{}finally{c(null)}}}async function Se(){c("learn-service"),W(null);try{await Zs(t.bridge.openExternal,B)}catch(i){W(qe(i))}finally{c(null)}}async function X(){c("manage-account"),W(null);try{await Zs(t.bridge.openExternal,B)}catch(i){W(qe(i))}finally{c(null)}}async function Oe(){if(oe)try{await Xl(oe,t),a({title:s("settings.relayTunnelAccessUrlCopied"),tone:"success"})}catch(i){a({title:i instanceof Error?i.message:s("settings.relayTunnelCopyAccessUrlFailed"),tone:"error"})}}async function Ve(){if(oe)try{await Zs(t.bridge.openExternal,oe)}catch(i){a({title:i instanceof Error?i.message:s("settings.relayTunnelOpenAccessUrlFailed"),tone:"error"})}}async function Te(){if(V){c("enable"),W(null);try{let i=n;if(i!=null&&i.activated||(i=await zs({activated:!0,controlBaseUrl:ie}),ve(i)),i!=null&&i.bindingId||(await Ye(),i=await Wl({hostLabel:O}),ve(i),await Pe()),!(i!=null&&i.enabled)){const _=await It();ve(_)}}catch(i){W(qe(i))}finally{c(null)}}}async function We(){if(n!=null&&n.bindingId){c("reconnect"),W(null);try{n!=null&&n.enabled&&await zl();const i=await It();ve(i),i.controlAccountEmail&&await Pe()}catch(i){const _=qe(i);await Ee(!0,{syncProfile:!1}),W(_)}finally{c(null)}}}async function $e(){c("disconnect-device"),W(null);try{if(n!=null&&n.bindingId||n!=null&&n.accountId){const i=await Kl();ve(i)}if(n!=null&&n.activated){const i=await zs({activated:!1});ve(i)}N(null),C(""),h(""),R(""),d({status:"idle"})}catch(i){W(qe(i))}finally{c(null)}}async function we(){if(!ae){j(s("settings.serverInvalid"));return}c("save-config"),j(null);try{const i=await zs({controlBaseUrl:ae});j(null),ve(i)}catch(i){j(Qs(i,"config",pe))}finally{c(null)}}return e.jsxs("div",{className:"settings-relay-tunnel-panel",children:[x&&!n?e.jsx(Z,{heading:s("settings.relayTunnelWizardTitle"),description:s("settings.relayTunnelWizardDescription"),children:e.jsx("p",{className:"settings-remote-access-panel-note",children:s("common.loading")})}):null,!x&&!L?e.jsxs(Z,{heading:s("settings.relayTunnelWizardTitle"),description:s("settings.relayTunnelWizardDescription"),actions:e.jsx("button",{className:"secondary-button",disabled:k!==null,type:"button",onClick:()=>void Se(),children:s("settings.relayTunnelLearnService")}),children:[f?e.jsx(Ks,{title:s("settings.relayTunnelStatusErrorTitle"),message:f,action:e.jsx("button",{className:"secondary-button",disabled:x||k!==null,type:"button",onClick:()=>void Ee(!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(Y,!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(ce,{className:"settings-relay-tunnel-step-tag",children:s(Js(Y,!0))})]}),e.jsx("div",{className:"settings-relay-tunnel-step-body",children:Y?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(de,{align:"start",children:e.jsx("button",{className:"secondary-button",disabled:k!==null,type:"button",onClick:()=>{if(n!=null&&n.bindingId){$e();return}Be()},children:s("common.logout")})})]}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"settings-relay-tunnel-form",children:[e.jsx(ee,{label:s("settings.relayTunnelAccountEmail"),children:e.jsx("input",{"aria-label":s("settings.relayTunnelAccountEmail"),className:"settings-text-input",type:"email",value:m,onChange:i=>{C(i.target.value),U(null)},placeholder:s("settings.relayTunnelAccountEmailPlaceholder")})}),e.jsx(ee,{label:s("settings.relayTunnelAccountPassword"),children:e.jsx("input",{"aria-label":s("settings.relayTunnelAccountPassword"),className:"settings-text-input",type:"password",value:I,onChange:i=>{R(i.target.value),U(null)},placeholder:s("settings.relayTunnelAccountPasswordPlaceholder")})}),D?e.jsx(Ks,{title:s("settings.relayTunnelLoginErrorTitle"),message:D}):null,e.jsxs(de,{align:"start",children:[e.jsx("button",{className:"settings-button",disabled:k!==null||!p,type:"button",onClick:()=>void Ze(),children:k==="login-control"?s("common.loading"):s("settings.relayTunnelLoginAccount")}),e.jsx("button",{className:"secondary-button",disabled:k!==null,type:"button",onClick:()=>{T(i=>!i),j(null)},children:b?s("settings.relayTunnelAdvancedSettingsHide"):s("settings.relayTunnelAdvancedSettings")})]}),b?e.jsxs("div",{className:"settings-relay-tunnel-inline-stack",children:[e.jsx(ee,{label:s("settings.relayTunnelControlBaseUrl"),description:s("settings.relayTunnelServerAddressHint"),children:e.jsx("input",{"aria-label":s("settings.relayTunnelControlBaseUrl"),className:"settings-text-input",type:"url",value:v,onChange:i=>{w(i.target.value),j(null)},placeholder:gt()})}),e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelAdvancedSettingsDescription")}),$?e.jsx(Ks,{title:s("settings.relayTunnelConfigErrorTitle"),message:$}):null,e.jsx(de,{align:"start",children:e.jsx("button",{className:"settings-button",disabled:x||k!==null||!H,type:"button",onClick:()=>void we(),children:k==="save-config"?s("common.loading"):s("common.save")})})]}):null]})})})]}),e.jsxs("section",{className:"settings-relay-tunnel-step","data-state":Gs(xe,Y),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(ce,{className:"settings-relay-tunnel-step-tag",children:s(Js(xe,Y))})]}),e.jsx("div",{className:"settings-relay-tunnel-step-body",children:Y?n!=null&&n.bindingId?e.jsx("p",{className:"settings-relay-tunnel-success",children:s("settings.relayTunnelHostLabelAvailable",{domain:oe??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:o,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:k!==null||O.length===0,type:"button",onClick:()=>void Ie(),children:k==="check-host-label"?s("common.loading"):s("settings.relayTunnelHostLabelCheck")})]}),e.jsxs("div",{className:"settings-relay-tunnel-inline-stack",children:[E.status==="available"&&E.hostLabel===O?e.jsx("p",{className:"settings-relay-tunnel-success",children:s("settings.relayTunnelHostLabelAvailable",{domain:Ot({controlBaseUrl:ie,tunnelDomain:E.tunnelDomain,hostLabel:E.hostLabel})??E.tunnelDomain})}):null,E.status==="checking"&&E.hostLabel===O?e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:s("settings.relayTunnelHostLabelChecking")}):null,E.status==="error"&&E.hostLabel===O?e.jsx("p",{className:"settings-relay-tunnel-error",children:E.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(L,xe),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(ce,{className:"settings-relay-tunnel-step-tag",children:s(Js(L,xe))})]}),e.jsx("div",{className:"settings-relay-tunnel-step-body",children:xe?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:M?s("settings.relayTunnelStepStartReady"):s("settings.relayTunnelActivationHint")}),e.jsx(de,{align:"start",children:e.jsx("button",{className:"settings-button",disabled:k!==null||!J,type:"button",onClick:()=>void Te(),children:k==="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:[ye&&Ae&&je?e.jsx(Jl,{hint:je,label:Ae,url:ye.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,!x&&L?e.jsxs(Z,{heading:s("settings.relayTunnelReadyTitle"),description:s("settings.relayTunnelReadyDescription"),children:[e.jsxs(fe,{compact:!0,children:[ye&&Ae?e.jsxs(e.Fragment,{children:[e.jsx(He,{label:s("settings.relayTunnelClientRouteLabel"),value:Ae}),e.jsx(He,{label:s("settings.relayTunnelClientRouteAddressLabel"),value:ye.url})]}):null,e.jsx(He,{className:"settings-relay-tunnel-summary-line-access-url",label:s("settings.relayTunnelAccessUrlLabel"),trailing:oe?e.jsxs("div",{className:"settings-relay-tunnel-access-url",children:[e.jsx("span",{className:"settings-relay-tunnel-access-url-text",title:oe,children:oe}),e.jsxs("span",{className:"settings-relay-tunnel-access-url-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>void Oe(),children:s("settings.relayTunnelCopyAccessUrl")}),e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>void Ve(),children:s("settings.relayTunnelOpenAccessUrl")})]})]}):e.jsx("span",{className:"settings-relay-tunnel-summary-value",children:s("settings.relayTunnelUnbound")})}),e.jsx(He,{label:s("settings.relayTunnelTrafficGranted"),value:te}),e.jsx(He,{label:s("settings.relayTunnelTrafficUsed"),value:ue}),e.jsx(He,{label:s("settings.relayTunnelTrafficRemaining"),value:K})]}),e.jsxs(de,{align:"start",className:"settings-relay-tunnel-ready-actions",children:[e.jsx("button",{className:"secondary-button",disabled:k!==null||!(n!=null&&n.bindingId),type:"button",onClick:()=>void We(),children:k==="reconnect"?s("common.loading"):s("settings.relayTunnelReconnectAction")}),e.jsx("button",{className:"secondary-button",disabled:k!==null,type:"button",onClick:()=>void X(),children:k==="manage-account"?s("common.loading"):s("settings.relayTunnelManageAccountAction")}),e.jsx("button",{className:"settings-button settings-button-danger",disabled:k!==null,type:"button",onClick:()=>void $e(),children:k==="disconnect-device"?s("common.loading"):s("settings.relayTunnelDisconnectDeviceAction")})]}),e.jsxs("div",{className:"settings-relay-tunnel-inline-stack",children:[ye&&Ae&&je?e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:je}):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 _=Re.getState(),le=Kn(_);if(!le)return;const _e=Le(i);er(le.relayTunnel??null,_e)||Re.update({hosts:_.hosts.map(ns=>ns.id===le.id?{...ns,relayTunnel:_e,updatedAt:new Date().toISOString()}:ns)})}function Le(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 Jl({label:t,url:a,hint:n}){return e.jsxs(e.Fragment,{children:[e.jsxs(fe,{compact:!0,children:[e.jsx(He,{label:s("settings.relayTunnelClientRouteLabel"),value:t}),e.jsx(He,{label:s("settings.relayTunnelClientRouteAddressLabel"),value:a})]}),e.jsx("p",{className:"settings-relay-tunnel-inline-note",children:n})]})}function He({label:t,value:a,trailing:n,className:r}){return e.jsx(be,{className:r,label:t,trailing:n??e.jsx("span",{className:"settings-relay-tunnel-summary-value",children:a})})}function Ql(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 Zl(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 qe(t){return t instanceof Fe||t instanceof Error?t.message:s("settings.relayTunnelLoadFailed")}function Qs(t,a,n){if(t instanceof Fe&&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 qe(t)}function cs(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 wn(t){return t?t.split(".")[0]||s("common.unknown"):s("common.unknown")}function Ot(t){var r,o,h,v;const a=Ut(t.hostLabel)??Ut(wn(t.tunnelDomain));if(!a)return((r=t.tunnelDomain)==null?void 0:r.trim())??null;const n=(o=t.controlBaseUrl)==null?void 0:o.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((v=t.tunnelDomain)==null?void 0:v.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 Yl(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 Xl(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(!Yl(t))throw new Error(s("settings.relayTunnelCopyAccessUrlFailed"))}function er(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 Rt(){return await Q.request("/api/system/tailscale/status")}async function Ft(t){return await Q.request("/api/system/tailscale/config",{method:"PUT",body:JSON.stringify(t)})}async function sr(){return await Q.request("/api/system/tailscale/enable",{method:"POST"})}async function tr(){return await Q.request("/api/system/tailscale/disable",{method:"POST"})}async function nr(){return await Q.request("/api/system/tailscale/login",{method:"POST"})}async function ar(){return await Q.request("/api/system/tailscale/logout",{method:"POST"})}function ir({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 lr({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:o=>{if(n){o.preventDefault();return}o.target instanceof HTMLInputElement||(o.preventDefault(),r(!t))},children:[e.jsx("input",{type:"checkbox","aria-label":a,checked:t,disabled:n,onChange:o=>r(o.target.checked)}),e.jsx("span",{className:"settings-mobile-switch-track","aria-hidden":"true",children:e.jsx("span",{className:"settings-mobile-switch-thumb"})})]})]})}function rr({configMode:t="modal"}){const a=hs(),[n,r]=l.useState(null),[o,h]=l.useState(""),[v,w]=l.useState(""),[b,T]=l.useState(!0),[m,C]=l.useState(null),[I,R]=l.useState(null),[A,N]=l.useState(!1),[E,d]=l.useState(!1),x=l.useRef(!0),u=l.useRef(!1),k=l.useRef(async()=>{}),c=t==="inline",f=(n==null?void 0:n.activated)??!1;u.current=E;function S(O){if(r(O),h(O.controlServerUrl??""),w(O.hostname??""),R(null),!O.activated){d(!1),N(!1);return}u.current&&!_t(O.lastError)&&d(!1)}k.current=async O=>{O||T(!0);try{const H=await Rt();if(!x.current)return;S(H)}catch(H){if(!x.current)return;R(ds(H))}finally{x.current&&!O&&T(!1)}},l.useEffect(()=>(x.current=!0,k.current(!1),()=>{x.current=!1}),[]),l.useEffect(()=>{if(!f)return;const O=window.setInterval(()=>{k.current(!0)},5e3);return()=>{window.clearInterval(O)}},[f]),l.useEffect(()=>{if(!E||!f)return;function O(){k.current(!0)}function H(){document.visibilityState==="visible"&&k.current(!0)}return window.addEventListener("focus",O),document.addEventListener("visibilitychange",H),()=>{window.removeEventListener("focus",O),document.removeEventListener("visibilitychange",H)}},[f,E]);const $=((n==null?void 0:n.controlServerUrl)??"")!==o.trim()||((n==null?void 0:n.hostname)??"")!==v.trim(),j=f&&_t(n==null?void 0:n.lastError),D=f&&dr(a.ui.osFamily)&&j;async function U(){const O=await Ft({controlServerUrl:Vt(o),hostname:Vt(v)});return S(O),O}async function G(O){C("toggle-activation"),R(null);try{const H=await Ft({activated:O});S(H)}catch(H){R(ds(H))}finally{C(null),T(!1)}}async function W(O){C(O),R(null);try{$&&O!=="disable"&&O!=="logout"&&await U();const H=O==="enable"?await sr():O==="disable"?await tr():O==="login"?await nr():await ar();S(H)}catch(H){R(ds(H))}finally{C(null)}}async function F(){C("save"),R(null);try{await U(),N(!1)}catch(O){R(ds(O))}finally{C(null)}}async function se(){C("refresh"),R(null);try{const O=await Rt();S(O)}catch(O){R(ds(O))}finally{C(null),T(!1)}}async function ae(){const O=ur(a.ui.osFamily);if(O){C("install"),R(null);try{const H=await a.bridge.openExternal(O);if(!H.ok){R(H.detail??s("settings.tailscaleInstallOpenFailed"));return}d(!0)}catch(H){R(H instanceof Error?H.message:s("settings.tailscaleInstallOpenFailed"))}finally{C(null)}}}function ie(){m!=="save"&&N(!1)}const B=f?e.jsxs("span",{className:"settings-tailscale-status-indicator","data-tone":gr((n==null?void 0:n.phase)??"disabled"),children:[e.jsx("span",{className:"settings-tailscale-status-dot","aria-hidden":"true"}),cr((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(Z,{heading:s("settings.tailscaleSectionTitle"),description:s("settings.tailscaleSectionDescription"),actions:e.jsx(lr,{checked:f,label:s("settings.tailscaleMasterSwitchLabel"),disabled:m!==null,onChange:O=>{G(O)}}),children:b&&!n?e.jsx("p",{className:"settings-remote-access-panel-note",children:s("common.loading")}):e.jsxs(e.Fragment,{children:[e.jsxs(ir,{children:[e.jsx(Ns,{label:s("settings.tailscaleStatusIndicator"),value:B}),e.jsx(Ns,{label:s("settings.tailscaleServerAddress"),value:f?(n==null?void 0:n.reachableBaseUrl)??s("settings.tailscaleUnavailable"):s("settings.tailscaleUnavailable")}),e.jsx(Ns,{label:s("settings.tailscaleAccountName"),value:f?(n==null?void 0:n.accountName)??s("settings.tailscaleUnavailable"):s("settings.tailscaleUnavailable")}),e.jsx(Ns,{label:s("settings.tailscaleIpAddress"),value:f?or(n):s("settings.tailscaleUnavailable")})]}),f?null:e.jsx("p",{className:"settings-remote-access-panel-note",children:s("settings.tailscaleActivationHint")}),f&&(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,I||n!=null&&n.lastError?e.jsx("p",{className:"settings-relay-tunnel-error",children:I??(n==null?void 0:n.lastError)}):null,f?e.jsxs(de,{align:"start",children:[D?e.jsx("button",{className:"settings-button",type:"button",disabled:b||m!==null,onClick:()=>{ae()},children:m==="install"?s("common.loading"):s("settings.tailscaleInstallAction")}):null,c?null:e.jsx("button",{className:"secondary-button",type:"button",disabled:b||m!==null,onClick:()=>N(!0),children:s("settings.tailscaleConfigure")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:b||m!==null,onClick:()=>{se()},children:m==="refresh"?s("common.loading"):s("settings.tailscaleRefresh")}),n!=null&&n.enabled?e.jsx("button",{className:"secondary-button",type:"button",disabled:b||m!==null||j,onClick:()=>{W("disable")},children:m==="disable"?s("common.loading"):s("settings.tailscaleDisable")}):e.jsx("button",{className:"secondary-button",type:"button",disabled:b||m!==null||j,onClick:()=>{W("enable")},children:m==="enable"?s("common.loading"):s("settings.tailscaleEnable")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:b||m!==null||!(n!=null&&n.enabled)||j,onClick:()=>{W("login")},children:m==="login"?s("common.loading"):s("settings.tailscaleLogin")}),e.jsx("button",{className:"secondary-button",type:"button",disabled:b||m!==null||!(n!=null&&n.enabled)||j,onClick:()=>{W("logout")},children:m==="logout"?s("common.loading"):s("settings.tailscaleLogout")})]}):null]})}),c&&f?e.jsx(Z,{heading:s("settings.tailscaleConfigModalTitle"),description:s("settings.tailscaleConfigModalDescription"),children:e.jsx(Bt,{controlServerUrlDraft:o,hostnameDraft:v,pendingAction:m,configDirty:$,onControlServerUrlChange:h,onHostnameChange:w,onSave:()=>{F()}})}):null]}),e.jsx(ms,{open:!c&&f&&A,title:s("settings.tailscaleConfigModalTitle"),description:s("settings.tailscaleConfigModalDescription"),size:"regular",onClose:ie,children:e.jsx(Bt,{controlServerUrlDraft:o,hostnameDraft:v,pendingAction:m,configDirty:$,footer:e.jsx("div",{className:"settings-tailscale-modal-actions",children:e.jsx("button",{className:"secondary-button",type:"button",disabled:m==="save",onClick:ie,children:s("common.cancel")})}),onControlServerUrlChange:h,onHostnameChange:w,onSave:()=>{F()}})})]})}function Bt({controlServerUrlDraft:t,hostnameDraft:a,pendingAction:n,configDirty:r,footer:o,onControlServerUrlChange:h,onHostnameChange:v,onSave:w}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"settings-tailscale-form",children:[e.jsx(ee,{label:s("settings.tailscaleControlServer"),children:e.jsx("input",{"aria-label":s("settings.tailscaleControlServer"),className:"settings-text-input",placeholder:s("settings.tailscaleControlServerPlaceholder"),value:t,onChange:b=>h(b.target.value)})}),e.jsx(ee,{label:s("settings.tailscaleHostname"),children:e.jsx("input",{"aria-label":s("settings.tailscaleHostname"),className:"settings-text-input",placeholder:s("settings.tailscaleHostnamePlaceholder"),value:a,onChange:b=>v(b.target.value)})})]}),e.jsxs(de,{align:"start",className:"settings-tailscale-config-actions",children:[o,e.jsx("button",{className:"settings-button",type:"button",disabled:n!==null||!r,onClick:w,children:n==="save"?s("common.loading"):s("common.save")})]})]})}function Vt(t){const a=t.trim();return a.length>0?a:null}function ds(t){return t instanceof Fe||t instanceof Error?t.message:s("settings.tailscaleLoadFailed")}function or(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 cr(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 dr(t){return t==="macos"||t==="windows"}function ur(t){switch(t){case"macos":return"https://tailscale.com/download/mac";case"windows":return"https://tailscale.com/download/windows";default:return null}}function gr(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 Tn({open:t,mobile:a,onClose:n}){const[r,o]=l.useState("tunnel"),h=l.useId(),v=[{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:v.map(b=>{const T=`${h}-${b.id}-tab`,m=`${h}-${b.id}-panel`,C=r===b.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":m,onClick:()=>o(b.id),children:b.label},b.id)})}),r==="tunnel"?e.jsx("div",{id:`${h}-tunnel-panel`,"aria-labelledby":`${h}-tunnel-tab`,role:"tabpanel",children:e.jsx(Gl,{})}):e.jsx("div",{id:`${h}-tailscale-panel`,"aria-labelledby":`${h}-tailscale-tab`,role:"tabpanel",children:e.jsx(rr,{configMode:"inline"})})]});return a?e.jsx(Me,{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 kn({open:t,mobile:a,workspaceId:n,onClose:r}){var O,H;const o=it(),{showToast:h}=at(),[v,w]=l.useState([]),[b,T]=l.useState(""),[m,C]=l.useState(null),[I,R]=l.useState([]),[A,N]=l.useState([]),[E,d]=l.useState(!1),[x,u]=l.useState(!1),[k,c]=l.useState(!1),[f,S]=l.useState(!1),[$,j]=l.useState(null);async function D(M){d(!0);try{const q=(await Ma()).items;w(q);const me=mr(M??b,q);return T(me),me}catch(p){return h({title:p instanceof Error?p.message:s("plugins.listLoadFailed"),tone:"error"}),""}finally{d(!1)}}async function U(M){if(!M){C(null),R([]);return}u(!0);try{const[p,q]=await Promise.all([Aa(M),Pa(M)]);C(p),R(q.items)}catch(p){h({title:p instanceof Error?p.message:s("plugins.detailLoadFailed"),tone:"error"}),C(null),R([])}finally{u(!1)}}async function G(M){const p=(n==null?void 0:n.trim())??"";if(!M||!p){N([]);return}c(!0);try{const q=await Ea(M,p);N(q.items)}catch(q){h({title:q instanceof Error?q.message:s("plugins.permissionGrantLoadFailed"),tone:"error"}),N([])}finally{c(!1)}}l.useEffect(()=>{t&&D()},[t]),l.useEffect(()=>{t&&(U(b),G(b))},[t,b]);const W=l.useMemo(()=>(m==null?void 0:m.manifest.permissions.desktop)??[],[m]),F=!!(m!=null&&m.frontend&&(n!=null&&n.trim()));async function se(){if(!(!m||f)){S(!0);try{m.enablement.enabled?await Ia(m.definition.id,s("plugins.disabledByUserReason")):await Oa(m.definition.id);const M=await D(m.definition.id);await U(M||m.definition.id),h({title:m.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{S(!1)}}}async function ae(M){const p=(n==null?void 0:n.trim())??"";if(!(!m||!p||$)){j(M.id);try{await La(m.definition.id,M.id,p),await Promise.all([U(m.definition.id),G(m.definition.id)]),h({title:s("plugins.revokeGrantSuccess"),tone:"success"})}catch(q){h({title:q instanceof Error?q.message:s("plugins.revokeGrantFailed"),tone:"error"})}finally{j(null)}}}function ie(){const M=(n==null?void 0:n.trim())??"";!(m!=null&&m.frontend)||!M||(o(Da(M,m.definition.id)),r())}const B=e.jsxs("div",{className:"settings-plugin-manager-layout",children:[e.jsx(Z,{heading:s("settings.pluginManagementModalListTitle"),description:s("settings.pluginManagementModalListDescription"),className:"settings-plugin-modal-section",children:E?e.jsx("p",{className:"plugins-hint-text",children:s("plugins.loading")}):v.length===0?e.jsx(re,{title:s("plugins.emptyTitle"),description:s("plugins.emptyDescription"),compact:!0}):e.jsx(fe,{className:"settings-plugin-modal-list",children:v.map(M=>e.jsx(be,{as:"button",selected:b===M.id,label:M.name,description:`${M.id} · v${M.version}`,trailing:e.jsxs("div",{className:"settings-plugin-modal-tags",children:[e.jsx(ce,{tone:M.enabled?"success":"default",children:M.enabled?s("plugins.enabled"):s("plugins.disabled")}),M.hasFrontend?e.jsx(ce,{children:s("plugins.frontendTag")}):null,M.hasBackend?e.jsx(ce,{children:s("plugins.backendTag")}):null]}),onClick:()=>T(M.id)},M.id))})}),e.jsx(Z,{heading:s("settings.pluginManagementModalDetailTitle"),description:s("settings.pluginManagementModalDetailDescription"),className:"settings-plugin-modal-section settings-plugin-modal-detail-section",children:!b&&!E?e.jsx(re,{title:s("settings.pluginManagementSelectPluginTitle"),description:s("settings.pluginManagementSelectPluginDescription"),compact:!0}):x?e.jsx("p",{className:"plugins-hint-text",children:s("plugins.loading")}):m?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:m.manifest.name}),e.jsx("p",{children:m.manifest.description??m.definition.id})]}),e.jsxs("div",{className:"settings-plugin-modal-tags",children:[e.jsx(ce,{tone:m.enablement.enabled?"success":"default",children:m.enablement.enabled?s("plugins.enabled"):s("plugins.disabled")}),e.jsx(ce,{children:`v${m.manifest.version}`})]})]}),e.jsx(Z,{heading:s("plugins.summaryTitle"),description:s("plugins.summaryDescription"),children:e.jsxs(fe,{compact:!0,children:[e.jsx(be,{label:s("plugins.pluginIdLabel"),description:m.definition.id}),e.jsx(be,{label:s("plugins.installRootLabel"),description:m.definition.installRoot}),e.jsx(be,{label:s("plugins.runtimeLabel"),description:m.manifest.backend?`${s("plugins.backendTag")} · ${m.manifest.backend.mode??"on_demand"}`:s("plugins.frontendOnly")})]})}),e.jsx(Z,{heading:s("plugins.permissionTitle"),description:s("plugins.permissionDescription"),children:e.jsxs("div",{className:"settings-plugin-modal-tags",children:[e.jsx(ce,{tone:m.manifest.permissions.workspaceRead?"success":"default",children:m.manifest.permissions.workspaceRead?s("plugins.workspaceReadAllowed"):s("plugins.workspaceReadDenied")}),e.jsx(ce,{tone:m.manifest.permissions.network?"warning":"default",children:m.manifest.permissions.network?s("plugins.networkAllowed"):s("plugins.networkDenied")}),W.length>0?W.map(M=>e.jsx(ce,{children:M},M)):e.jsx(ce,{children:s("plugins.noDesktopPermission")})]})}),e.jsx(Ua,{grants:A,auditEvents:m.auditEvents,loading:k,revokingGrantId:$,onRevokeGrant:M=>{ae(M)}}),(H=(O=m.manifest.backend)==null?void 0:O.actions)!=null&&H.length?e.jsx(Z,{heading:s("plugins.actionTitle"),description:s("plugins.actionDescription"),children:e.jsx(fe,{compact:!0,children:m.manifest.backend.actions.map(M=>e.jsx(be,{label:M.title,description:`${M.id} · ${M.timeoutMs??3e4}ms`},M.id))})}):null,e.jsx(Z,{heading:s("plugins.runHistoryTitle"),description:s("plugins.runHistoryDescription"),children:I.length===0?e.jsx(re,{title:s("plugins.runHistoryEmptyTitle"),description:s("plugins.runHistoryEmptyDescription"),compact:!0}):e.jsx(fe,{compact:!0,children:I.slice(0,10).map(M=>e.jsx(be,{label:M.actionId??s("plugins.unknownAction"),description:`${M.status} · ${M.createdAt}`,trailing:M.errorCode?e.jsx(ce,{tone:"danger",children:M.errorCode}):null},M.id))})}),F?null:e.jsx("p",{className:"settings-plugin-modal-workspace-note",children:s("settings.pluginManagementWorkspaceRequired")}),e.jsxs(de,{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:[m.frontend?e.jsx("button",{type:"button",className:"secondary-button",disabled:!F,onClick:ie,children:s("plugins.openPlugin")}):null,e.jsx("button",{type:"button",className:m.enablement.enabled?"secondary-button":"primary-button",disabled:f,onClick:()=>{se()},children:m.enablement.enabled?s("plugins.disableAction"):s("plugins.enableAction")})]})]})]}):e.jsx(re,{title:s("plugins.detailMissingTitle"),description:s("plugins.detailMissingDescription"),compact:!0})})]});return a?e.jsx(Me,{open:t,title:s("settings.pluginManagementModalTitle"),description:s("settings.pluginManagementModalDescription"),height:"full",kind:"form",showHandle:!0,onClose:r,children:B}):e.jsx(Ce,{open:t,title:s("settings.pluginManagementModalTitle"),description:s("settings.pluginManagementModalDescription"),size:"xwide",layout:"list",bodyClassName:"settings-plugin-modal-body",onClose:r,children:B})}function mr(t,a){var n;return t&&a.some(r=>r.id===t)?t:((n=a[0])==null?void 0:n.id)??""}const Cn="secret://teable/main",hr=["manual","scheduled","event_driven"],Dn=["sessions","todos","tags"];function Mn({open:t,mobile:a,workspaceOptions:n=[],onClose:r}){var ut;const{showToast:o}=at(),[h,v]=l.useState("connection"),[w,b]=l.useState(null),[T,m]=l.useState(null),[C,I]=l.useState([]),[R,A]=l.useState({tags:[],sessions:[],todos:[]}),[N,E]=l.useState([]),[d,x]=l.useState({}),[u,k]=l.useState([]),[c,f]=l.useState([]),[S,$]=l.useState(!1),[j,D]=l.useState(!1),[U,G]=l.useState(!1),[W,F]=l.useState(!1),[se,ae]=l.useState(!1),[ie,B]=l.useState(null),[O,H]=l.useState(null),[M,p]=l.useState(qt(null)),[q,me]=l.useState(Ys([])),[V,oe]=l.useState({tags:Xs("tags"),sessions:Xs("sessions"),todos:Xs("todos")}),[Y,xe]=l.useState("sessions"),L=l.useRef(null),[J,te]=l.useState([]),[ue,K]=l.useState(null),[pe,ye]=l.useState(""),[Ae,je]=l.useState(!1),[Ee,ve]=l.useState([]),[Pe,Ze]=l.useState(!1),Be=l.useMemo(()=>{const g=new Set,y=[];return n.forEach(P=>{const ne=P.id.trim();!ne||g.has(ne)||(g.add(ne),y.push({id:ne,name:P.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(()=>fr(C,q),[C,q]),Se=l.useMemo(()=>{const g=new Set(J);return Ie.filter(y=>g.has(y.tableId))},[J,Ie]),X=l.useMemo(()=>Se.find(g=>g.tableId===ue)??Se[0]??null,[Se,ue]),Oe=V[Y],Ve=q.find(g=>g.sourceType===Y)??Ys([]).find(g=>g.sourceType===Y),Te=R[Y]??[],We=X?d[X.tableId]??[]:[],$e=(X==null?void 0:X.tableName)??"",we=l.useMemo(()=>Ie.filter(g=>!J.includes(g.tableId)),[J,Ie]),ze=l.useMemo(()=>u.map(g=>({key:g.id,tag:g})),[u]);l.useEffect(()=>{t&&(v("connection"),H(null),B(null),Le())},[t]),l.useEffect(()=>{p(qt(w))},[w]),l.useEffect(()=>{me(Ys((T==null?void 0:T.syncConfigs)??[]))},[T==null?void 0:T.syncConfigs]),l.useEffect(()=>{oe(br((T==null?void 0:T.syncConfigs)??[],N))},[T==null?void 0:T.syncConfigs,N]),l.useEffect(()=>{const g=q.map(y=>y.targetTableId.trim()).filter(Boolean);te(y=>{const P=Array.from(new Set([...y,...g]));return xr(y,P)?y:P})},[q]),l.useEffect(()=>{var g;t&&(ue&&Se.some(y=>y.tableId===ue)||K(((g=Se[0])==null?void 0:g.tableId)??null))},[Se,t,ue]),l.useEffect(()=>{var g;pe&&we.some(y=>y.tableId===pe)||ye(((g=we[0])==null?void 0:g.tableId)??"")},[we,pe]),l.useEffect(()=>{const g=(X==null?void 0:X.tableId.trim())??"";!t||!g||d[g]||i(g)},[t,X,d]),l.useEffect(()=>{!X||L.current===X.tableId||(L.current=X.tableId,X.assignedSourceType&&xe(X.assignedSourceType))},[X]);async function Le(){$(!0);try{const[g,y,P,ne,z,ge]=await Promise.all([ma(),ha(),ht(),pa(),ba(),fa({includeDisabled:!0}).catch(()=>({items:[],summary:{totalActiveTags:0,totalDisabledTags:0,totalRuleEnabledTags:0,totalBoundDocuments:0},status:{recomputeState:"idle",lastRecomputedAt:null,lastError:null}}))]);b(g),m(y),I(P),E(ne.mappings),f(z),A(ne.sourceFieldsByType),k(ge.items.filter(Ne=>Ne.parentId===null)),H(null)}catch(g){H(Je(g))}finally{$(!1)}}async function i(g){try{const y=await xa(g);x(P=>({...P,[g]:y}))}catch(y){H(Je(y))}}function _(){H(null),B(null),je(!1),r()}async function le(){G(!0),H(null),B(null);try{const g=await Na({baseUrl:M.baseUrl,spaceId:M.spaceId,baseId:M.baseId,authRef:M.authRef||Cn,authToken:M.authToken,enabled:M.enabled,mirrorMode:M.mirrorMode});b(g),B(s("settings.teableBindingSaved")),o({title:s("settings.teableBindingSaved"),tone:"success"}),await Le()}catch(g){const y=Je(g);H(y),o({title:y,tone:"error"})}finally{G(!1)}}async function _e(){D(!0),H(null),B(null);try{const g=await ht();I(g);const y=s("settings.teableConnectionTestSuccess",{tableCount:g.length});B(y),o({title:y,tone:"success"})}catch(g){const y=Je(g);H(y),o({title:y,tone:"error"})}finally{D(!1)}}function ns(g){te(y=>y.includes(g.tableId)?y:[...y,g.tableId]),K(g.tableId),d[g.tableId]||i(g.tableId)}function Ln(g){if(te(y=>y.filter(P=>P!==g)),ue===g){const y=J.find(P=>P!==g)??null;K(y)}}function In(){const g=Te.filter(y=>!Oe.items.some(P=>P.sourceField===y.key&&P.targetFieldId)).map(y=>y.key);ve(g.length>0?g:Te.map(y=>y.key)),je(!0)}async function On(){if(!X)return;const g=Te.filter(y=>Ee.includes(y.key)).map(jr);if(g.length===0){H(s("settings.teableFieldAutoCreateEmptyError"));return}Ze(!0),H(null),B(null);try{const y=await Sa({tableId:X.tableId,fields:g});Bn(y),await i(X.tableId),je(!1);const P=s("settings.teableFieldAutoCreateSuccess",{count:y.length});B(P),o({title:P,tone:"success"})}catch(y){const P=Je(y);H(P),o({title:P,tone:"error"})}finally{Ze(!1)}}async function Un(){if(X){F(!0),H(null),B(null);try{const y=(await ya({items:[{sourceType:Y,enabled:!0,targetTableId:X.tableId,scope:Ve.scope}]})).find(ne=>ne.sourceType===Y),P=(y==null?void 0:y.configId)??Oe.configId;await ja({items:[{configId:P,sourceType:Y,targetTableId:X.tableId,items:yr(Oe.items)}]}),B(s("settings.teableTableSyncSettingsSaved")),o({title:s("settings.teableTableSyncSettingsSaved"),tone:"success"}),await Le()}catch(g){const y=Je(g);H(y),o({title:y,tone:"error"})}finally{F(!1)}}}async function Rn(){ae(!0),H(null),B(null);try{const y=(await va({mirrorTypes:[Y]})).summary||s("settings.teableLatestTaskEmpty");B(y),o({title:y,tone:"success"}),await Le()}catch(g){const y=Je(g);H(y),o({title:y,tone:"error"})}finally{ae(!1)}}function Ue(g){me(y=>y.map(P=>P.sourceType===Y?g(P):P))}function Fn(g,y){const P=We.find(ne=>ne.fieldId===y)??null;oe(ne=>({...ne,[Y]:{...ne[Y],targetTableId:(X==null?void 0:X.tableId)??ne[Y].targetTableId,items:Te.map(z=>z.key!==g.key?ne[Y].items.find(ge=>ge.sourceField===z.key)??{sourceField:z.key,targetFieldId:"",targetFieldName:"",required:z.required}:{sourceField:z.key,targetFieldId:y,targetFieldName:(P==null?void 0:P.fieldName)??"",required:z.required}).filter(z=>z.targetFieldId)}}))}function Bn(g){oe(y=>{const P=new Map(y[Y].items.map(z=>[z.sourceField,z]));g.forEach(z=>{P.set(z.sourceField,{sourceField:z.sourceField,targetFieldId:z.targetFieldId,targetFieldName:z.targetFieldName,required:z.required})});const ne=Te.map(z=>P.get(z.key)??null).filter(z=>!!(z!=null&&z.targetFieldId));return{...y,[Y]:{...y[Y],targetTableId:(X==null?void 0:X.tableId)??y[Y].targetTableId,items:ne}}})}const Vn=e.jsx("div",{className:"settings-teable-tab-panel",children:e.jsxs(Z,{heading:s("settings.teableBindingSectionTitle"),description:s("settings.teableBindingSectionDescription"),children:[e.jsx(ee,{label:s("settings.teableEnabledLabel"),children:e.jsxs("div",{className:"settings-teable-switch-field",children:[e.jsx(he,{checked:M.enabled,label:s("settings.teableEnabledLabel"),semanticRole:"switch",onChange:g=>{p(y=>({...y,enabled:g}))}}),e.jsx("span",{className:"settings-teable-switch-caption",children:M.enabled?s("common.enabled"):s("common.disabled")})]})}),e.jsx(ee,{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=>p(y=>({...y,baseUrl:g.target.value}))})}),e.jsx(ee,{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=>p(y=>({...y,spaceId:g.target.value}))})}),e.jsx(ee,{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=>p(y=>({...y,baseId:g.target.value}))})}),e.jsx(ee,{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=>p(y=>({...y,authToken:g.target.value}))})}),e.jsx(ee,{label:s("settings.teableMirrorModeLabel"),htmlFor:"teable-mirror-mode",children:e.jsx("select",{id:"teable-mirror-mode",className:"settings-select",value:M.mirrorMode,onChange:g=>p(y=>({...y,mirrorMode:g.target.value})),children:hr.map(g=>e.jsx("option",{value:g,children:s(`settings.teableMirrorMode.${g}`)},g))})})]})}),_n=e.jsxs("div",{className:"settings-teable-tab-panel settings-teable-table-sync-layout",children:[e.jsx(Z,{className:"settings-teable-table-picker",heading:s("settings.teableTableSyncListTitle"),children:Ie.length===0?e.jsx(re,{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(ee,{label:s("settings.teableTableToAddLabel"),htmlFor:"teable-table-to-add",children:e.jsx("select",{id:"teable-table-to-add",className:"settings-select",value:pe,disabled:we.length===0,onChange:g=>ye(g.target.value),children:we.length===0?e.jsx("option",{value:"",children:s("settings.teableAllTablesAdded")}):we.map(g=>e.jsx("option",{value:g.tableId,children:g.tableName},g.tableId))})}),e.jsx("button",{type:"button",className:"secondary-button",disabled:we.length===0,onClick:()=>{const g=we.find(y=>y.tableId===pe)??we[0];g&&ns(g)},children:s("settings.teableAddSyncTableAction")})]}),Se.length===0?e.jsx(re,{title:s("settings.teableSelectSyncTableTitle"),description:s("settings.teableSelectSyncTableDescription"),compact:!0}):e.jsx(fe,{compact:!0,children:Se.map(g=>e.jsx(be,{selected:(X==null?void 0:X.tableId)===g.tableId,label:g.tableName,trailing:e.jsx("button",{type:"button",className:"secondary-button",onClick:y=>{y.stopPropagation(),Ln(g.tableId)},children:s("settings.teableRemoveSyncTableAction")}),role:"button",tabIndex:0,onClick:()=>K(g.tableId),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),K(g.tableId))}},g.tableId))})]})}),e.jsx(Z,{className:"settings-teable-table-sync-main",heading:s("settings.teableTableSyncConfigTitle"),description:s("settings.teableTableSyncConfigDescription"),children:X?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(ee,{label:s("settings.teableSyncSourceLabel"),htmlFor:"teable-sync-source",children:e.jsx("select",{id:"teable-sync-source",className:"settings-select",value:Y,onChange:g=>xe(g.target.value),children:Dn.map(g=>e.jsx("option",{value:g,children:s(`settings.teableSyncSource.${g}`)},g))})}),qn(),e.jsx(Z,{heading:s("settings.teableFieldMappingTitle"),description:s("settings.teableFieldMappingInlineDescription"),actions:Te.length>0?e.jsx("button",{type:"button",className:"secondary-button",disabled:Pe,onClick:In,children:Pe?s("common.loading"):s("settings.teableFieldAutoCreateAction")}):null,children:Te.length===0?e.jsx("div",{className:"settings-field-hint",children:s("settings.teableSourceFieldsEmpty")}):e.jsx(fe,{compact:!0,children:Te.map(g=>{const y=Oe.items.find(P=>P.sourceField===g.key)??{sourceField:g.key,targetFieldId:"",required:g.required};return e.jsx(be,{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:P=>Fn(g,P.target.value),children:[e.jsx("option",{value:"",children:s("settings.teableFieldTargetPlaceholder")}),We.map(P=>e.jsx("option",{value:P.fieldId,children:P.fieldName},P.fieldId))]})},g.key)})})}),e.jsx(Z,{heading:s("settings.teableSyncActionSectionTitle"),description:s("settings.teableSyncActionSectionDescription"),children:e.jsx(fe,{compact:!0,children:e.jsx(be,{label:s("settings.teableLatestTaskTitle"),description:((ut=T==null?void 0:T.latestMirrorSyncTask)==null?void 0:ut.summary)??s("settings.teableLatestTaskEmpty"),trailing:T!=null&&T.latestMirrorSyncTask?e.jsx(ce,{tone:Ht(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:W||S,onClick:()=>{Un()},children:W?s("common.loading"):s("settings.teableSaveTableSyncSettingsAction")}),e.jsx("button",{type:"button",className:"primary-button",disabled:se||S,onClick:()=>{Rn()},children:se?s("common.loading"):s("settings.teableSyncNowAction")})]})]}):e.jsx(re,{title:s("settings.teableSelectSyncTableTitle"),description:s("settings.teableSelectSyncTableDescription"),compact:!0})})]});function qn(){if(Y==="sessions"){const P=Ve.scope,ne=Array.isArray(P.workspaceIds)?P.workspaceIds:[];return e.jsxs(ee,{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:P.mode!=="selected_workspaces",onChange:()=>Ue(z=>({...z,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:P.mode==="selected_workspaces",onChange:()=>Ue(z=>({...z,scope:{mode:"selected_workspaces",workspaceIds:[]}}))}),e.jsx("span",{children:s("settings.teableWorkspaceScopeSelected")})]})]}),P.mode==="selected_workspaces"?ot(ne,z=>{Ue(ge=>({...ge,scope:{mode:"selected_workspaces",workspaceIds:z}}))}):null]})}if(Y==="todos"){const P=Ve.scope,ne=Array.isArray(P.workspaceIds)?P.workspaceIds:[],z=ne.length>0;return e.jsxs("div",{className:"settings-teable-config-fields",children:[e.jsx(ee,{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:P.includeWorkspaceTodos!==!1,onChange:ge=>Ue(Ne=>({...Ne,scope:{...P,includeWorkspaceTodos:ge.target.checked,includeAffairsTodos:P.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:P.includeAffairsTodos!==!1,onChange:ge=>Ue(Ne=>({...Ne,scope:{...P,includeWorkspaceTodos:P.includeWorkspaceTodos!==!1,includeAffairsTodos:ge.target.checked,workspaceIds:ne}}))}),e.jsx("span",{className:"settings-teable-choice-copy",children:e.jsx("strong",{children:s("settings.teableTodoAffairsSource")})})]})]})}),e.jsxs(ee,{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:!z,onChange:()=>Ue(ge=>({...ge,scope:{includeWorkspaceTodos:P.includeWorkspaceTodos!==!1,includeAffairsTodos:P.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:z,onChange:()=>Ue(ge=>({...ge,scope:{includeWorkspaceTodos:P.includeWorkspaceTodos!==!1,includeAffairsTodos:P.includeAffairsTodos!==!1,workspaceIds:Be[0]?[Be[0].id]:[]}}))}),e.jsx("span",{children:s("settings.teableWorkspaceScopeSelected")})]})]}),z?ot(ne,ge=>{Ue(Ne=>({...Ne,scope:{includeWorkspaceTodos:P.includeWorkspaceTodos!==!1,includeAffairsTodos:P.includeAffairsTodos!==!1,workspaceIds:ge}}))}):null]})]})}const g=Ve.scope,y=Array.isArray(g.rootTagIds)?g.rootTagIds:[];return e.jsx(ee,{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(P=>{const ne=y.includes(P.tag.id);return e.jsxs("label",{className:"settings-teable-choice-row",children:[e.jsx("input",{type:"checkbox",checked:ne,onChange:z=>{const ge=z.target.checked?[...y,P.tag.id]:y.filter(Ne=>Ne!==P.tag.id);Ue(Ne=>({...Ne,scope:{rootTagIds:Array.from(new Set(ge))}}))}}),e.jsxs("span",{className:"settings-teable-choice-copy",children:[e.jsx("strong",{children:P.tag.path}),e.jsx("small",{children:s("shell.affairsTagTreeDocumentCount",{count:P.tag.documentCount})})]})]},P.key)})})})}function ot(g,y){return Be.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:Be.map(P=>{const ne=g.includes(P.id);return e.jsxs("label",{className:"settings-teable-choice-row",children:[e.jsx("input",{type:"checkbox",checked:ne,onChange:z=>{const ge=z.target.checked?[...g,P.id]:g.filter(Ne=>Ne!==P.id);y(Array.from(new Set(ge)))}}),e.jsx("span",{className:"settings-teable-choice-copy",children:e.jsx("strong",{children:P.name})})]},P.id)})})}function ct(){const g=e.jsxs("div",{className:"settings-teable-field-picker",children:[e.jsx(Z,{heading:s("settings.teableFieldAutoCreateModalSectionTitle"),description:s("settings.teableFieldAutoCreateModalSectionDescription",{table:$e}),children:e.jsx(fe,{compact:!0,children:Te.map(y=>{const P=Ee.includes(y.key),ne=Oe.items.find(z=>z.sourceField===y.key&&z.targetFieldId);return e.jsx(be,{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:P,onChange:z=>{ve(ge=>z.target.checked?Array.from(new Set([...ge,y.key])):ge.filter(Ne=>Ne!==y.key))}})},y.key)})})}),e.jsxs(de,{align:"end",stack:!0,children:[e.jsx("button",{type:"button",className:"secondary-button",onClick:()=>je(!1),children:s("common.cancel")}),e.jsx("button",{type:"button",className:"primary-button",disabled:Pe||Ee.length===0,onClick:()=>{On()},children:Pe?s("common.loading"):s("settings.teableFieldAutoCreateConfirmAction")})]})]});return a?e.jsx(Me,{open:Ae,title:s("settings.teableFieldAutoCreateModalTitle"),description:s("settings.teableFieldAutoCreateModalDescription"),height:"three-quarter",kind:"form",showHandle:!0,onClose:()=>je(!1),children:g}):e.jsx(Ce,{open:Ae,title:s("settings.teableFieldAutoCreateModalTitle"),description:s("settings.teableFieldAutoCreateModalDescription"),size:"compact",layout:"form",onClose:()=>je(!1),children:g})}const Hn=e.jsx("div",{className:"settings-teable-tab-panel",children:e.jsx(Z,{heading:s("settings.teableSyncLogsTitle"),description:s("settings.teableSyncLogsDescription"),actions:e.jsx("button",{type:"button",className:"secondary-button",disabled:S,onClick:()=>{Le()},children:S?s("common.loading"):s("settings.teableSyncLogsRefreshAction")}),children:c.length===0?e.jsx(re,{title:s("settings.teableSyncLogsEmptyTitle"),description:s("settings.teableSyncLogsEmptyDescription"),compact:!0}):e.jsx(fe,{compact:!0,children:c.map(g=>e.jsx(be,{label:g.summary,description:Nr(g),trailing:e.jsx(ce,{tone:Ht(g.state),children:s(`settings.teableTaskState.${g.state}`)})},g.logId))})})});function Wn(){return h==="connection"?Vn:h==="syncLogs"?Hn:_n}const dt=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:()=>v(g.id),children:g.label},g.id))}),Wn(),ie?e.jsx("p",{className:"settings-release-status",children:ie}):null,O?e.jsx("p",{className:"settings-release-status",children:O}):null,h==="connection"?e.jsxs(de,{className:"settings-teable-modal-actions",align:"end",stack:!0,children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:j||S,onClick:()=>{_e()},children:j?s("common.loading"):s("settings.teableTestConnectionAction")}),e.jsx("button",{type:"button",className:"primary-button",disabled:U||S,onClick:()=>{le()},children:U?s("common.loading"):s("settings.teableSaveBindingAction")}),e.jsx("button",{type:"button",className:"secondary-button",onClick:_,children:s("common.cancel")})]}):null]});return a?e.jsxs(e.Fragment,{children:[e.jsx(Me,{open:t,title:s("settings.teableModalTitle"),height:"full",kind:"form",showHandle:!0,onClose:_,children:dt}),ct()]}):e.jsxs(e.Fragment,{children:[e.jsx(Ce,{open:t,title:s("settings.teableModalTitle"),size:"regular",layout:"form",className:"settings-teable-modal",bodyClassName:"settings-teable-modal-body",onClose:_,children:dt}),ct()]})}function qt(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)??Cn,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 Dn.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)??pr(n)}})}function pr(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 br(t,a){const n=new Map(t.map(o=>[o.sourceType,o])),r=new Map(a.map(o=>[o.sourceType,o]));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 fr(t,a){const n=new Map;return a.forEach(r=>{const o=r.targetTableId.trim();o&&n.set(o,r.sourceType)}),t.map(r=>({tableId:r.tableId,tableName:r.tableName,assignedSourceType:n.get(r.tableId)??null})).sort((r,o)=>r.tableName.localeCompare(o.tableName,"zh-Hans-CN"))}function xr(t,a){return t.length===a.length&&t.every((n,r)=>n===a[r])}function yr(t){return t.filter(a=>a.sourceField.trim()&&a.targetFieldId.trim()&&a.targetFieldName.trim())}function jr(t){return{sourceField:t.key,fieldName:t.label,fieldType:vr(t.type),required:t.required}}function vr(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 Nr(t){var v;const a=t.sourceTypes.map(w=>s(`settings.teableSyncSource.${w}`)).join("、")||s("common.none"),n=s(`settings.teableSyncLogTrigger.${t.triggerType}`),r=wr(t.finishedAt??t.updatedAt??t.createdAt),o=Sr(t),h=[s("settings.teableSyncLogDescription",{trigger:n,source:a,time:r})];return o&&h.push(o),(v=t.errorDetail)!=null&&v.trim()&&h.push(t.errorDetail.trim()),h.join(" · ")}function Sr(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 wr(t){if(!t)return s("common.none");const a=new Date(t);return Number.isNaN(a.getTime())?t:a.toLocaleString()}function Ht(t){switch(t){case"succeeded":return"success";case"partial_failed":case"queued":case"running":return"warning";case"failed":return"danger";default:return"default"}}function Wt({title:t,description:a,actions:n,content:r,className:o}){return e.jsx(wa,{className:o,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 An={start:43e3,end:47999};function Tr(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 kr(t){return Tr(t)?t==="model-management"||t==="provider-management"?"ability-management":t:null}function Cr(t){return t==="en-US"?s("locale.enUS"):s("locale.zhCN")}function Dr(t){switch(t){case"acceptEdits":return s("settings.permissionModeAcceptEdits");case"bypassPermissions":return s("settings.permissionModeBypassPermissions");default:return s("settings.permissionModeDefault")}}function Mr(){const t=it(),{theme:a,selectedTheme:n,autoTheme:r,setTheme:o,setAutoTheme:h}=ta(),v=tt(V=>V),w=Cs(V=>V.profile.language),b=Cs(V=>V.profile.defaultPermissionMode),T=as(V=>V.sessionDisplaySortMode),m=as(V=>V.showSystemFiles),C=as(V=>V.notificationPreferences.notifyOnPermissionRequest),I=as(V=>V.notificationPreferences.notifyOnSessionCompleted),R=as(V=>V.notificationPreferences.notifyOnSessionFailed),A={language:w,defaultPermissionMode:b,debugPortPools:Cs(V=>V.profile.debugPortPools)??An},N=hs(),E=Gn(v.platform),d=E,x=nt(v)??"",[u,k]=l.useState(x);l.useEffect(()=>{k(x)},[x]);function c(){Qn.clear(),Ds.resetToLocalFallback(),t("/login",{replace:!0})}function f(V){o(V)}function S(V){h(V)}function $(V){try{return Jn(V)}catch{return null}}const j=$(u),D=j!==null&&j!==x;function U(V){V.preventDefault(),j&&Re.update({hosts:v.hosts.map(oe=>oe.id===v.activeHostId?{...oe,baseUrl:j,updatedAt:new Date().toISOString()}:oe)})}const G=[{value:"default",label:s("settings.permissionModeDefault")},{value:"acceptEdits",label:s("settings.permissionModeAcceptEdits")},{value:"bypassPermissions",label:s("settings.permissionModeBypassPermissions")}],W=[{value:"createdAt",label:s("settings.sessionSortModeCreatedAt")},{value:"updatedAt",label:s("settings.sessionSortModeUpdatedAt")},{value:"title",label:s("settings.sessionSortModeTitle")}];function F(V){Re.update({autoReconnect:V})}function se(V){Re.update({autoCheckUpdate:V})}function ae(V){Re.update({autoDownloadUpdate:V})}function ie(V){Re.update({releaseChannel:V,betaChannelConsentAcceptedAt:V==="beta"?new Date().toISOString():null})}function B(V){const oe=V==="acceptEdits"||V==="bypassPermissions"?V:"default";Ds.updateProfile({defaultPermissionMode:oe}).catch(()=>{})}function O(V){const oe=V==="updatedAt"||V==="title"?V:"createdAt";is.setSessionDisplaySortMode(oe)}function H(V){is.setShowSystemFiles(V)}function M(V){is.setNotificationPreferences({notifyOnPermissionRequest:V})}function p(V){is.setNotificationPreferences({notifyOnSessionCompleted:V})}function q(V){is.setNotificationPreferences({notifyOnSessionFailed:V})}async function me(V){await Ds.updateProfile({debugPortPools:V})}return{platform:N,theme:a,selectedTheme:n,autoTheme:r,applyTheme:f,applyAutoTheme:S,runtimeConfig:v,accountPreferences:A,sessionDisplaySortMode:T,showSystemFiles:m,notifyOnPermissionRequest:C,notifyOnSessionCompleted:I,notifyOnSessionFailed:R,showServerSettings:d,canConfigureServerAddress:E,hostBaseUrlDraft:u,setHostBaseUrlDraft:k,canSaveHostBaseUrl:D,permissionModeOptions:G,sessionDisplaySortModeOptions:W,handleHostBaseUrlSubmit:U,handleLogout:c,updateAutoReconnect:F,updateAutoCheckUpdate:se,updateAutoDownloadUpdate:ae,updateReleaseChannel:ie,updateDefaultPermissionMode:B,updateSessionDisplaySortMode:O,updateShowSystemFiles:H,updateNotifyOnPermissionRequest:M,updateNotifyOnSessionCompleted:p,updateNotifyOnSessionFailed:q,updateDebugPortPools:me}}function uo(){const t=Mr(),a=sa();return t.platform.isMobile?e.jsx(Er,{model:t,appVersion:a}):e.jsx(Ar,{model:t,appVersion:a})}function Ar({model:t,appVersion:a}){var ue;const[n,r]=l.useState(!1),[o,h]=l.useState(!1),[v,w]=l.useState(!1),[b,T]=l.useState(!1),[m,C]=l.useState(!1),{currentWorkspaceId:I,navigationGroups:R}=tn(),{theme:A,selectedTheme:N,autoTheme:E,applyTheme:d,applyAutoTheme:x,runtimeConfig:u,accountPreferences:k,sessionDisplaySortMode:c,showSystemFiles:f,notifyOnPermissionRequest:S,notifyOnSessionCompleted:$,notifyOnSessionFailed:j,showServerSettings:D,hostBaseUrlDraft:U,setHostBaseUrlDraft:G,canSaveHostBaseUrl:W,permissionModeOptions:F,sessionDisplaySortModeOptions:se,platform:ae,handleHostBaseUrlSubmit:ie,handleLogout:B,updateAutoReconnect:O,updateAutoCheckUpdate:H,updateAutoDownloadUpdate:M,updateReleaseChannel:p,updateDefaultPermissionMode:q,updateSessionDisplaySortMode:me,updateShowSystemFiles:V,updateNotifyOnPermissionRequest:oe,updateNotifyOnSessionCompleted:Y,updateNotifyOnSessionFailed:xe,updateDebugPortPools:L}=t,J=I??((ue=R[0])==null?void 0:ue.workspace.id)??null,te=R.map(K=>{var pe;return{id:K.workspace.id,name:((pe=K.workspace.name)==null?void 0:pe.trim())||K.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(Yt,{})})]}),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(he,{checked:E,label:s("settings.autoTheme"),onChange:x})]}),e.jsx("span",{className:"settings-theme-note",children:s("settings.autoThemeDescription")})]}),e.jsx("div",{className:"theme-selector",children:Xt.map(K=>e.jsxs("button",{type:"button",className:`theme-card ${N===K.id&&!E?"active":""}`,"aria-pressed":N===K.id&&!E,disabled:E,onClick:()=>d(K.id),children:[e.jsx("span",{className:"theme-preview",style:{background:K.color}}),e.jsx("span",{className:"theme-label",children:en(K)}),N===K.id&&!E?e.jsx("span",{className:"theme-check",children:"✓"}):null]},K.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:c,onChange:K=>me(K.target.value),children:se.map(K=>e.jsx("option",{value:K.value,children:K.label},K.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(he,{checked:f,label:s("settings.showSystemFiles"),onChange:V})})]})]})]}),D?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:ie,children:[e.jsx("input",{"aria-label":s("settings.serverAddress"),className:"settings-text-input",value:U,onChange:K=>G(K.target.value)}),e.jsx("button",{className:"settings-button",disabled:!W,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(he,{checked:u.autoReconnect,label:s("settings.autoReconnect"),onChange:O})})]})]})]}):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(dn,{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:()=>C(!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(Pn,{})})]}),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(un,{})})]}),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(mn,{})})]})})]}),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:k.defaultPermissionMode,onChange:K=>q(K.target.value),children:F.map(K=>e.jsx("option",{value:K.value,children:K.label},K.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(xn,{})})]}),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(vn,{})})]}),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(he,{checked:S,label:s("settings.notifyOnPermissionRequest"),onChange:oe})})]}),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(he,{checked:$,label:s("settings.notifyOnSessionCompleted"),onChange:Y})})]}),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(he,{checked:j,label:s("settings.notifyOnSessionFailed"),onChange:xe})})]})]})]}),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(En,{value:k.debugPortPools,onSave:L})})]}),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:[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.releaseChannel")}),e.jsx("span",{className:"settings-row-description",children:s("settings.releaseChannelDescription")})]}),e.jsx("div",{className:"settings-row-control",children:e.jsxs("select",{"aria-label":s("settings.releaseChannel"),className:"settings-select",value:u.releaseChannel,onChange:K=>{const pe=K.target.value;pe==="beta"?T(!0):p(pe)},children:[e.jsx("option",{value:"stable",children:s("settings.releaseChannelStable")}),e.jsx("option",{value:"beta",children:s("settings.releaseChannelBeta")})]})})]}),ae.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(rn,{})})]}):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(Nn,{})})]}),ae.isWeb?null:e.jsxs(e.Fragment,{children:[ae.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(he,{checked:u.autoCheckUpdate,label:s("settings.autoCheckUpdate"),onChange:H})})]}),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(he,{checked:u.autoDownloadUpdate,label:s("settings.autoDownloadUpdate"),onChange:M})})]})]}):null,ae.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(ln,{})})]})]})]})]}),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:B,type:"button",children:s("common.logout")})]})]}),e.jsx(Ba,{isOpen:n,onClose:()=>r(!1)}),e.jsx(Tn,{open:o,mobile:!1,onClose:()=>h(!1)}),e.jsx(kn,{open:v,mobile:!1,workspaceId:J,onClose:()=>w(!1)}),e.jsx(Mn,{open:m,mobile:!1,workspaceOptions:te,onClose:()=>C(!1)}),e.jsx(Sn,{open:b,mobile:!1,onClose:()=>T(!1),onConfirm:()=>{p("beta"),T(!1)}})]})}function Pn(){const t=Ta(!0),[a,n]=l.useState(!1),[r,o]=l.useState(null),[h,v]=l.useState(null);async function w(b){if(!a){n(!0),o(null),v(null);try{await ka(b),o(b?s("settings.affairsLibraryCapabilityEnableSuccess"):s("settings.affairsLibraryCapabilityDisableSuccess"))}catch(T){v(Pr(T))}finally{n(!1)}}}return e.jsxs("div",{className:"settings-affairs-library-capability-control",children:[e.jsx(he,{checked:t.enabled,label:s("settings.affairsLibraryCapabilityToggleLabel"),semanticRole:"switch",onChange:b=>{w(b)}}),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 Pr(t){return t instanceof Error&&t.message.trim()?t.message:s("settings.affairsLibraryCapabilitySaveFailed")}function Er({model:t,appVersion:a}){const n=it(),{section:r}=na(),o=kr(r),h=[{id:"appearance",title:s("settings.appearance"),description:s("settings.appearanceSectionSummary"),value:Cr(t.accountPreferences.language),icon:e.jsx(_r,{})}];return t.showServerSettings&&h.push({id:"server-connection",title:s("settings.serverConnection"),description:s("settings.serverConnectionSectionSummary"),value:nt(t.runtimeConfig)??"",icon:e.jsx(qr,{})}),h.push({id:"ability-management",title:s("settings.abilityManagement"),description:s("settings.abilityManagementSectionSummary"),value:s("settings.abilityManagementNavValue"),icon:e.jsx($r,{})},{id:"channels-management",title:s("settings.channelsManagement"),description:s("settings.channelsManagementSectionSummary"),value:s("settings.channelsManagementNavValue"),icon:e.jsx(zr,{})},{id:"remote-access",title:s("settings.remoteAccess"),description:s("settings.remoteAccessSectionSummary"),value:s("settings.remoteAccessNavValue"),icon:e.jsx(Wr,{})},{id:"security-privacy",title:s("settings.securityPrivacy"),description:s("settings.securityPrivacySectionSummary"),value:Dr(t.accountPreferences.defaultPermissionMode),icon:e.jsx(Kr,{})},{id:"software-update",title:s("settings.softwareUpdate"),description:s("settings.softwareUpdateSectionSummary"),value:t.platform.isWeb?s("settings.serverUpdate"):s("settings.updateOneClickValue"),icon:e.jsx(Hr,{})}),(o?h.find(w=>w.id===o)??null:null)?e.jsxs("div",{className:"settings-page settings-page-mobile mobile-page-scroll-root mobile-page-with-top-header",children:[e.jsx(Wt,{title:s("settings.title")}),e.jsxs("div",{className:"settings-mobile-container",children:[o==="appearance"?e.jsx(Lr,{model:t}):null,o==="ability-management"?e.jsx(Fr,{}):null,o==="channels-management"?e.jsx(Br,{}):null,o==="server-connection"&&t.showServerSettings?e.jsx(Ir,{model:t}):null,o==="remote-access"?e.jsx(Rr,{model:t}):null,o==="security-privacy"?e.jsx(Or,{model:t}):null,o==="software-update"?e.jsx(Vr,{model:t}):null]}),e.jsx(zt,{onLogout:t.handleLogout})]}):e.jsxs("div",{className:"settings-page settings-page-mobile mobile-page-scroll-root mobile-page-with-top-header",children:[e.jsx(Wt,{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(Gr,{})]})]},w.id))})}),e.jsx("div",{className:"settings-footer settings-footer-mobile",children:e.jsxs("span",{className:"settings-version",children:["CodingNS v",a]})})]}),e.jsx(zt,{onLogout:t.handleLogout})]})}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.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(Yt,{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(he,{checked:t.autoTheme,label:s("settings.autoTheme"),onChange:t.applyAutoTheme})]}),Xt.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:en(a)})]}),e.jsx("span",{className:"settings-mobile-choice-indicator","aria-hidden":"true",children:n?e.jsx(Jr,{}):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(he,{checked:t.showSystemFiles,label:s("settings.showSystemFiles"),onChange:t.updateShowSystemFiles})]})]})]})]})}function Ir({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(he,{checked:t.runtimeConfig.autoReconnect,label:s("settings.autoReconnect"),onChange:t.updateAutoReconnect})]})})]})]})}function Or({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(xn,{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(vn,{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(En,{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(he,{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(he,{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(he,{checked:t.notifyOnSessionFailed,label:s("settings.notifyOnSessionFailed"),onChange:t.updateNotifyOnSessionFailed})]})]})]})]})}function En(t){const[a,n]=l.useState(()=>$t(t.value)),[r,o]=l.useState(!1),[h,v]=l.useState(null),[w,b]=l.useState(!1);l.useEffect(()=>{n($t(t.value))},[t.value]);async function T(){v(null),b(!1);let m;try{m=Ur(a)}catch(C){v(C instanceof Error?C.message:s("settings.debugPortPoolSaveFailed"));return}try{o(!0),await t.onSave(m),b(!0)}catch(C){v(C instanceof Error?C.message:s("settings.debugPortPoolSaveFailed"))}finally{o(!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:m=>{const C=m.target.value;n(I=>({...I,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:m=>{const C=m.target.value;n(I=>({...I,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 $t(t){const a=t??An;return{start:String(a.start),end:String(a.end)}}function Ur(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 Rr({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(Tn,{open:a,mobile:!0,onClose:()=>n(!1)})]})}function Fr(){var b;const[t,a]=l.useState(!1),[n,r]=l.useState(!1),{currentWorkspaceId:o,navigationGroups:h}=tn(),v=o??((b=h[0])==null?void 0:b.workspace.id)??null,w=h.map(T=>{var m;return{id:T.workspace.id,name:((m=T.workspace.name)==null?void 0:m.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(dn,{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(Pn,{})]})]}),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(un,{})]}),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(kn,{open:t,mobile:!0,workspaceId:v,onClose:()=>a(!1)}),e.jsx(Mn,{open:n,mobile:!0,workspaceOptions:w,onClose:()=>r(!1)})]})}function Br(){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(mn,{})]})]})}function Vr({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.softwareUpdate")}),e.jsx("p",{className:"settings-mobile-group-note",children:s("settings.softwareUpdateSectionSummary")}),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.releaseChannel")}),e.jsx("span",{className:"settings-mobile-row-description",children:s("settings.releaseChannelDescription")})]}),e.jsxs("select",{"aria-label":s("settings.releaseChannel"),className:"settings-select settings-mobile-select",value:t.runtimeConfig.releaseChannel,onChange:r=>{const o=r.target.value;o==="beta"?n(!0):t.updateReleaseChannel(o)},children:[e.jsx("option",{value:"stable",children:s("settings.releaseChannelStable")}),e.jsx("option",{value:"beta",children:s("settings.releaseChannelBeta")})]})]})})]}),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(rn,{})})]}):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(Nn,{})})]}),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(he,{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(he,{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(ln,{})})]}),e.jsx(Sn,{open:a,mobile:!0,onClose:()=>n(!1),onConfirm:()=>{t.updateReleaseChannel("beta"),n(!1)}})]})}function zt({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 _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.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 qr(){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 Hr(){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 Wr(){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 $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:"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 zr(){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 Kr(){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 Gr(){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 Jr(){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{uo as SettingsPage};
|