ltcai 10.6.2 → 10.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +15 -14
  2. package/docs/CHANGELOG.md +19 -0
  3. package/docs/COMMUNITY_AND_PLUGINS.md +1 -1
  4. package/docs/DEVELOPMENT.md +1 -1
  5. package/docs/ONBOARDING.md +1 -1
  6. package/docs/OPERATIONS.md +1 -1
  7. package/docs/TRUST_MODEL.md +1 -1
  8. package/docs/WHY_LATTICE.md +1 -1
  9. package/docs/kg-schema.md +1 -1
  10. package/lattice_brain/__init__.py +1 -1
  11. package/lattice_brain/runtime/multi_agent.py +1 -1
  12. package/latticeai/__init__.py +1 -1
  13. package/latticeai/core/legacy_compatibility.py +1 -1
  14. package/latticeai/core/marketplace.py +1 -1
  15. package/latticeai/core/workspace_os_constants.py +1 -1
  16. package/latticeai/services/architecture_readiness.py +1 -1
  17. package/latticeai/services/product_readiness.py +1 -1
  18. package/package.json +1 -1
  19. package/scripts/check_current_release_docs.mjs +1 -1
  20. package/src-tauri/Cargo.lock +1 -1
  21. package/src-tauri/Cargo.toml +1 -1
  22. package/src-tauri/tauri.conf.json +1 -1
  23. package/static/app/asset-manifest.json +38 -38
  24. package/static/app/assets/{Act-aNud-lKL.js → Act-05uZSgyw.js} +1 -1
  25. package/static/app/assets/{AdminConsole-QiCTH68K.js → AdminConsole-C8yz1Cs_.js} +1 -1
  26. package/static/app/assets/{Brain-CMFh5q6k.js → Brain-jjMYTdnU.js} +1 -1
  27. package/static/app/assets/BrainHome-D3t45_D4.js +2 -0
  28. package/static/app/assets/{BrainSignals-RVMlmTGC.js → BrainSignals-BYxDqBH3.js} +1 -1
  29. package/static/app/assets/{Capture-DEBo-0vZ.js → Capture-DKgu7fB0.js} +1 -1
  30. package/static/app/assets/{CommandPalette-bW5WxWWZ.js → CommandPalette-Cj7z-qUE.js} +1 -1
  31. package/static/app/assets/{Library-5gFexm83.js → Library-CO76FWeO.js} +1 -1
  32. package/static/app/assets/{LivingBrain-FlHFfu9i.js → LivingBrain-CTokkZn1.js} +1 -1
  33. package/static/app/assets/{ProductFlow-CFUNDOHu.js → ProductFlow-Bmted2ys.js} +1 -1
  34. package/static/app/assets/{ReviewCard-BHj86h2Z.js → ReviewCard-uAII_l9v.js} +1 -1
  35. package/static/app/assets/{System-CeNHoZRu.js → System-PUMzDmof.js} +1 -1
  36. package/static/app/assets/{activity-7_ZmZqN0.js → activity-C_7182GG.js} +1 -1
  37. package/static/app/assets/arrow-left-BQCpWR37.js +1 -0
  38. package/static/app/assets/{bot-D1gX4xks.js → bot-CkrHFdUl.js} +1 -1
  39. package/static/app/assets/{brain-Dn_bDfl4.js → brain-CdPX7svt.js} +1 -1
  40. package/static/app/assets/{button-DPFZ9lGw.js → button-Ic6omIbs.js} +1 -1
  41. package/static/app/assets/{circle-pause-B2P72YOO.js → circle-pause-DBaaUR08.js} +1 -1
  42. package/static/app/assets/{circle-play-BiC8z2vg.js → circle-play-Dz0OLYN9.js} +1 -1
  43. package/static/app/assets/{cpu-Cx-wRR_V.js → cpu-N8uE9ono.js} +1 -1
  44. package/static/app/assets/{download-CKxlzxsK.js → download-CCjhOjms.js} +1 -1
  45. package/static/app/assets/{folder-open-Bbjju0tt.js → folder-open-Bld9TtHp.js} +1 -1
  46. package/static/app/assets/{hard-drive-Bon1VBvq.js → hard-drive-BMIqDSyY.js} +1 -1
  47. package/static/app/assets/{index-mLP0-YNO.js → index-yNtiRyw3.js} +3 -3
  48. package/static/app/assets/{input-DrMc0Xns.js → input-DW1tXtc0.js} +1 -1
  49. package/static/app/assets/{permissionCopy-BGUsI7vw.js → permissionCopy-Djpwn54H.js} +1 -1
  50. package/static/app/assets/{primitives-CEMTjBz1.js → primitives-B6WtkLgB.js} +1 -1
  51. package/static/app/assets/search-CkHYuKpY.js +1 -0
  52. package/static/app/assets/{share-2-D7THHq5K.js → share-2-DR5L1qRc.js} +1 -1
  53. package/static/app/assets/{shield-alert-BoU4_8r9.js → shield-alert-CVE5eXsl.js} +1 -1
  54. package/static/app/assets/{textarea-rU1Lb7ia.js → textarea-DdaVFgvk.js} +1 -1
  55. package/static/app/assets/{useFocusTrap-BgvK4Nkx.js → useFocusTrap-B5TyGaiB.js} +1 -1
  56. package/static/app/assets/{useQuery-CT2ChyuU.js → useQuery-CiRdTQlD.js} +1 -1
  57. package/static/app/assets/{users-DlbfHBQV.js → users-pZqCRxdD.js} +1 -1
  58. package/static/app/assets/utils-C3rXoa-U.js +4 -0
  59. package/static/app/assets/{workspace-ClDBz_0f.js → workspace-DfxKEttN.js} +1 -1
  60. package/static/app/index.html +3 -3
  61. package/static/sw.js +1 -1
  62. package/static/app/assets/BrainHome-B4Ar3atu.js +0 -2
  63. package/static/app/assets/arrow-left-Dv2Tiwhe.js +0 -1
  64. package/static/app/assets/search-HsIji1wY.js +0 -1
  65. package/static/app/assets/utils-fEGWreKB.js +0 -7
@@ -1 +1 @@
1
- import{S as e,_ as t,b as n,c as r,d as i,g as a,m as o,o as s,t as c,y as l}from"./utils-fEGWreKB.js";import{r as u,t as d}from"./useQuery-CT2ChyuU.js";import{t as f}from"./workspace-ClDBz_0f.js";import{_ as p,a as m,c as h,d as g,g as _,h as v,i as y,l as b,m as x,n as S,p as C,r as w,s as T,t as E,u as D,v as O}from"./primitives-CEMTjBz1.js";import{t as k}from"./input-DrMc0Xns.js";import{a as A,i as j,n as M,r as N,t as P}from"./permissionCopy-BGUsI7vw.js";import{t as F}from"./shield-alert-BoU4_8r9.js";import{t as I}from"./users-DlbfHBQV.js";import{h as ee,i as L,t as te,u as R}from"./index-mLP0-YNO.js";import{t as z}from"./button-DPFZ9lGw.js";var ne=a(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),B=e(n()),V=l(),H={low:`success`,medium:`warning`,high:`danger`};function re(e,t){return t===`ko`&&e.label_ko||e.label}function U(e,t){return t===`ko`&&e.summary_ko||e.summary}function W(e,t){return t===`ko`&&e.warning_ko||e.warning||``}function ie(){let e=u(),n=t(e=>e.language),[r,a]=B.useState(null),[s,c]=B.useState(!1),[l,m]=B.useState(``),h=d({queryKey:[`networkBoundary`],queryFn:i.networkBoundary}),g=f({mutationFn:e=>i.setNetworkBoundary(e.mode,e.ack),onSuccess:t=>{t.ok&&(e.invalidateQueries({queryKey:[`networkBoundary`]}),a(null),c(!1))}}),y=f({mutationFn:e=>i.setHybridPolicy(e),onSuccess:()=>e.invalidateQueries({queryKey:[`networkBoundary`]})}),b=f({mutationFn:e=>i.previewCloudContext(e)}),[S,T]=B.useState([]),E=f({mutationFn:e=>i.setNodeSensitivity(e.nodeId,e.localOnly),onSuccess:(e,t)=>{e.ok&&T(e=>t.localOnly?[...e,t.nodeId]:e.filter(e=>e!==t.nodeId))}}),D=h.data?.ok?h.data.data:void 0,k=D?.catalog??[],A=D?.mode??``,j=r??A,M=k.find(e=>e.id===j),N=!!M?.requires_ack&&j!==A,P=N&&!s,I=j===A,ee=D?.policy??{},L=b.data?.ok?b.data.data:void 0;return h.isLoading?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.network.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(n,`ui.loading`)})})]}):!D||k.length===0?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.network.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:h.data?.error})})]}):(0,V.jsxs)(C,{"data-testid":`network-boundary-panel`,children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(ne,{className:`h-4 w-4`,"aria-hidden":`true`}),o(n,`system.network.title`)]}),(0,V.jsx)(v,{children:o(n,`system.network.hint`)})]}),(0,V.jsxs)(x,{className:`space-y-3`,children:[(0,V.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[o(n,`system.network.current`),`:`,` `,(0,V.jsx)(`strong`,{"data-testid":`network-boundary-active`,children:n===`ko`&&D.label_ko||D.label})]}),(0,V.jsx)(`div`,{className:`space-y-2`,role:`radiogroup`,"aria-label":o(n,`system.network.title`),children:k.map(e=>{let t=e.id===j;return(0,V.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,"data-testid":`network-boundary-option-${e.id}`,onClick:()=>{a(e.id),c(!1),g.reset()},className:`w-full rounded-md border p-3 text-left transition ${t?`border-primary bg-accent`:`border-border hover:bg-accent/50`}`,children:[(0,V.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`strong`,{className:`text-sm`,children:re(e,n)}),(0,V.jsx)(O,{variant:H[e.risk]||`warning`,children:o(n,`system.permission.risk.${e.risk}`)}),e.id===A?(0,V.jsx)(O,{variant:`muted`,children:o(n,`system.network.current`)}):null]}),(0,V.jsx)(`p`,{className:`mt-1 block text-xs text-muted-foreground`,children:U(e,n)})]},e.id)})}),N?(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border bg-muted p-3`,children:[(0,V.jsxs)(`p`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(F,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:M?W(M,n):``})]}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`network-boundary-ack`,checked:s,onChange:e=>c(e.target.checked)}),o(n,`system.network.ack`)]})]}):null,(0,V.jsx)(z,{"data-testid":`network-boundary-apply`,disabled:I||P||g.isPending,onClick:()=>g.mutate({mode:j,ack:s}),children:o(n,`system.network.apply`)}),g.data&&!g.data.ok?(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:g.data.error}):null,g.data?.ok?(0,V.jsx)(O,{variant:`success`,"data-testid":`network-boundary-applied`,children:o(n,`ui.requestCompleted`)}):null,(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border p-3`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.network.preview.title`)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n,`system.network.preview.hint`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(`input`,{type:`text`,"data-testid":`network-boundary-probe`,value:l,onChange:e=>m(e.target.value),placeholder:o(n,`system.network.preview.placeholder`),className:`min-w-0 flex-1 rounded-md border border-border bg-background px-2 py-1 text-xs`}),(0,V.jsx)(z,{variant:`outline`,"data-testid":`network-boundary-preview`,disabled:!l.trim()||b.isPending,onClick:()=>b.mutate(l.trim()),children:o(n,`system.network.preview.run`)})]}),L?(0,V.jsxs)(`div`,{className:`space-y-1`,"data-testid":`network-boundary-preview-result`,children:[L.allows_cloud?null:(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n,`system.network.preview.localOnly`)}),L.would_block?(0,V.jsx)(O,{variant:`danger`,children:o(n,`system.network.preview.blocked`)}):null,L.titles.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n,`system.network.preview.empty`)}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[o(n,`system.network.preview.count`,{count:L.titles.length}),` · `,o(n,`system.network.preview.tokens`,{tokens:L.token_estimate})]}),(0,V.jsx)(`ul`,{className:`space-y-0.5`,children:L.titles.map((e,t)=>{let r=L.node_ids[t],i=r?S.includes(r):!1;return(0,V.jsxs)(`li`,{className:`flex items-start justify-between gap-2 text-xs`,children:[(0,V.jsxs)(`span`,{className:i?`line-through opacity-60`:void 0,children:[`· `,e]}),r?(0,V.jsx)(`button`,{type:`button`,"data-testid":`network-boundary-hold-${t}`,className:`shrink-0 underline underline-offset-2 opacity-80 hover:opacity-100`,disabled:E.isPending,onClick:()=>E.mutate({nodeId:r,localOnly:!i}),children:o(n,i?`system.network.preview.release`:`system.network.preview.hold`)}):null]},`${r||e}-${t}`)})})]})]}):null,b.data&&!b.data.ok?(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:b.data.error}):null]}),D.allows_cloud?(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border p-3`,"data-testid":`network-boundary-policy`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.network.policy.title`)}),(0,V.jsxs)(`label`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`network-boundary-auto-commit`,checked:!!ee.auto_commit,disabled:y.isPending,onChange:e=>y.mutate({auto_commit:e.target.checked})}),(0,V.jsxs)(`span`,{children:[o(n,`system.network.policy.autoCommit`),(0,V.jsx)(`span`,{className:`mt-0.5 block text-muted-foreground`,children:o(n,`system.network.policy.autoCommitHint`)})]})]}),(0,V.jsxs)(`label`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`network-boundary-multimodal`,checked:!!ee.allow_multimodal,disabled:y.isPending,onChange:e=>y.mutate({allow_multimodal:e.target.checked})}),(0,V.jsxs)(`span`,{children:[o(n,`system.network.policy.multimodal`),(0,V.jsx)(`span`,{className:`mt-0.5 block text-muted-foreground`,children:o(n,`system.network.policy.multimodalHint`)})]})]})]}):null,(0,V.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.network.guards`)}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o(n,`system.network.guards.detail`)}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o(n,`system.network.preview.autoHeld`)})]})]})]})}var G={low:`success`,medium:`warning`,high:`danger`};function ae(){let e=u(),n=t(e=>e.language),[r,a]=B.useState(null),[s,c]=B.useState(!1),l=d({queryKey:[`permissionMode`],queryFn:i.permissionMode}),m=f({mutationFn:e=>i.setPermissionMode(e.mode,e.ack),onSuccess:t=>{t.ok&&(e.invalidateQueries({queryKey:[`permissionMode`]}),a(null),c(!1))}}),h=l.data?.ok?l.data.data:void 0,g=h?.catalog??[],y=h?.mode??``,b=r??y,S=g.find(e=>e.id===b),T=!!S?.requires_ack&&b!==y,E=T&&!s,D=b===y;return l.isLoading?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.permission.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(n,`ui.loading`)})})]}):!h||g.length===0?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.permission.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:l.data?.error})})]}):(0,V.jsxs)(C,{"data-testid":`permission-mode-panel`,children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(n,`system.permission.title`)}),(0,V.jsx)(v,{children:o(n,`system.permission.hint`)})]}),(0,V.jsxs)(x,{className:`space-y-3`,children:[(0,V.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[o(n,`system.permission.current`),`:`,` `,(0,V.jsx)(`strong`,{"data-testid":`permission-mode-active`,children:P(h,n)})]}),(0,V.jsx)(`div`,{className:`space-y-2`,role:`radiogroup`,"aria-label":o(n,`system.permission.title`),children:g.map(e=>{let t=e.id===b;return(0,V.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,"data-testid":`permission-mode-option-${e.id}`,onClick:()=>{a(e.id),c(!1),m.reset()},className:`w-full rounded-md border p-3 text-left transition ${t?`border-primary bg-accent`:`border-border hover:bg-accent/50`}`,children:[(0,V.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`strong`,{className:`text-sm`,children:M(e,n)}),(0,V.jsx)(O,{variant:G[e.risk]||`warning`,children:o(n,`system.permission.risk.${e.risk}`)}),e.id===y?(0,V.jsx)(O,{variant:`muted`,children:o(n,`system.permission.current`)}):null]}),(0,V.jsx)(`p`,{className:`mt-1 block text-xs text-muted-foreground`,children:N(e,n)})]},e.id)})}),T?(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border bg-muted p-3`,children:[(0,V.jsxs)(`p`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(F,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,V.jsx)(`span`,{children:S?j(S,n):``})]}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`permission-mode-ack`,checked:s,onChange:e=>c(e.target.checked)}),o(n,`system.permission.ack`)]})]}):null,(0,V.jsx)(z,{"data-testid":`permission-mode-apply`,disabled:D||E||m.isPending,onClick:()=>m.mutate({mode:b,ack:s}),children:o(n,`system.permission.apply`)}),m.data&&!m.data.ok?(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:m.data.error}):null,m.data?.ok?(0,V.jsx)(O,{variant:`success`,"data-testid":`permission-mode-applied`,children:o(n,`ui.requestCompleted`)}):null,(0,V.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.permission.guards`)}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o(n,`system.permission.guards.detail`)})]})]})]})}var K=[{id:`identity`,labelKey:`system.group.identity`},{id:`data`,labelKey:`system.group.data`},{id:`system`,labelKey:`system.group.system`}],q=[{id:`account`,labelKey:`system.tab.account`,group:`identity`},{id:`workspaces`,labelKey:`system.tab.workspaces`,group:`identity`},{id:`snapshots`,labelKey:`system.tab.snapshots`,group:`data`},{id:`activity`,labelKey:`system.tab.activity`,group:`data`},{id:`settings`,labelKey:`system.tab.settings`,group:`system`},{id:`network`,labelKey:`system.tab.network`,group:`system`},{id:`admin`,labelKey:`system.tab.admin`,group:`system`}];function J({initialTab:e}){let n=t(e=>e.mode),r=t(e=>e.language),[i,a]=B.useState(e||`account`);B.useEffect(()=>{q.some(t=>t.id===e)&&a(e)},[e]);let s=n===`basic`?q.filter(e=>e.id===`account`||e.id===`workspaces`||e.id===`snapshots`||e.id===`settings`):q,c=e=>{a(e),L(`/`+{account:`account`,workspaces:`workspace-admin`,snapshots:`snapshots`,activity:`activity`,network:`network`,settings:`settings`,admin:`system-admin`}[e])};return(0,V.jsxs)(`div`,{className:`product-page settings-page space-y-5 pb-8`,children:[(0,V.jsxs)(`header`,{className:`page-hero`,children:[(0,V.jsxs)(`div`,{className:`page-kicker`,children:[(0,V.jsx)(R,{className:`h-4 w-4`}),` `,o(r,`system.kicker`)]}),(0,V.jsx)(`h1`,{className:`page-title`,children:o(r,`system.title`)}),(0,V.jsx)(`p`,{className:`page-copy`,children:o(r,`system.body`)})]}),(0,V.jsx)(`div`,{className:`flex flex-wrap items-end gap-x-6 gap-y-3`,"data-testid":`system-tab-groups`,children:K.map(e=>{let t=s.filter(t=>t.group===e.id);if(!t.length)return null;let n=`system-group-${e.id}`;return(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{id:n,className:`px-1 text-xs font-medium text-muted-foreground`,children:o(r,e.labelKey)}),(0,V.jsx)(g,{ariaLabelledBy:n,tabs:t.map(e=>({id:e.id,label:o(r,e.labelKey)})),value:i,onChange:e=>c(e)})]},e.id)})}),i===`account`?(0,V.jsx)(Y,{}):null,i===`workspaces`?(0,V.jsx)(Z,{}):null,i===`settings`?(0,V.jsx)(le,{}):null,i===`snapshots`?(0,V.jsx)(oe,{}):null,i===`activity`?(0,V.jsx)(se,{}):null,i===`network`?(0,V.jsx)(ce,{}):null,i===`admin`?(0,V.jsx)(_e,{}):null]})}function Y(){let e=u(),n=t(e=>e.language),r=t(e=>e.setWorkspaceId),a=d({queryKey:[`profile`],queryFn:i.profile}),s=d({queryKey:[`sso`],queryFn:i.ssoConfig}),[c,l]=B.useState(``),[g,y]=B.useState(``),[b,w]=B.useState(``),[T,D]=B.useState(``),[O,A]=B.useState(``),j=e=>{e.ok&&(te(),r(null))},M=f({mutationFn:()=>i.login(c,g),onSuccess:j}),N=f({mutationFn:()=>i.register({email:c,password:g,name:b,nickname:T}),onSuccess:j}),P=f({mutationFn:()=>i.updateProfile({name:b,nickname:T}),onSuccess:()=>e.invalidateQueries({queryKey:[`profile`]})}),F=f({mutationFn:()=>i.changePassword(g,O)});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(n,`system.account.profile`),result:a.data,children:e=>(0,V.jsx)(m,{data:e})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(ee,{className:`h-4 w-4`}),` `,o(n,`system.account.title`)]}),(0,V.jsx)(v,{children:o(n,`system.account.detail`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:c,onChange:e=>l(e.target.value),placeholder:o(n,`system.account.email`)}),(0,V.jsx)(k,{type:`password`,value:g,onChange:e=>y(e.target.value),placeholder:o(n,`system.account.password`)}),(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,V.jsx)(k,{value:b,onChange:e=>w(e.target.value),placeholder:o(n,`system.account.name`)}),(0,V.jsx)(k,{value:T,onChange:e=>D(e.target.value),placeholder:o(n,`system.account.nickname`)})]}),(0,V.jsx)(k,{type:`password`,value:O,onChange:e=>A(e.target.value),placeholder:o(n,`system.account.newPassword`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{onClick:()=>M.mutate(),disabled:!c||!g||M.isPending,children:o(n,`system.account.login`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>N.mutate(),disabled:!c||!g||N.isPending,children:o(n,`system.account.register`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>P.mutate(),disabled:P.isPending,children:o(n,`system.account.save`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>F.mutate(),disabled:!g||!O||F.isPending,children:o(n,`system.account.changePassword`)}),(0,V.jsx)(E,{label:o(n,`system.account.logout`),action:()=>i.logout(),onSuccess:j})]}),[M.data,N.data,P.data,F.data].filter(Boolean).map((e,t)=>(0,V.jsx)(h,{result:e,successLabel:o(n,`system.account.requestDone`)},t))]})]}),(0,V.jsx)(S,{title:o(n,`system.account.signInOptions`),result:s.data,className:`xl:col-span-2`,children:e=>(0,V.jsx)(X,{data:e})})]})}function X({data:e}){let n=t(e=>e.mode),r=t(e=>e.language),i=!!e.enabled||c(e.providers).length>0;return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)($,{title:o(r,i?`system.account.signIn.sso`:`system.account.signIn.localOnly`),status:o(r,i?`system.value.enabled`:`system.storage.local.badge`),detail:o(r,i?`system.account.signIn.ssoDetail`:`system.account.signIn.localOnlyDetail`)}),n===`basic`?null:(0,V.jsx)(D,{value:e})]})}function Z(){let e=u(),n=t(e=>e.language),{setWorkspaceId:r}=t(),a=d({queryKey:[`workspaceRegistry`],queryFn:i.workspaceRegistry}),s=d({queryKey:[`invitations`],queryFn:i.invitations}),[l,m]=B.useState(``),[h,g]=B.useState(``),[b,w]=B.useState(``),T=f({mutationFn:()=>i.createOrg(l),onSuccess:()=>e.invalidateQueries({queryKey:[`workspaceRegistry`]})}),D=f({mutationFn:()=>i.createInvitation({email:h||null,role:`member`,expires_hours:168}),onSuccess:()=>e.invalidateQueries({queryKey:[`invitations`]})}),O=f({mutationFn:()=>i.acceptInvitation(b),onSuccess:()=>e.invalidateQueries({queryKey:[`workspaceRegistry`]})}),A=c(a.data?.data?.workspaces);return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[1.1fr_0.9fr]`,children:[(0,V.jsx)(S,{title:o(n,`system.workspace.yours`),result:a.data,children:()=>(0,V.jsx)(`div`,{className:`grid gap-2`,children:A.map(e=>{let t=String(e.workspace_id||e.id);return(0,V.jsx)(`div`,{className:`rounded-md border border-border p-3`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`font-medium`,children:String(e.name||t)}),(0,V.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[String(e.type||``),` · `,String(e.your_role||e.role||``)]})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{variant:`outline`,onClick:()=>r(t),children:o(n,`system.workspace.use`)}),(0,V.jsx)(E,{label:o(n,`system.workspace.activate`),action:()=>i.activateWorkspace(t),invalidate:[`workspaceRegistry`]}),(0,V.jsx)(E,{label:o(n,`system.workspace.archive`),action:()=>i.archiveWorkspace(t),invalidate:[`workspaceRegistry`],variant:`destructive`})]})]})},t)})})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(I,{className:`h-4 w-4`}),` `,o(n,`system.workspace.organizations`)]}),(0,V.jsx)(v,{children:o(n,`system.workspace.organizationsHint`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:l,onChange:e=>m(e.target.value),placeholder:o(n,`system.workspace.orgPlaceholder`)}),(0,V.jsx)(z,{disabled:!l.trim()||T.isPending,onClick:()=>T.mutate(),children:o(n,`system.workspace.createOrg`)}),(0,V.jsx)(k,{value:h,onChange:e=>g(e.target.value),placeholder:o(n,`system.workspace.inviteeEmail`)}),(0,V.jsx)(z,{variant:`outline`,disabled:D.isPending,onClick:()=>D.mutate(),children:o(n,`system.workspace.createInvite`)}),(0,V.jsx)(k,{value:b,onChange:e=>w(e.target.value),placeholder:o(n,`system.workspace.inviteToken`)}),(0,V.jsx)(z,{variant:`outline`,disabled:!b.trim()||O.isPending,onClick:()=>O.mutate(),children:o(n,`system.workspace.acceptInvite`)}),(0,V.jsx)(S,{title:o(n,`system.workspace.invitations`),result:s.data,children:e=>(0,V.jsx)(y,{items:e.invitations,titleKey:`token`,metaKey:`role`})})]})]})]})}function oe(){let e=t(e=>e.language),n=d({queryKey:[`snapshots`],queryFn:i.snapshots}),r=d({queryKey:[`timeMachine`],queryFn:i.timeMachine}),[a,s]=B.useState(``),[l,u]=B.useState(``),[m,g]=B.useState(``),b=f({mutationFn:()=>i.createSnapshot(a||o(e,`system.snapshots.defaultName`))}),w=f({mutationFn:()=>i.compareSnapshots(l,m)}),T=c(n.data?.data?.snapshots);return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(e,`system.snapshots.title`),result:n.data,children:()=>(0,V.jsx)(`div`,{className:`space-y-2`,children:T.map(t=>{let n=String(t.id||t.snapshot_id);return(0,V.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,V.jsx)(`div`,{className:`font-medium`,children:String(t.name||n)}),(0,V.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,V.jsx)(E,{label:o(e,`system.snapshots.export`),action:()=>i.exportSnapshot(n)}),(0,V.jsx)(E,{label:o(e,`system.snapshots.mergeRestore`),action:()=>i.restoreSnapshot(n),variant:`outline`})]})]},n)})})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(e,`system.snapshots.actions`)}),(0,V.jsx)(v,{children:o(e,`system.snapshots.actionsHint`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:a,onChange:e=>s(e.target.value),placeholder:o(e,`system.snapshots.namePlaceholder`)}),(0,V.jsx)(z,{onClick:()=>b.mutate(),disabled:b.isPending,children:o(e,`system.snapshots.create`)}),(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,V.jsx)(k,{value:l,onChange:e=>u(e.target.value),placeholder:o(e,`system.snapshots.beforeId`)}),(0,V.jsx)(k,{value:m,onChange:e=>g(e.target.value),placeholder:o(e,`system.snapshots.afterId`)})]}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>w.mutate(),disabled:!l||!m||w.isPending,children:o(e,`system.snapshots.compare`)}),w.data?(0,V.jsx)(h,{result:w.data,successLabel:o(e,`system.snapshots.compareDone`)}):null]})]}),(0,V.jsx)(S,{title:o(e,`system.snapshots.timeline`),result:r.data,className:`xl:col-span-2`,children:e=>(0,V.jsx)(y,{items:e.events||e,titleKey:`event`,metaKey:`type`,limit:14})})]})}function se(){let e=t(e=>e.language),n=d({queryKey:[`realtimeFeed`],queryFn:i.realtimeFeed}),r=d({queryKey:[`presence`],queryFn:i.presence});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(e,`system.activity.feed`),result:n.data,children:e=>(0,V.jsx)(y,{items:e.events,titleKey:`event_type`,metaKey:`area`,limit:14})}),(0,V.jsx)(S,{title:o(e,`system.activity.presence`),result:r.data,children:e=>(0,V.jsx)(ue,{data:e})})]})}function ce(){let e=u(),n=t(e=>e.language),r=d({queryKey:[`networkIdentity`],queryFn:i.networkIdentity}),a=d({queryKey:[`networkPeers`],queryFn:i.networkPeers}),[s,l]=B.useState(``),[m,g]=B.useState(``),[y,b]=B.useState(``),w=f({mutationFn:()=>i.pairPeer({name:s,base_url:m,public_key:y}),onSuccess:()=>e.invalidateQueries({queryKey:[`networkPeers`]})});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[0.8fr_1.2fr]`,children:[(0,V.jsx)(S,{title:o(n,`system.network.identity`),result:r.data,children:e=>(0,V.jsx)(de,{data:e})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(A,{className:`h-4 w-4`}),` `,o(n,`system.network.pair`)]}),(0,V.jsx)(v,{children:o(n,`system.network.pairHint`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:s,onChange:e=>l(e.target.value),placeholder:o(n,`system.network.deviceName`)}),(0,V.jsx)(k,{value:m,onChange:e=>g(e.target.value),placeholder:o(n,`system.network.address`)}),(0,V.jsx)(k,{value:y,onChange:e=>b(e.target.value),placeholder:o(n,`system.network.publicKey`)}),(0,V.jsx)(z,{disabled:!s||!m||!y||w.isPending,onClick:()=>w.mutate(),children:o(n,`system.network.pair`)}),w.data?(0,V.jsx)(h,{result:w.data,successLabel:o(n,`system.network.pairDone`)}):null]})]}),(0,V.jsx)(S,{title:o(n,`system.network.peers`),result:a.data,className:`xl:col-span-2`,children:e=>(0,V.jsx)(`div`,{className:`grid gap-2`,children:c(e.peers).map(e=>{let r=String(e.peer_id||e.id);return(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-md border border-border p-3`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`font-medium`,children:String(e.name||r)}),(0,V.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:String(e.base_url||``)})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(E,{label:o(n,`system.network.pushWorkspace`),action:()=>i.pushPeer(r,t.getState().workspaceId)}),(0,V.jsx)(E,{label:o(n,`system.network.unpair`),action:()=>i.unpairPeer(r),invalidate:[`networkPeers`],variant:`destructive`})]})]},r)})})})]})}function le(){let e=u(),{theme:n,setTheme:r,mode:a,setMode:s}=t(),c=t(e=>e.language),l=d({queryKey:[`health`],queryFn:i.health}),m=d({queryKey:[`sysinfo`],queryFn:i.sysinfo}),g=d({queryKey:[`computerMemory`],queryFn:i.computerMemory}),y=d({queryKey:[`brainStorage`],queryFn:i.brainStorage}),w=d({queryKey:[`backupHealth`],queryFn:i.backupHealth}),[T,O]=B.useState(``),[A,j]=B.useState(`lattice_brain`),[M,N]=B.useState(!1),[P,F]=B.useState(``),[I,ee]=B.useState(``),[L,te]=B.useState(``),[R,ne]=B.useState(!1),[H,re]=B.useState(!1),U=f({mutationFn:e=>i.dockerPostgres({consent:e,dry_run:!e,port:5432})}),W=f({mutationFn:()=>i.migratePostgres({dsn:T,schema_name:A||`lattice_brain`,dry_run:!0})}),G=f({mutationFn:()=>i.brainArchive({path:P.trim()||null,passphrase:L}),onSuccess:()=>e.invalidateQueries({queryKey:[`backupHealth`]})}),K=f({mutationFn:()=>i.brainArchiveInspect({path:I,passphrase:L||null})}),q=f({mutationFn:()=>i.brainArchiveVerify({path:I,passphrase:L})}),J=f({mutationFn:()=>i.brainArchiveRestore({path:I,passphrase:L,dry_run:!0,confirm:!1})}),Y=f({mutationFn:()=>i.brainArchiveRestore({path:I,passphrase:L,dry_run:!1,confirm:R}),onSuccess:()=>{e.invalidateQueries({queryKey:[`brainStorage`]}),e.invalidateQueries({queryKey:[`backupHealth`]})}}),X=f({mutationFn:()=>i.brainArchiveImport({path:I,passphrase:L,dry_run:!0,confirm:!1})}),Z=f({mutationFn:()=>i.brainArchiveImport({path:I,passphrase:L,dry_run:!1,confirm:H}),onSuccess:()=>{e.invalidateQueries({queryKey:[`brainStorage`]}),e.invalidateQueries({queryKey:[`backupHealth`]})}});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-3`,children:[(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.panel.appearance`)}),(0,V.jsx)(v,{children:o(c,`system.panel.appearance.hint`)})]}),(0,V.jsxs)(x,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{variant:n===`dark`?`default`:`outline`,onClick:()=>r(`dark`),children:o(c,`system.theme.dark`)}),(0,V.jsx)(z,{variant:n===`light`?`default`:`outline`,onClick:()=>r(`light`),children:o(c,`system.theme.light`)})]})]}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.panel.detailLevel`)}),(0,V.jsx)(v,{children:o(c,`system.panel.detailLevel.hint`)})]}),(0,V.jsx)(x,{className:`flex flex-wrap gap-2`,children:[`basic`,`advanced`,`admin`].map(e=>(0,V.jsx)(z,{variant:a===e?`default`:`outline`,onClick:()=>s(e),children:o(c,`shell.mode.${e}`)},e))})]}),(0,V.jsx)(ae,{}),(0,V.jsx)(ie,{}),(0,V.jsx)(S,{title:a===`basic`?o(c,`system.panel.brainStatus`):o(c,`system.panel.serverHealth`),result:l.data,children:e=>(0,V.jsx)(fe,{data:e})}),(0,V.jsx)(S,{title:a===`basic`?o(c,`system.panel.readiness`):o(c,`system.panel.hostTelemetry`),result:m.data,children:e=>a===`basic`?(0,V.jsx)(b,{stats:[{label:o(c,`system.stat.cpu`),value:`${String(e.cpu_pct||`0`)}%`},{label:o(c,`system.stat.memory`),value:`${String(e.ram_pct||`0`)}%`},{label:o(c,`system.stat.gpu`),value:`${String(e.gpu_mem_pct||`0`)}%`},{label:o(c,`system.stat.localStatus`),value:o(c,`system.stat.ready`)}]}):(0,V.jsx)(D,{value:e})}),(0,V.jsx)(S,{title:a===`basic`?o(c,`system.storage.title`):o(c,`system.panel.brainStorage`),result:y.data,className:`xl:col-span-3`,children:e=>(0,V.jsx)(pe,{data:e,mode:a,language:c})}),a===`basic`?null:(0,V.jsx)(S,{title:o(c,`system.backup.health`),result:w.data,className:`xl:col-span-3`,children:e=>(0,V.jsx)(me,{data:e})}),a===`basic`?null:(0,V.jsxs)(C,{className:`xl:col-span-3`,children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.archive.title`)}),(0,V.jsx)(v,{children:o(c,`system.archive.detail`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-[1fr_1fr]`,children:[(0,V.jsx)(k,{value:P,onChange:e=>F(e.target.value),placeholder:o(c,`system.archive.exportPath`)}),(0,V.jsx)(k,{value:I,onChange:e=>ee(e.target.value),placeholder:o(c,`system.archive.restorePath`)})]}),(0,V.jsx)(k,{type:`password`,value:L,onChange:e=>te(e.target.value),placeholder:o(c,`system.archive.passphrase`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{onClick:()=>G.mutate(),disabled:!L||G.isPending,children:o(c,`system.archive.export`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>K.mutate(),disabled:!I||K.isPending,children:o(c,`system.archive.inspect`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>q.mutate(),disabled:!I||!L||q.isPending,children:o(c,`system.archive.verify`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>J.mutate(),disabled:!I||!L||J.isPending,children:o(c,`system.archive.restoreDryRun`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>X.mutate(),disabled:!I||!L||X.isPending,children:o(c,`system.archive.importDryRun`)}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:R,onChange:e=>ne(e.target.checked)}),o(c,`system.archive.confirmRestore`)]}),(0,V.jsx)(z,{variant:`destructive`,onClick:()=>Y.mutate(),disabled:!I||!L||!R||Y.isPending,children:o(c,`system.archive.restore`)}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:H,onChange:e=>re(e.target.checked)}),o(c,`system.archive.confirmImport`)]}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>Z.mutate(),disabled:!I||!L||!H||Z.isPending,children:o(c,`system.archive.import`)})]}),[G.data,K.data,q.data,J.data,Y.data,X.data,Z.data].filter(Boolean).map((e,t)=>(0,V.jsx)(h,{result:e,successLabel:o(c,`system.archive.requestDone`)},t))]})]}),a===`basic`?null:(0,V.jsxs)(C,{className:`xl:col-span-3`,children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.scale.title`)}),(0,V.jsx)(v,{children:o(c,`system.scale.detail`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-[1fr_220px]`,children:[(0,V.jsx)(k,{value:T,onChange:e=>O(e.target.value),placeholder:o(c,`system.scale.dsn`)}),(0,V.jsx)(k,{value:A,onChange:e=>j(e.target.value),placeholder:o(c,`system.scale.schema`)})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{variant:`outline`,onClick:()=>U.mutate(!1),disabled:U.isPending,children:o(c,`system.scale.dockerPlan`)}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:M,onChange:e=>N(e.target.checked)}),o(c,`system.scale.dockerConsent`)]}),(0,V.jsx)(z,{onClick:()=>U.mutate(!0),disabled:!M||U.isPending,children:o(c,`system.scale.dockerStart`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>W.mutate(),disabled:!T||W.isPending,children:o(c,`system.scale.migrationPlan`)})]}),U.data?(0,V.jsx)(h,{result:U.data,successLabel:o(c,`system.scale.dockerDone`)}):null,W.data?(0,V.jsx)(h,{result:W.data,successLabel:o(c,`system.scale.migrationDone`)}):null]})]}),a===`basic`?null:(0,V.jsx)(S,{title:o(c,`system.computerMemory.title`),result:g.data,className:`xl:col-span-3`,children:e=>(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(D,{value:e}),(0,V.jsxs)(`div`,{className:`flex gap-2`,children:[(0,V.jsx)(E,{label:o(c,`system.computerMemory.enable`),action:()=>i.setComputerMemory(!0),invalidate:[`computerMemory`]}),(0,V.jsx)(E,{label:o(c,`system.computerMemory.disable`),action:()=>i.setComputerMemory(!1),invalidate:[`computerMemory`],variant:`destructive`})]})]})})]})}function Q(e,t,n=o(e,`system.value.notReported`)){return t==null||t===``?n:typeof t==`boolean`?o(e,t?`system.value.enabled`:`system.value.disabled`):String(t)}function ue({data:e}){let n=t(e=>e.language),r=c(e.presence||e.clients||e);return r.length?(0,V.jsx)(y,{items:r,titleKey:`user`,metaKey:`workspace_id`}):(0,V.jsx)(w,{title:o(n,`system.presence.empty`),detail:o(n,`system.presence.emptyDetail`)})}function de({data:e}){let n=t(e=>e.mode),i=t(e=>e.language),a=Q(i,e.public_key,``);return n===`basic`?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)($,{title:o(i,`system.device.thisMac`),status:o(i,`system.value.trusted`),detail:o(i,`system.device.thisMacDetail`)}),(0,V.jsx)(O,{variant:`muted`,children:Q(i,e.algorithm,o(i,`system.value.localIdentity`))})]}):(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(O,{variant:`success`,children:o(i,`system.value.localDevice`)}),(0,V.jsx)(O,{variant:`muted`,children:Q(i,e.algorithm,o(i,`system.value.identityKey`))})]}),(0,V.jsx)(m,{data:{device_id:e.device_id||e.id||o(i,`system.value.notReported`),fingerprint:e.fingerprint||o(i,`system.value.notReported`),public_key:a?r(a.replace(/\s+/g,` `),72):o(i,`system.value.notReported`)}})]})}function fe({data:e}){let n=t(e=>e.mode),r=t(e=>e.language);return n===`basic`?(0,V.jsx)($,{title:o(r,`system.health.title`),status:o(r,`system.health.ok`),detail:o(r,`system.health.detail`)}):(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(r,`system.health.status`),value:e.status||e.ok||o(r,`system.value.reported`)},{label:o(r,`system.health.version`),value:e.version||o(r,`system.value.notReported`)},{label:o(r,`system.health.mode`),value:e.mode||e.environment||o(r,`system.value.local`)},{label:o(r,`system.health.port`),value:e.port||e.backend_port||o(r,`system.value.configured`)}]}),(0,V.jsx)(D,{value:e})]})}function pe({data:e,mode:t=`advanced`,language:n=`en`}){let r=s(e.active)?e.active:e,i=s(e.postgres)?e.postgres:{},a=s(e.backup_health)?e.backup_health:{},c=r.vector_search||r.vector||e.vector_search||e.sqlite_vec,l=!!(i.available||i.connected||i.enabled),u=!!c&&String(c).toLowerCase()!==`not reported`;return t===`basic`?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)($,{title:o(n,`system.storage.local.title`),status:o(n,`system.storage.local.badge`),detail:o(n,`system.storage.local.detail`)}),(0,V.jsx)($,{title:o(n,`system.storage.search.title`),status:u?o(n,`system.storage.search.on`):o(n,`system.storage.search.pending`),detail:u?o(n,`system.storage.search.detailOn`):o(n,`system.storage.search.detailPending`)})]}):(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.storage.activeEngine`),value:r.engine||e.engine||o(n,`system.storage.sqlite`)},{label:o(n,`system.storage.sqliteDefault`),value:r.engine===`postgres`?o(n,`system.value.scaleMode`):o(n,`system.value.enabled`)},{label:o(n,`system.storage.vector`),value:c||o(n,`system.value.notReported`)},{label:o(n,`system.storage.postgres`),value:l?o(n,`system.value.available`):o(n,`system.value.optional`)}]}),(0,V.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,V.jsx)($,{title:o(n,`system.storage.sqlite`),status:r.available===!1?o(n,`system.value.unavailable`):o(n,`system.value.default`),detail:Q(n,r.reason||r.path||e.path,o(n,`system.storage.sqliteDetail`))}),(0,V.jsx)($,{title:o(n,`system.storage.vector`),status:Q(n,c,o(n,`system.value.reported`)),detail:Q(n,r.vector_reason||r.sqlite_vec_reason||e.vector_reason,o(n,`system.storage.vectorDetail`))}),(0,V.jsx)($,{title:o(n,`system.storage.postgres`),status:l?o(n,`system.value.available`):o(n,`system.value.notEnabled`),detail:Q(n,i.reason||i.dsn||i.status,o(n,`system.storage.postgresDetail`))})]}),Object.keys(a).length?(0,V.jsx)(D,{value:{backup_health:a}}):null]})}function me({data:e}){let n=t(e=>e.language);return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.backup.available`),value:e.available===!1?o(n,`system.value.no`):o(n,`system.value.yes`)},{label:o(n,`system.backup.backups`),value:e.count||e.backups||0},{label:o(n,`system.backup.encrypted`),value:e.encrypted_archives||0},{label:o(n,`system.backup.zip`),value:e.zip_backups||0}]}),(0,V.jsx)(m,{data:{directory:e.directory||o(n,`system.value.notReported`),latest:e.latest||o(n,`system.value.noneReported`),last_verified:e.last_verified||e.verified_at||o(n,`system.value.notReported`),failure:e.error||e.reason||o(n,`system.value.noneReported`)}})]})}function $({title:e,status:t,detail:n}){let r=/unavailable|failed|denied|disabled|not enabled|사용 불가|실패|거부|비활성|활성화되지 않음/i.test(t)?`warning`:`success`;return(0,V.jsxs)(`div`,{className:`rounded-md border border-border bg-background p-3`,children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,V.jsx)(`div`,{className:`font-medium`,children:e}),(0,V.jsx)(O,{variant:r,children:t})]}),(0,V.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:n})]})}function he({data:e}){let n=t(e=>e.language),r=s(e.startup)?e.startup:{},i=s(e.privacy)?e.privacy:{},a=s(e.storage)?e.storage:{},c=s(e.backup)?e.backup:{},l=s(e.device_identity)?e.device_identity:{},u=s(e.permissions)?e.permissions:{};return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.hardening.version`),value:e.version||o(n,`system.value.reported`)},{label:o(n,`system.hardening.localOnly`),value:i.local_only_default??r.local_only_default??o(n,`system.value.reported`)},{label:o(n,`system.hardening.storage`),value:s(a.active)?a.active.engine:o(n,`system.value.reported`)},{label:o(n,`system.hardening.backups`),value:c.count||c.available||o(n,`system.value.reported`)}]}),(0,V.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:[(0,V.jsx)($,{title:o(n,`system.hardening.startup`),status:o(n,r.network_exposed?`system.value.networkExposed`:`system.value.localOnly`),detail:o(n,`system.hardening.startupDetail`)}),(0,V.jsx)($,{title:o(n,`system.hardening.integrations`),status:o(n,i.local_only_default===!1?`system.value.reviewRequired`:`system.value.optIn`),detail:o(n,`system.hardening.integrationsDetail`)}),(0,V.jsx)($,{title:o(n,`system.hardening.identity`),status:Q(n,l.algorithm||l.fingerprint,o(n,`system.value.reported`)),detail:Q(n,l.storage,o(n,`system.hardening.identityStorage`))}),(0,V.jsx)($,{title:o(n,`system.hardening.permissions`),status:o(n,u.destructive_restore_requires_confirmation===!1?`system.value.reviewRequired`:`system.value.guarded`),detail:o(n,`system.hardening.permissionsDetail`)})]})]})}function ge({data:e}){let n=t(e=>e.language),r=s(e.cards)?e.cards:{},i=s(e.severity_counts)?e.severity_counts:{};return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.security.eventsToday`),value:r.events_today||0},{label:o(n,`system.security.highRisk`),value:r.high_risk_events||i.high||0},{label:o(n,`system.security.review`),value:r.review_required||0},{label:o(n,`system.security.riskRate`),value:e.risk_rate||0}]}),(0,V.jsx)(D,{value:{severity_counts:i,sensitive_fields:e.field_counts||{}}})]})}function _e(){let e=t(e=>e.mode),n=t(e=>e.language),r=d({queryKey:[`adminSummary`],queryFn:i.adminSummary}),a=d({queryKey:[`adminUsers`],queryFn:i.adminUsers}),s=d({queryKey:[`adminAudit`],queryFn:()=>i.adminAudit()}),c=d({queryKey:[`adminRoles`],queryFn:i.adminRoles}),l=d({queryKey:[`adminPolicies`],queryFn:i.adminPolicies}),u=d({queryKey:[`adminProductHardening`],queryFn:i.adminProductHardening}),f=d({queryKey:[`adminSecurity`],queryFn:i.adminSecurity}),p=d({queryKey:[`vpcStatus`],queryFn:i.vpcStatus});return e===`admin`?(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(n,`system.admin.summary`),result:r.data,children:e=>(0,V.jsx)(m,{data:e})}),(0,V.jsx)(S,{title:o(n,`system.admin.users`),result:a.data,children:e=>(0,V.jsx)(y,{items:e,titleKey:`email`,metaKey:`role`})}),(0,V.jsx)(S,{title:o(n,`system.admin.audit`),result:s.data,children:e=>(0,V.jsx)(y,{items:e.recent_events||e,titleKey:`act`,metaKey:`sev`})}),(0,V.jsx)(S,{title:o(n,`system.admin.roles`),result:c.data,children:e=>(0,V.jsx)(y,{items:e.roles||e,titleKey:`role`,metaKey:`members`})}),(0,V.jsx)(S,{title:o(n,`system.admin.policies`),result:l.data,children:e=>(0,V.jsx)(y,{items:e.policies||e,titleKey:`label`,metaKey:`enforced`})}),(0,V.jsx)(S,{title:o(n,`system.admin.hardening`),result:u.data,children:e=>(0,V.jsx)(he,{data:e})}),(0,V.jsx)(S,{title:o(n,`system.admin.security`),result:f.data,children:e=>(0,V.jsx)(ge,{data:e})}),(0,V.jsx)(S,{title:o(n,`system.admin.vpc`),result:p.data,className:`xl:col-span-2`,children:e=>(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(O,{variant:`muted`,children:o(n,`system.admin.communityUnavailable`)}),(0,V.jsx)(D,{value:e})]})})]}):(0,V.jsx)(T,{title:o(n,`system.admin.controls`),detail:o(n,`system.admin.controlsDetail`),target:`admin`})}export{J as SystemPage};
1
+ import{S as e,_ as t,b as n,c as r,d as i,g as a,m as o,o as s,t as c,y as l}from"./utils-C3rXoa-U.js";import{r as u,t as d}from"./useQuery-CiRdTQlD.js";import{t as f}from"./workspace-DfxKEttN.js";import{_ as p,a as m,c as h,d as g,g as _,h as v,i as y,l as b,m as x,n as S,p as C,r as w,s as T,t as E,u as D,v as O}from"./primitives-B6WtkLgB.js";import{t as k}from"./input-DW1tXtc0.js";import{a as A,i as j,n as M,r as N,t as P}from"./permissionCopy-Djpwn54H.js";import{t as F}from"./shield-alert-CVE5eXsl.js";import{t as I}from"./users-pZqCRxdD.js";import{h as ee,i as L,t as te,u as R}from"./index-yNtiRyw3.js";import{t as z}from"./button-Ic6omIbs.js";var ne=a(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),B=e(n()),V=l(),H={low:`success`,medium:`warning`,high:`danger`};function re(e,t){return t===`ko`&&e.label_ko||e.label}function U(e,t){return t===`ko`&&e.summary_ko||e.summary}function W(e,t){return t===`ko`&&e.warning_ko||e.warning||``}function ie(){let e=u(),n=t(e=>e.language),[r,a]=B.useState(null),[s,c]=B.useState(!1),[l,m]=B.useState(``),h=d({queryKey:[`networkBoundary`],queryFn:i.networkBoundary}),g=f({mutationFn:e=>i.setNetworkBoundary(e.mode,e.ack),onSuccess:t=>{t.ok&&(e.invalidateQueries({queryKey:[`networkBoundary`]}),a(null),c(!1))}}),y=f({mutationFn:e=>i.setHybridPolicy(e),onSuccess:()=>e.invalidateQueries({queryKey:[`networkBoundary`]})}),b=f({mutationFn:e=>i.previewCloudContext(e)}),[S,T]=B.useState([]),E=f({mutationFn:e=>i.setNodeSensitivity(e.nodeId,e.localOnly),onSuccess:(e,t)=>{e.ok&&T(e=>t.localOnly?[...e,t.nodeId]:e.filter(e=>e!==t.nodeId))}}),D=h.data?.ok?h.data.data:void 0,k=D?.catalog??[],A=D?.mode??``,j=r??A,M=k.find(e=>e.id===j),N=!!M?.requires_ack&&j!==A,P=N&&!s,I=j===A,ee=D?.policy??{},L=b.data?.ok?b.data.data:void 0;return h.isLoading?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.network.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(n,`ui.loading`)})})]}):!D||k.length===0?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.network.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:h.data?.error})})]}):(0,V.jsxs)(C,{"data-testid":`network-boundary-panel`,children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(ne,{className:`h-4 w-4`,"aria-hidden":`true`}),o(n,`system.network.title`)]}),(0,V.jsx)(v,{children:o(n,`system.network.hint`)})]}),(0,V.jsxs)(x,{className:`space-y-3`,children:[(0,V.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[o(n,`system.network.current`),`:`,` `,(0,V.jsx)(`strong`,{"data-testid":`network-boundary-active`,children:n===`ko`&&D.label_ko||D.label})]}),(0,V.jsx)(`div`,{className:`space-y-2`,role:`radiogroup`,"aria-label":o(n,`system.network.title`),children:k.map(e=>{let t=e.id===j;return(0,V.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,"data-testid":`network-boundary-option-${e.id}`,onClick:()=>{a(e.id),c(!1),g.reset()},className:`w-full rounded-md border p-3 text-left transition ${t?`border-primary bg-accent`:`border-border hover:bg-accent/50`}`,children:[(0,V.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`strong`,{className:`text-sm`,children:re(e,n)}),(0,V.jsx)(O,{variant:H[e.risk]||`warning`,children:o(n,`system.permission.risk.${e.risk}`)}),e.id===A?(0,V.jsx)(O,{variant:`muted`,children:o(n,`system.network.current`)}):null]}),(0,V.jsx)(`p`,{className:`mt-1 block text-xs text-muted-foreground`,children:U(e,n)})]},e.id)})}),N?(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border bg-muted p-3`,children:[(0,V.jsxs)(`p`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(F,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:M?W(M,n):``})]}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`network-boundary-ack`,checked:s,onChange:e=>c(e.target.checked)}),o(n,`system.network.ack`)]})]}):null,(0,V.jsx)(z,{"data-testid":`network-boundary-apply`,disabled:I||P||g.isPending,onClick:()=>g.mutate({mode:j,ack:s}),children:o(n,`system.network.apply`)}),g.data&&!g.data.ok?(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:g.data.error}):null,g.data?.ok?(0,V.jsx)(O,{variant:`success`,"data-testid":`network-boundary-applied`,children:o(n,`ui.requestCompleted`)}):null,(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border p-3`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.network.preview.title`)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n,`system.network.preview.hint`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(`input`,{type:`text`,"data-testid":`network-boundary-probe`,value:l,onChange:e=>m(e.target.value),placeholder:o(n,`system.network.preview.placeholder`),className:`min-w-0 flex-1 rounded-md border border-border bg-background px-2 py-1 text-xs`}),(0,V.jsx)(z,{variant:`outline`,"data-testid":`network-boundary-preview`,disabled:!l.trim()||b.isPending,onClick:()=>b.mutate(l.trim()),children:o(n,`system.network.preview.run`)})]}),L?(0,V.jsxs)(`div`,{className:`space-y-1`,"data-testid":`network-boundary-preview-result`,children:[L.allows_cloud?null:(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n,`system.network.preview.localOnly`)}),L.would_block?(0,V.jsx)(O,{variant:`danger`,children:o(n,`system.network.preview.blocked`)}):null,L.titles.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n,`system.network.preview.empty`)}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[o(n,`system.network.preview.count`,{count:L.titles.length}),` · `,o(n,`system.network.preview.tokens`,{tokens:L.token_estimate})]}),(0,V.jsx)(`ul`,{className:`space-y-0.5`,children:L.titles.map((e,t)=>{let r=L.node_ids[t],i=r?S.includes(r):!1;return(0,V.jsxs)(`li`,{className:`flex items-start justify-between gap-2 text-xs`,children:[(0,V.jsxs)(`span`,{className:i?`line-through opacity-60`:void 0,children:[`· `,e]}),r?(0,V.jsx)(`button`,{type:`button`,"data-testid":`network-boundary-hold-${t}`,className:`shrink-0 underline underline-offset-2 opacity-80 hover:opacity-100`,disabled:E.isPending,onClick:()=>E.mutate({nodeId:r,localOnly:!i}),children:o(n,i?`system.network.preview.release`:`system.network.preview.hold`)}):null]},`${r||e}-${t}`)})})]})]}):null,b.data&&!b.data.ok?(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:b.data.error}):null]}),D.allows_cloud?(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border p-3`,"data-testid":`network-boundary-policy`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.network.policy.title`)}),(0,V.jsxs)(`label`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`network-boundary-auto-commit`,checked:!!ee.auto_commit,disabled:y.isPending,onChange:e=>y.mutate({auto_commit:e.target.checked})}),(0,V.jsxs)(`span`,{children:[o(n,`system.network.policy.autoCommit`),(0,V.jsx)(`span`,{className:`mt-0.5 block text-muted-foreground`,children:o(n,`system.network.policy.autoCommitHint`)})]})]}),(0,V.jsxs)(`label`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`network-boundary-multimodal`,checked:!!ee.allow_multimodal,disabled:y.isPending,onChange:e=>y.mutate({allow_multimodal:e.target.checked})}),(0,V.jsxs)(`span`,{children:[o(n,`system.network.policy.multimodal`),(0,V.jsx)(`span`,{className:`mt-0.5 block text-muted-foreground`,children:o(n,`system.network.policy.multimodalHint`)})]})]})]}):null,(0,V.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.network.guards`)}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o(n,`system.network.guards.detail`)}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o(n,`system.network.preview.autoHeld`)})]})]})]})}var G={low:`success`,medium:`warning`,high:`danger`};function ae(){let e=u(),n=t(e=>e.language),[r,a]=B.useState(null),[s,c]=B.useState(!1),l=d({queryKey:[`permissionMode`],queryFn:i.permissionMode}),m=f({mutationFn:e=>i.setPermissionMode(e.mode,e.ack),onSuccess:t=>{t.ok&&(e.invalidateQueries({queryKey:[`permissionMode`]}),a(null),c(!1))}}),h=l.data?.ok?l.data.data:void 0,g=h?.catalog??[],y=h?.mode??``,b=r??y,S=g.find(e=>e.id===b),T=!!S?.requires_ack&&b!==y,E=T&&!s,D=b===y;return l.isLoading?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.permission.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(n,`ui.loading`)})})]}):!h||g.length===0?(0,V.jsxs)(C,{children:[(0,V.jsx)(_,{children:(0,V.jsx)(p,{children:o(n,`system.permission.title`)})}),(0,V.jsx)(x,{children:(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:l.data?.error})})]}):(0,V.jsxs)(C,{"data-testid":`permission-mode-panel`,children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(n,`system.permission.title`)}),(0,V.jsx)(v,{children:o(n,`system.permission.hint`)})]}),(0,V.jsxs)(x,{className:`space-y-3`,children:[(0,V.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[o(n,`system.permission.current`),`:`,` `,(0,V.jsx)(`strong`,{"data-testid":`permission-mode-active`,children:P(h,n)})]}),(0,V.jsx)(`div`,{className:`space-y-2`,role:`radiogroup`,"aria-label":o(n,`system.permission.title`),children:g.map(e=>{let t=e.id===b;return(0,V.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,"data-testid":`permission-mode-option-${e.id}`,onClick:()=>{a(e.id),c(!1),m.reset()},className:`w-full rounded-md border p-3 text-left transition ${t?`border-primary bg-accent`:`border-border hover:bg-accent/50`}`,children:[(0,V.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`strong`,{className:`text-sm`,children:M(e,n)}),(0,V.jsx)(O,{variant:G[e.risk]||`warning`,children:o(n,`system.permission.risk.${e.risk}`)}),e.id===y?(0,V.jsx)(O,{variant:`muted`,children:o(n,`system.permission.current`)}):null]}),(0,V.jsx)(`p`,{className:`mt-1 block text-xs text-muted-foreground`,children:N(e,n)})]},e.id)})}),T?(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border bg-muted p-3`,children:[(0,V.jsxs)(`p`,{className:`flex items-start gap-2 text-xs`,children:[(0,V.jsx)(F,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,V.jsx)(`span`,{children:S?j(S,n):``})]}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,V.jsx)(`input`,{type:`checkbox`,"data-testid":`permission-mode-ack`,checked:s,onChange:e=>c(e.target.checked)}),o(n,`system.permission.ack`)]})]}):null,(0,V.jsx)(z,{"data-testid":`permission-mode-apply`,disabled:D||E||m.isPending,onClick:()=>m.mutate({mode:b,ack:s}),children:o(n,`system.permission.apply`)}),m.data&&!m.data.ok?(0,V.jsx)(w,{title:o(n,`ui.requestUnavailable`),detail:m.data.error}):null,m.data?.ok?(0,V.jsx)(O,{variant:`success`,"data-testid":`permission-mode-applied`,children:o(n,`ui.requestCompleted`)}):null,(0,V.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,V.jsx)(`p`,{className:`text-xs font-medium`,children:o(n,`system.permission.guards`)}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o(n,`system.permission.guards.detail`)})]})]})]})}var K=[{id:`identity`,labelKey:`system.group.identity`},{id:`data`,labelKey:`system.group.data`},{id:`system`,labelKey:`system.group.system`}],q=[{id:`account`,labelKey:`system.tab.account`,group:`identity`},{id:`workspaces`,labelKey:`system.tab.workspaces`,group:`identity`},{id:`snapshots`,labelKey:`system.tab.snapshots`,group:`data`},{id:`activity`,labelKey:`system.tab.activity`,group:`data`},{id:`settings`,labelKey:`system.tab.settings`,group:`system`},{id:`network`,labelKey:`system.tab.network`,group:`system`},{id:`admin`,labelKey:`system.tab.admin`,group:`system`}];function J({initialTab:e}){let n=t(e=>e.mode),r=t(e=>e.language),[i,a]=B.useState(e||`account`);B.useEffect(()=>{q.some(t=>t.id===e)&&a(e)},[e]);let s=n===`basic`?q.filter(e=>e.id===`account`||e.id===`workspaces`||e.id===`snapshots`||e.id===`settings`):q,c=e=>{a(e),L(`/`+{account:`account`,workspaces:`workspace-admin`,snapshots:`snapshots`,activity:`activity`,network:`network`,settings:`settings`,admin:`system-admin`}[e])};return(0,V.jsxs)(`div`,{className:`product-page settings-page space-y-5 pb-8`,children:[(0,V.jsxs)(`header`,{className:`page-hero`,children:[(0,V.jsxs)(`div`,{className:`page-kicker`,children:[(0,V.jsx)(R,{className:`h-4 w-4`}),` `,o(r,`system.kicker`)]}),(0,V.jsx)(`h1`,{className:`page-title`,children:o(r,`system.title`)}),(0,V.jsx)(`p`,{className:`page-copy`,children:o(r,`system.body`)})]}),(0,V.jsx)(`div`,{className:`flex flex-wrap items-end gap-x-6 gap-y-3`,"data-testid":`system-tab-groups`,children:K.map(e=>{let t=s.filter(t=>t.group===e.id);if(!t.length)return null;let n=`system-group-${e.id}`;return(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{id:n,className:`px-1 text-xs font-medium text-muted-foreground`,children:o(r,e.labelKey)}),(0,V.jsx)(g,{ariaLabelledBy:n,tabs:t.map(e=>({id:e.id,label:o(r,e.labelKey)})),value:i,onChange:e=>c(e)})]},e.id)})}),i===`account`?(0,V.jsx)(Y,{}):null,i===`workspaces`?(0,V.jsx)(Z,{}):null,i===`settings`?(0,V.jsx)(le,{}):null,i===`snapshots`?(0,V.jsx)(oe,{}):null,i===`activity`?(0,V.jsx)(se,{}):null,i===`network`?(0,V.jsx)(ce,{}):null,i===`admin`?(0,V.jsx)(_e,{}):null]})}function Y(){let e=u(),n=t(e=>e.language),r=t(e=>e.setWorkspaceId),a=d({queryKey:[`profile`],queryFn:i.profile}),s=d({queryKey:[`sso`],queryFn:i.ssoConfig}),[c,l]=B.useState(``),[g,y]=B.useState(``),[b,w]=B.useState(``),[T,D]=B.useState(``),[O,A]=B.useState(``),j=e=>{e.ok&&(te(),r(null))},M=f({mutationFn:()=>i.login(c,g),onSuccess:j}),N=f({mutationFn:()=>i.register({email:c,password:g,name:b,nickname:T}),onSuccess:j}),P=f({mutationFn:()=>i.updateProfile({name:b,nickname:T}),onSuccess:()=>e.invalidateQueries({queryKey:[`profile`]})}),F=f({mutationFn:()=>i.changePassword(g,O)});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(n,`system.account.profile`),result:a.data,children:e=>(0,V.jsx)(m,{data:e})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(ee,{className:`h-4 w-4`}),` `,o(n,`system.account.title`)]}),(0,V.jsx)(v,{children:o(n,`system.account.detail`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:c,onChange:e=>l(e.target.value),placeholder:o(n,`system.account.email`)}),(0,V.jsx)(k,{type:`password`,value:g,onChange:e=>y(e.target.value),placeholder:o(n,`system.account.password`)}),(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,V.jsx)(k,{value:b,onChange:e=>w(e.target.value),placeholder:o(n,`system.account.name`)}),(0,V.jsx)(k,{value:T,onChange:e=>D(e.target.value),placeholder:o(n,`system.account.nickname`)})]}),(0,V.jsx)(k,{type:`password`,value:O,onChange:e=>A(e.target.value),placeholder:o(n,`system.account.newPassword`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{onClick:()=>M.mutate(),disabled:!c||!g||M.isPending,children:o(n,`system.account.login`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>N.mutate(),disabled:!c||!g||N.isPending,children:o(n,`system.account.register`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>P.mutate(),disabled:P.isPending,children:o(n,`system.account.save`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>F.mutate(),disabled:!g||!O||F.isPending,children:o(n,`system.account.changePassword`)}),(0,V.jsx)(E,{label:o(n,`system.account.logout`),action:()=>i.logout(),onSuccess:j})]}),[M.data,N.data,P.data,F.data].filter(Boolean).map((e,t)=>(0,V.jsx)(h,{result:e,successLabel:o(n,`system.account.requestDone`)},t))]})]}),(0,V.jsx)(S,{title:o(n,`system.account.signInOptions`),result:s.data,className:`xl:col-span-2`,children:e=>(0,V.jsx)(X,{data:e})})]})}function X({data:e}){let n=t(e=>e.mode),r=t(e=>e.language),i=!!e.enabled||c(e.providers).length>0;return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)($,{title:o(r,i?`system.account.signIn.sso`:`system.account.signIn.localOnly`),status:o(r,i?`system.value.enabled`:`system.storage.local.badge`),detail:o(r,i?`system.account.signIn.ssoDetail`:`system.account.signIn.localOnlyDetail`)}),n===`basic`?null:(0,V.jsx)(D,{value:e})]})}function Z(){let e=u(),n=t(e=>e.language),{setWorkspaceId:r}=t(),a=d({queryKey:[`workspaceRegistry`],queryFn:i.workspaceRegistry}),s=d({queryKey:[`invitations`],queryFn:i.invitations}),[l,m]=B.useState(``),[h,g]=B.useState(``),[b,w]=B.useState(``),T=f({mutationFn:()=>i.createOrg(l),onSuccess:()=>e.invalidateQueries({queryKey:[`workspaceRegistry`]})}),D=f({mutationFn:()=>i.createInvitation({email:h||null,role:`member`,expires_hours:168}),onSuccess:()=>e.invalidateQueries({queryKey:[`invitations`]})}),O=f({mutationFn:()=>i.acceptInvitation(b),onSuccess:()=>e.invalidateQueries({queryKey:[`workspaceRegistry`]})}),A=c(a.data?.data?.workspaces);return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[1.1fr_0.9fr]`,children:[(0,V.jsx)(S,{title:o(n,`system.workspace.yours`),result:a.data,children:()=>(0,V.jsx)(`div`,{className:`grid gap-2`,children:A.map(e=>{let t=String(e.workspace_id||e.id);return(0,V.jsx)(`div`,{className:`rounded-md border border-border p-3`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`font-medium`,children:String(e.name||t)}),(0,V.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[String(e.type||``),` · `,String(e.your_role||e.role||``)]})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{variant:`outline`,onClick:()=>r(t),children:o(n,`system.workspace.use`)}),(0,V.jsx)(E,{label:o(n,`system.workspace.activate`),action:()=>i.activateWorkspace(t),invalidate:[`workspaceRegistry`]}),(0,V.jsx)(E,{label:o(n,`system.workspace.archive`),action:()=>i.archiveWorkspace(t),invalidate:[`workspaceRegistry`],variant:`destructive`})]})]})},t)})})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(I,{className:`h-4 w-4`}),` `,o(n,`system.workspace.organizations`)]}),(0,V.jsx)(v,{children:o(n,`system.workspace.organizationsHint`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:l,onChange:e=>m(e.target.value),placeholder:o(n,`system.workspace.orgPlaceholder`)}),(0,V.jsx)(z,{disabled:!l.trim()||T.isPending,onClick:()=>T.mutate(),children:o(n,`system.workspace.createOrg`)}),(0,V.jsx)(k,{value:h,onChange:e=>g(e.target.value),placeholder:o(n,`system.workspace.inviteeEmail`)}),(0,V.jsx)(z,{variant:`outline`,disabled:D.isPending,onClick:()=>D.mutate(),children:o(n,`system.workspace.createInvite`)}),(0,V.jsx)(k,{value:b,onChange:e=>w(e.target.value),placeholder:o(n,`system.workspace.inviteToken`)}),(0,V.jsx)(z,{variant:`outline`,disabled:!b.trim()||O.isPending,onClick:()=>O.mutate(),children:o(n,`system.workspace.acceptInvite`)}),(0,V.jsx)(S,{title:o(n,`system.workspace.invitations`),result:s.data,children:e=>(0,V.jsx)(y,{items:e.invitations,titleKey:`token`,metaKey:`role`})})]})]})]})}function oe(){let e=t(e=>e.language),n=d({queryKey:[`snapshots`],queryFn:i.snapshots}),r=d({queryKey:[`timeMachine`],queryFn:i.timeMachine}),[a,s]=B.useState(``),[l,u]=B.useState(``),[m,g]=B.useState(``),b=f({mutationFn:()=>i.createSnapshot(a||o(e,`system.snapshots.defaultName`))}),w=f({mutationFn:()=>i.compareSnapshots(l,m)}),T=c(n.data?.data?.snapshots);return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(e,`system.snapshots.title`),result:n.data,children:()=>(0,V.jsx)(`div`,{className:`space-y-2`,children:T.map(t=>{let n=String(t.id||t.snapshot_id);return(0,V.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,V.jsx)(`div`,{className:`font-medium`,children:String(t.name||n)}),(0,V.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,V.jsx)(E,{label:o(e,`system.snapshots.export`),action:()=>i.exportSnapshot(n)}),(0,V.jsx)(E,{label:o(e,`system.snapshots.mergeRestore`),action:()=>i.restoreSnapshot(n),variant:`outline`})]})]},n)})})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(e,`system.snapshots.actions`)}),(0,V.jsx)(v,{children:o(e,`system.snapshots.actionsHint`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:a,onChange:e=>s(e.target.value),placeholder:o(e,`system.snapshots.namePlaceholder`)}),(0,V.jsx)(z,{onClick:()=>b.mutate(),disabled:b.isPending,children:o(e,`system.snapshots.create`)}),(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,V.jsx)(k,{value:l,onChange:e=>u(e.target.value),placeholder:o(e,`system.snapshots.beforeId`)}),(0,V.jsx)(k,{value:m,onChange:e=>g(e.target.value),placeholder:o(e,`system.snapshots.afterId`)})]}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>w.mutate(),disabled:!l||!m||w.isPending,children:o(e,`system.snapshots.compare`)}),w.data?(0,V.jsx)(h,{result:w.data,successLabel:o(e,`system.snapshots.compareDone`)}):null]})]}),(0,V.jsx)(S,{title:o(e,`system.snapshots.timeline`),result:r.data,className:`xl:col-span-2`,children:e=>(0,V.jsx)(y,{items:e.events||e,titleKey:`event`,metaKey:`type`,limit:14})})]})}function se(){let e=t(e=>e.language),n=d({queryKey:[`realtimeFeed`],queryFn:i.realtimeFeed}),r=d({queryKey:[`presence`],queryFn:i.presence});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(e,`system.activity.feed`),result:n.data,children:e=>(0,V.jsx)(y,{items:e.events,titleKey:`event_type`,metaKey:`area`,limit:14})}),(0,V.jsx)(S,{title:o(e,`system.activity.presence`),result:r.data,children:e=>(0,V.jsx)(ue,{data:e})})]})}function ce(){let e=u(),n=t(e=>e.language),r=d({queryKey:[`networkIdentity`],queryFn:i.networkIdentity}),a=d({queryKey:[`networkPeers`],queryFn:i.networkPeers}),[s,l]=B.useState(``),[m,g]=B.useState(``),[y,b]=B.useState(``),w=f({mutationFn:()=>i.pairPeer({name:s,base_url:m,public_key:y}),onSuccess:()=>e.invalidateQueries({queryKey:[`networkPeers`]})});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[0.8fr_1.2fr]`,children:[(0,V.jsx)(S,{title:o(n,`system.network.identity`),result:r.data,children:e=>(0,V.jsx)(de,{data:e})}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,V.jsx)(A,{className:`h-4 w-4`}),` `,o(n,`system.network.pair`)]}),(0,V.jsx)(v,{children:o(n,`system.network.pairHint`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsx)(k,{value:s,onChange:e=>l(e.target.value),placeholder:o(n,`system.network.deviceName`)}),(0,V.jsx)(k,{value:m,onChange:e=>g(e.target.value),placeholder:o(n,`system.network.address`)}),(0,V.jsx)(k,{value:y,onChange:e=>b(e.target.value),placeholder:o(n,`system.network.publicKey`)}),(0,V.jsx)(z,{disabled:!s||!m||!y||w.isPending,onClick:()=>w.mutate(),children:o(n,`system.network.pair`)}),w.data?(0,V.jsx)(h,{result:w.data,successLabel:o(n,`system.network.pairDone`)}):null]})]}),(0,V.jsx)(S,{title:o(n,`system.network.peers`),result:a.data,className:`xl:col-span-2`,children:e=>(0,V.jsx)(`div`,{className:`grid gap-2`,children:c(e.peers).map(e=>{let r=String(e.peer_id||e.id);return(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-md border border-border p-3`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`font-medium`,children:String(e.name||r)}),(0,V.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:String(e.base_url||``)})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(E,{label:o(n,`system.network.pushWorkspace`),action:()=>i.pushPeer(r,t.getState().workspaceId)}),(0,V.jsx)(E,{label:o(n,`system.network.unpair`),action:()=>i.unpairPeer(r),invalidate:[`networkPeers`],variant:`destructive`})]})]},r)})})})]})}function le(){let e=u(),{theme:n,setTheme:r,mode:a,setMode:s}=t(),c=t(e=>e.language),l=d({queryKey:[`health`],queryFn:i.health}),m=d({queryKey:[`sysinfo`],queryFn:i.sysinfo}),g=d({queryKey:[`computerMemory`],queryFn:i.computerMemory}),y=d({queryKey:[`brainStorage`],queryFn:i.brainStorage}),w=d({queryKey:[`backupHealth`],queryFn:i.backupHealth}),[T,O]=B.useState(``),[A,j]=B.useState(`lattice_brain`),[M,N]=B.useState(!1),[P,F]=B.useState(``),[I,ee]=B.useState(``),[L,te]=B.useState(``),[R,ne]=B.useState(!1),[H,re]=B.useState(!1),U=f({mutationFn:e=>i.dockerPostgres({consent:e,dry_run:!e,port:5432})}),W=f({mutationFn:()=>i.migratePostgres({dsn:T,schema_name:A||`lattice_brain`,dry_run:!0})}),G=f({mutationFn:()=>i.brainArchive({path:P.trim()||null,passphrase:L}),onSuccess:()=>e.invalidateQueries({queryKey:[`backupHealth`]})}),K=f({mutationFn:()=>i.brainArchiveInspect({path:I,passphrase:L||null})}),q=f({mutationFn:()=>i.brainArchiveVerify({path:I,passphrase:L})}),J=f({mutationFn:()=>i.brainArchiveRestore({path:I,passphrase:L,dry_run:!0,confirm:!1})}),Y=f({mutationFn:()=>i.brainArchiveRestore({path:I,passphrase:L,dry_run:!1,confirm:R}),onSuccess:()=>{e.invalidateQueries({queryKey:[`brainStorage`]}),e.invalidateQueries({queryKey:[`backupHealth`]})}}),X=f({mutationFn:()=>i.brainArchiveImport({path:I,passphrase:L,dry_run:!0,confirm:!1})}),Z=f({mutationFn:()=>i.brainArchiveImport({path:I,passphrase:L,dry_run:!1,confirm:H}),onSuccess:()=>{e.invalidateQueries({queryKey:[`brainStorage`]}),e.invalidateQueries({queryKey:[`backupHealth`]})}});return(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-3`,children:[(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.panel.appearance`)}),(0,V.jsx)(v,{children:o(c,`system.panel.appearance.hint`)})]}),(0,V.jsxs)(x,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{variant:n===`dark`?`default`:`outline`,onClick:()=>r(`dark`),children:o(c,`system.theme.dark`)}),(0,V.jsx)(z,{variant:n===`light`?`default`:`outline`,onClick:()=>r(`light`),children:o(c,`system.theme.light`)})]})]}),(0,V.jsxs)(C,{children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.panel.detailLevel`)}),(0,V.jsx)(v,{children:o(c,`system.panel.detailLevel.hint`)})]}),(0,V.jsx)(x,{className:`flex flex-wrap gap-2`,children:[`basic`,`advanced`,`admin`].map(e=>(0,V.jsx)(z,{variant:a===e?`default`:`outline`,onClick:()=>s(e),children:o(c,`shell.mode.${e}`)},e))})]}),(0,V.jsx)(ae,{}),(0,V.jsx)(ie,{}),(0,V.jsx)(S,{title:a===`basic`?o(c,`system.panel.brainStatus`):o(c,`system.panel.serverHealth`),result:l.data,children:e=>(0,V.jsx)(fe,{data:e})}),(0,V.jsx)(S,{title:a===`basic`?o(c,`system.panel.readiness`):o(c,`system.panel.hostTelemetry`),result:m.data,children:e=>a===`basic`?(0,V.jsx)(b,{stats:[{label:o(c,`system.stat.cpu`),value:`${String(e.cpu_pct||`0`)}%`},{label:o(c,`system.stat.memory`),value:`${String(e.ram_pct||`0`)}%`},{label:o(c,`system.stat.gpu`),value:`${String(e.gpu_mem_pct||`0`)}%`},{label:o(c,`system.stat.localStatus`),value:o(c,`system.stat.ready`)}]}):(0,V.jsx)(D,{value:e})}),(0,V.jsx)(S,{title:a===`basic`?o(c,`system.storage.title`):o(c,`system.panel.brainStorage`),result:y.data,className:`xl:col-span-3`,children:e=>(0,V.jsx)(pe,{data:e,mode:a,language:c})}),a===`basic`?null:(0,V.jsx)(S,{title:o(c,`system.backup.health`),result:w.data,className:`xl:col-span-3`,children:e=>(0,V.jsx)(me,{data:e})}),a===`basic`?null:(0,V.jsxs)(C,{className:`xl:col-span-3`,children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.archive.title`)}),(0,V.jsx)(v,{children:o(c,`system.archive.detail`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-[1fr_1fr]`,children:[(0,V.jsx)(k,{value:P,onChange:e=>F(e.target.value),placeholder:o(c,`system.archive.exportPath`)}),(0,V.jsx)(k,{value:I,onChange:e=>ee(e.target.value),placeholder:o(c,`system.archive.restorePath`)})]}),(0,V.jsx)(k,{type:`password`,value:L,onChange:e=>te(e.target.value),placeholder:o(c,`system.archive.passphrase`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{onClick:()=>G.mutate(),disabled:!L||G.isPending,children:o(c,`system.archive.export`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>K.mutate(),disabled:!I||K.isPending,children:o(c,`system.archive.inspect`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>q.mutate(),disabled:!I||!L||q.isPending,children:o(c,`system.archive.verify`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>J.mutate(),disabled:!I||!L||J.isPending,children:o(c,`system.archive.restoreDryRun`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>X.mutate(),disabled:!I||!L||X.isPending,children:o(c,`system.archive.importDryRun`)}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:R,onChange:e=>ne(e.target.checked)}),o(c,`system.archive.confirmRestore`)]}),(0,V.jsx)(z,{variant:`destructive`,onClick:()=>Y.mutate(),disabled:!I||!L||!R||Y.isPending,children:o(c,`system.archive.restore`)}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:H,onChange:e=>re(e.target.checked)}),o(c,`system.archive.confirmImport`)]}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>Z.mutate(),disabled:!I||!L||!H||Z.isPending,children:o(c,`system.archive.import`)})]}),[G.data,K.data,q.data,J.data,Y.data,X.data,Z.data].filter(Boolean).map((e,t)=>(0,V.jsx)(h,{result:e,successLabel:o(c,`system.archive.requestDone`)},t))]})]}),a===`basic`?null:(0,V.jsxs)(C,{className:`xl:col-span-3`,children:[(0,V.jsxs)(_,{children:[(0,V.jsx)(p,{children:o(c,`system.scale.title`)}),(0,V.jsx)(v,{children:o(c,`system.scale.detail`)})]}),(0,V.jsxs)(x,{className:`grid gap-3`,children:[(0,V.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-[1fr_220px]`,children:[(0,V.jsx)(k,{value:T,onChange:e=>O(e.target.value),placeholder:o(c,`system.scale.dsn`)}),(0,V.jsx)(k,{value:A,onChange:e=>j(e.target.value),placeholder:o(c,`system.scale.schema`)})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(z,{variant:`outline`,onClick:()=>U.mutate(!1),disabled:U.isPending,children:o(c,`system.scale.dockerPlan`)}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:M,onChange:e=>N(e.target.checked)}),o(c,`system.scale.dockerConsent`)]}),(0,V.jsx)(z,{onClick:()=>U.mutate(!0),disabled:!M||U.isPending,children:o(c,`system.scale.dockerStart`)}),(0,V.jsx)(z,{variant:`outline`,onClick:()=>W.mutate(),disabled:!T||W.isPending,children:o(c,`system.scale.migrationPlan`)})]}),U.data?(0,V.jsx)(h,{result:U.data,successLabel:o(c,`system.scale.dockerDone`)}):null,W.data?(0,V.jsx)(h,{result:W.data,successLabel:o(c,`system.scale.migrationDone`)}):null]})]}),a===`basic`?null:(0,V.jsx)(S,{title:o(c,`system.computerMemory.title`),result:g.data,className:`xl:col-span-3`,children:e=>(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(D,{value:e}),(0,V.jsxs)(`div`,{className:`flex gap-2`,children:[(0,V.jsx)(E,{label:o(c,`system.computerMemory.enable`),action:()=>i.setComputerMemory(!0),invalidate:[`computerMemory`]}),(0,V.jsx)(E,{label:o(c,`system.computerMemory.disable`),action:()=>i.setComputerMemory(!1),invalidate:[`computerMemory`],variant:`destructive`})]})]})})]})}function Q(e,t,n=o(e,`system.value.notReported`)){return t==null||t===``?n:typeof t==`boolean`?o(e,t?`system.value.enabled`:`system.value.disabled`):String(t)}function ue({data:e}){let n=t(e=>e.language),r=c(e.presence||e.clients||e);return r.length?(0,V.jsx)(y,{items:r,titleKey:`user`,metaKey:`workspace_id`}):(0,V.jsx)(w,{title:o(n,`system.presence.empty`),detail:o(n,`system.presence.emptyDetail`)})}function de({data:e}){let n=t(e=>e.mode),i=t(e=>e.language),a=Q(i,e.public_key,``);return n===`basic`?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)($,{title:o(i,`system.device.thisMac`),status:o(i,`system.value.trusted`),detail:o(i,`system.device.thisMacDetail`)}),(0,V.jsx)(O,{variant:`muted`,children:Q(i,e.algorithm,o(i,`system.value.localIdentity`))})]}):(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(O,{variant:`success`,children:o(i,`system.value.localDevice`)}),(0,V.jsx)(O,{variant:`muted`,children:Q(i,e.algorithm,o(i,`system.value.identityKey`))})]}),(0,V.jsx)(m,{data:{device_id:e.device_id||e.id||o(i,`system.value.notReported`),fingerprint:e.fingerprint||o(i,`system.value.notReported`),public_key:a?r(a.replace(/\s+/g,` `),72):o(i,`system.value.notReported`)}})]})}function fe({data:e}){let n=t(e=>e.mode),r=t(e=>e.language);return n===`basic`?(0,V.jsx)($,{title:o(r,`system.health.title`),status:o(r,`system.health.ok`),detail:o(r,`system.health.detail`)}):(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(r,`system.health.status`),value:e.status||e.ok||o(r,`system.value.reported`)},{label:o(r,`system.health.version`),value:e.version||o(r,`system.value.notReported`)},{label:o(r,`system.health.mode`),value:e.mode||e.environment||o(r,`system.value.local`)},{label:o(r,`system.health.port`),value:e.port||e.backend_port||o(r,`system.value.configured`)}]}),(0,V.jsx)(D,{value:e})]})}function pe({data:e,mode:t=`advanced`,language:n=`en`}){let r=s(e.active)?e.active:e,i=s(e.postgres)?e.postgres:{},a=s(e.backup_health)?e.backup_health:{},c=r.vector_search||r.vector||e.vector_search||e.sqlite_vec,l=!!(i.available||i.connected||i.enabled),u=!!c&&String(c).toLowerCase()!==`not reported`;return t===`basic`?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)($,{title:o(n,`system.storage.local.title`),status:o(n,`system.storage.local.badge`),detail:o(n,`system.storage.local.detail`)}),(0,V.jsx)($,{title:o(n,`system.storage.search.title`),status:u?o(n,`system.storage.search.on`):o(n,`system.storage.search.pending`),detail:u?o(n,`system.storage.search.detailOn`):o(n,`system.storage.search.detailPending`)})]}):(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.storage.activeEngine`),value:r.engine||e.engine||o(n,`system.storage.sqlite`)},{label:o(n,`system.storage.sqliteDefault`),value:r.engine===`postgres`?o(n,`system.value.scaleMode`):o(n,`system.value.enabled`)},{label:o(n,`system.storage.vector`),value:c||o(n,`system.value.notReported`)},{label:o(n,`system.storage.postgres`),value:l?o(n,`system.value.available`):o(n,`system.value.optional`)}]}),(0,V.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,V.jsx)($,{title:o(n,`system.storage.sqlite`),status:r.available===!1?o(n,`system.value.unavailable`):o(n,`system.value.default`),detail:Q(n,r.reason||r.path||e.path,o(n,`system.storage.sqliteDetail`))}),(0,V.jsx)($,{title:o(n,`system.storage.vector`),status:Q(n,c,o(n,`system.value.reported`)),detail:Q(n,r.vector_reason||r.sqlite_vec_reason||e.vector_reason,o(n,`system.storage.vectorDetail`))}),(0,V.jsx)($,{title:o(n,`system.storage.postgres`),status:l?o(n,`system.value.available`):o(n,`system.value.notEnabled`),detail:Q(n,i.reason||i.dsn||i.status,o(n,`system.storage.postgresDetail`))})]}),Object.keys(a).length?(0,V.jsx)(D,{value:{backup_health:a}}):null]})}function me({data:e}){let n=t(e=>e.language);return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.backup.available`),value:e.available===!1?o(n,`system.value.no`):o(n,`system.value.yes`)},{label:o(n,`system.backup.backups`),value:e.count||e.backups||0},{label:o(n,`system.backup.encrypted`),value:e.encrypted_archives||0},{label:o(n,`system.backup.zip`),value:e.zip_backups||0}]}),(0,V.jsx)(m,{data:{directory:e.directory||o(n,`system.value.notReported`),latest:e.latest||o(n,`system.value.noneReported`),last_verified:e.last_verified||e.verified_at||o(n,`system.value.notReported`),failure:e.error||e.reason||o(n,`system.value.noneReported`)}})]})}function $({title:e,status:t,detail:n}){let r=/unavailable|failed|denied|disabled|not enabled|사용 불가|실패|거부|비활성|활성화되지 않음/i.test(t)?`warning`:`success`;return(0,V.jsxs)(`div`,{className:`rounded-md border border-border bg-background p-3`,children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,V.jsx)(`div`,{className:`font-medium`,children:e}),(0,V.jsx)(O,{variant:r,children:t})]}),(0,V.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:n})]})}function he({data:e}){let n=t(e=>e.language),r=s(e.startup)?e.startup:{},i=s(e.privacy)?e.privacy:{},a=s(e.storage)?e.storage:{},c=s(e.backup)?e.backup:{},l=s(e.device_identity)?e.device_identity:{},u=s(e.permissions)?e.permissions:{};return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.hardening.version`),value:e.version||o(n,`system.value.reported`)},{label:o(n,`system.hardening.localOnly`),value:i.local_only_default??r.local_only_default??o(n,`system.value.reported`)},{label:o(n,`system.hardening.storage`),value:s(a.active)?a.active.engine:o(n,`system.value.reported`)},{label:o(n,`system.hardening.backups`),value:c.count||c.available||o(n,`system.value.reported`)}]}),(0,V.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:[(0,V.jsx)($,{title:o(n,`system.hardening.startup`),status:o(n,r.network_exposed?`system.value.networkExposed`:`system.value.localOnly`),detail:o(n,`system.hardening.startupDetail`)}),(0,V.jsx)($,{title:o(n,`system.hardening.integrations`),status:o(n,i.local_only_default===!1?`system.value.reviewRequired`:`system.value.optIn`),detail:o(n,`system.hardening.integrationsDetail`)}),(0,V.jsx)($,{title:o(n,`system.hardening.identity`),status:Q(n,l.algorithm||l.fingerprint,o(n,`system.value.reported`)),detail:Q(n,l.storage,o(n,`system.hardening.identityStorage`))}),(0,V.jsx)($,{title:o(n,`system.hardening.permissions`),status:o(n,u.destructive_restore_requires_confirmation===!1?`system.value.reviewRequired`:`system.value.guarded`),detail:o(n,`system.hardening.permissionsDetail`)})]})]})}function ge({data:e}){let n=t(e=>e.language),r=s(e.cards)?e.cards:{},i=s(e.severity_counts)?e.severity_counts:{};return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(b,{stats:[{label:o(n,`system.security.eventsToday`),value:r.events_today||0},{label:o(n,`system.security.highRisk`),value:r.high_risk_events||i.high||0},{label:o(n,`system.security.review`),value:r.review_required||0},{label:o(n,`system.security.riskRate`),value:e.risk_rate||0}]}),(0,V.jsx)(D,{value:{severity_counts:i,sensitive_fields:e.field_counts||{}}})]})}function _e(){let e=t(e=>e.mode),n=t(e=>e.language),r=d({queryKey:[`adminSummary`],queryFn:i.adminSummary}),a=d({queryKey:[`adminUsers`],queryFn:i.adminUsers}),s=d({queryKey:[`adminAudit`],queryFn:()=>i.adminAudit()}),c=d({queryKey:[`adminRoles`],queryFn:i.adminRoles}),l=d({queryKey:[`adminPolicies`],queryFn:i.adminPolicies}),u=d({queryKey:[`adminProductHardening`],queryFn:i.adminProductHardening}),f=d({queryKey:[`adminSecurity`],queryFn:i.adminSecurity}),p=d({queryKey:[`vpcStatus`],queryFn:i.vpcStatus});return e===`admin`?(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(S,{title:o(n,`system.admin.summary`),result:r.data,children:e=>(0,V.jsx)(m,{data:e})}),(0,V.jsx)(S,{title:o(n,`system.admin.users`),result:a.data,children:e=>(0,V.jsx)(y,{items:e,titleKey:`email`,metaKey:`role`})}),(0,V.jsx)(S,{title:o(n,`system.admin.audit`),result:s.data,children:e=>(0,V.jsx)(y,{items:e.recent_events||e,titleKey:`act`,metaKey:`sev`})}),(0,V.jsx)(S,{title:o(n,`system.admin.roles`),result:c.data,children:e=>(0,V.jsx)(y,{items:e.roles||e,titleKey:`role`,metaKey:`members`})}),(0,V.jsx)(S,{title:o(n,`system.admin.policies`),result:l.data,children:e=>(0,V.jsx)(y,{items:e.policies||e,titleKey:`label`,metaKey:`enforced`})}),(0,V.jsx)(S,{title:o(n,`system.admin.hardening`),result:u.data,children:e=>(0,V.jsx)(he,{data:e})}),(0,V.jsx)(S,{title:o(n,`system.admin.security`),result:f.data,children:e=>(0,V.jsx)(ge,{data:e})}),(0,V.jsx)(S,{title:o(n,`system.admin.vpc`),result:p.data,className:`xl:col-span-2`,children:e=>(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(O,{variant:`muted`,children:o(n,`system.admin.communityUnavailable`)}),(0,V.jsx)(D,{value:e})]})})]}):(0,V.jsx)(T,{title:o(n,`system.admin.controls`),detail:o(n,`system.admin.controlsDetail`),target:`admin`})}export{J as SystemPage};
@@ -1 +1 @@
1
- import{g as e}from"./utils-fEGWreKB.js";var t=e(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]);export{t};
1
+ import{g as e}from"./utils-C3rXoa-U.js";var t=e(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{g as e}from"./utils-C3rXoa-U.js";var t=e(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]);export{t};
@@ -1 +1 @@
1
- import{g as e}from"./utils-fEGWreKB.js";var t=e(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]);export{t};
1
+ import{g as e}from"./utils-C3rXoa-U.js";var t=e(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]);export{t};