ltcai 11.9.0 → 12.0.0

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 (127) hide show
  1. package/README.md +80 -59
  2. package/docs/CHANGELOG.md +92 -0
  3. package/docs/COMMUNITY_AND_PLUGINS.md +1 -1
  4. package/docs/DEVELOPMENT.md +267 -119
  5. package/docs/ENTERPRISE.md +1 -1
  6. package/docs/MULTI_AGENT_RUNTIME.md +4 -4
  7. package/docs/ONBOARDING.md +13 -3
  8. package/docs/OPERATIONS.md +13 -4
  9. package/docs/REALTIME_COLLABORATION.md +1 -1
  10. package/docs/ROADMAP.md +113 -0
  11. package/docs/TRUST_MODEL.md +16 -2
  12. package/docs/WHY_LATTICE.md +8 -2
  13. package/docs/WORKFLOW_DESIGNER.md +2 -2
  14. package/docs/kg-schema.md +51 -5
  15. package/docs/mcp-tools.md +17 -0
  16. package/lattice_brain/__init__.py +1 -1
  17. package/lattice_brain/graph/_kg_common/extraction.py +459 -105
  18. package/lattice_brain/graph/_kg_common/normalize.py +305 -0
  19. package/lattice_brain/graph/_kg_common/patterns.py +275 -0
  20. package/lattice_brain/graph/_kg_common/relations.py +12 -3
  21. package/lattice_brain/graph/_kg_common/sections.py +107 -0
  22. package/lattice_brain/graph/_kg_constants.py +7 -0
  23. package/latticeai/__init__.py +1 -1
  24. package/latticeai/api/agent_worker_seam.py +32 -0
  25. package/latticeai/api/worker_compute.py +78 -3
  26. package/latticeai/core/embedding_providers/__init__.py +16 -0
  27. package/latticeai/core/embedding_providers/autodetect.py +302 -0
  28. package/latticeai/core/embedding_providers/base.py +25 -0
  29. package/latticeai/core/embedding_providers/profiles.py +44 -0
  30. package/latticeai/core/embedding_providers/text.py +74 -8
  31. package/latticeai/core/vector_index/__init__.py +61 -0
  32. package/latticeai/core/vector_index/hnsw.py +383 -0
  33. package/latticeai/core/vector_index/sidecar.py +329 -0
  34. package/latticeai/models/router/generation.py +101 -22
  35. package/latticeai/models/router/loading.py +109 -4
  36. package/latticeai/runtime/brain_runtime.py +43 -9
  37. package/latticeai/runtime/build_phases/worker_profile.py +13 -4
  38. package/latticeai/services/architecture_readiness.py +2 -2
  39. package/latticeai/services/product_readiness.py +10 -5
  40. package/latticeai/services/search_service.py +7 -0
  41. package/latticeai/tools/__init__.py +6 -1
  42. package/latticeai/tools/documents.py +12 -0
  43. package/latticeai/tools/markup.py +152 -0
  44. package/package.json +2 -1
  45. package/scripts/check_current_release_docs.mjs +1 -1
  46. package/scripts/compose_openapi.py +2 -0
  47. package/scripts/openapi_route_families.json +7 -3
  48. package/scripts/publish_release.mjs +157 -0
  49. package/scripts/release_screen_claims.json +12 -0
  50. package/src-tauri/Cargo.lock +44 -10
  51. package/src-tauri/Cargo.toml +1 -1
  52. package/src-tauri/tauri.conf.json +1 -1
  53. package/static/app/asset-manifest.json +47 -41
  54. package/static/app/assets/Act-Cf1L2709.js +2 -0
  55. package/static/app/assets/AdminConsole-DPAbLTYV.js +1 -0
  56. package/static/app/assets/Brain-DqamGrj-.js +2 -0
  57. package/static/app/assets/BrainHome-MHe2_RYs.js +2 -0
  58. package/static/app/assets/BrainSignals-CQPPfyyH.js +1 -0
  59. package/static/app/assets/Capture-DGdIH_Zc.js +1 -0
  60. package/static/app/assets/Chronicle-C-UlCJoJ.js +1 -0
  61. package/static/app/assets/CommandPalette-WNT4EqUX.js +1 -0
  62. package/static/app/assets/DigitalBrainExplorer-CEBH5Cwc.js +321 -0
  63. package/static/app/assets/Library-C6xd1dlf.js +1 -0
  64. package/static/app/assets/LivingBrain-BEk-0ohw.js +1 -0
  65. package/static/app/assets/ProductFlow-CZLm5iXh.js +1 -0
  66. package/static/app/assets/QueryClientProvider-B3OjqSyJ.js +1 -0
  67. package/static/app/assets/ReviewCard-CEHG6evf.js +3 -0
  68. package/static/app/assets/RunsListPanel-CLtEJSRW.js +1 -0
  69. package/static/app/assets/System-CAxwBUXw.js +1 -0
  70. package/static/app/assets/WorkflowGraph-Dj10RuGE.js +1 -0
  71. package/static/app/assets/WorkflowsPanel-Kyeh_LIT.js +2 -0
  72. package/static/app/assets/actHelpers-CtSmK9Dw.js +1 -0
  73. package/static/app/assets/arrow-left-CRl5EO4D.js +1 -0
  74. package/static/app/assets/{bot-Bc3Q27YR.js → bot-DhUGRel2.js} +1 -1
  75. package/static/app/assets/brain-CLkhHsHF.js +1 -0
  76. package/static/app/assets/button-CmaEqG1T.js +1 -0
  77. package/static/app/assets/circle-check-CFgejkOS.js +1 -0
  78. package/static/app/assets/{circle-pause-BGMiV8UU.js → circle-pause-l96izbxj.js} +1 -1
  79. package/static/app/assets/{circle-play-DoanLHnd.js → circle-play-CrZa25_q.js} +1 -1
  80. package/static/app/assets/{cpu-DwzNf82m.js → cpu-BaXudqwl.js} +1 -1
  81. package/static/app/assets/{download-Ddw49yCV.js → download-hCVFPiyc.js} +1 -1
  82. package/static/app/assets/{folder-open-Brd6Kvto.js → folder-open-CHL82Yp7.js} +1 -1
  83. package/static/app/assets/{hard-drive-Bu-DTJdB.js → hard-drive-DDzET7lk.js} +1 -1
  84. package/static/app/assets/{index-CGdg_aq9.css → index-CB93CZWW.css} +1 -1
  85. package/static/app/assets/index-D2H-wSl6.js +13 -0
  86. package/static/app/assets/input-Df1CAY_I.js +1 -0
  87. package/static/app/assets/jsx-runtime-bzQ4Vb5N.js +1 -0
  88. package/static/app/assets/{link-2-DZ4OA5tJ.js → link-2-xNnTIX1_.js} +1 -1
  89. package/static/app/assets/{permissionCopy-D9TR0F8b.js → permissionCopy-D3aWHco-.js} +1 -1
  90. package/static/app/assets/primitives-BioD2slS.js +1 -0
  91. package/static/app/assets/search-BzBw8YcW.js +1 -0
  92. package/static/app/assets/{share-2-BC5FirFv.js → share-2-FkzGf8Df.js} +1 -1
  93. package/static/app/assets/{shield-alert-DUbR2W2s.js → shield-alert-B3dwzik4.js} +1 -1
  94. package/static/app/assets/sourceMeta-DQSY_tah.js +1 -0
  95. package/static/app/assets/textarea-P8o6pvOP.js +1 -0
  96. package/static/app/assets/useFocusTrap-hswOIkXE.js +1 -0
  97. package/static/app/assets/useMutation-OJLrYSRA.js +1 -0
  98. package/static/app/assets/workspace-BCuk3Ku9.js +1 -0
  99. package/static/app/index.html +4 -4
  100. package/static/sw.js +1 -1
  101. package/static/app/assets/Act-B4WT81kh.js +0 -1
  102. package/static/app/assets/AdminConsole--Wf71m-o.js +0 -1
  103. package/static/app/assets/Brain-CtYaa26c.js +0 -321
  104. package/static/app/assets/BrainHome-Be2VPJEc.js +0 -2
  105. package/static/app/assets/BrainSignals-C0__xgpG.js +0 -1
  106. package/static/app/assets/Capture-DdNi5Peb.js +0 -1
  107. package/static/app/assets/Chronicle-B3hNveeI.js +0 -1
  108. package/static/app/assets/CommandPalette-CIsnSsFL.js +0 -1
  109. package/static/app/assets/Library-Bl5XClFV.js +0 -1
  110. package/static/app/assets/LivingBrain-DjkTB_gh.js +0 -1
  111. package/static/app/assets/ProductFlow-DCUNRNHs.js +0 -1
  112. package/static/app/assets/ReviewCard-CD3yWvUB.js +0 -3
  113. package/static/app/assets/System-BJ6jQ_SL.js +0 -1
  114. package/static/app/assets/arrow-left-6_28Z0qH.js +0 -1
  115. package/static/app/assets/brain-B9BDrMTe.js +0 -1
  116. package/static/app/assets/button-D6JcpYcf.js +0 -1
  117. package/static/app/assets/circle-check-BFu9lD-3.js +0 -1
  118. package/static/app/assets/index-CWKRRsLW.js +0 -10
  119. package/static/app/assets/input-CEqsxtil.js +0 -1
  120. package/static/app/assets/primitives-DORg7Z_7.js +0 -1
  121. package/static/app/assets/search-0NQ21wXe.js +0 -1
  122. package/static/app/assets/textarea-jtQcRSXo.js +0 -1
  123. package/static/app/assets/useFocusTrap-HRemcWId.js +0 -1
  124. package/static/app/assets/useMutation-DqlFE-Bw.js +0 -1
  125. package/static/app/assets/useQuery-BizqBNGw.js +0 -1
  126. package/static/app/assets/utils-WgW4V69R.js +0 -4
  127. package/static/app/assets/workspace-DSek3jCY.js +0 -1
@@ -1,2 +0,0 @@
1
- import{S as e,d as t,h as n,o as r,t as i,v as a,w as o,x as s,y as c}from"./utils-WgW4V69R.js";import{r as l,t as u}from"./useQuery-BizqBNGw.js";import{t as d}from"./useMutation-DqlFE-Bw.js";import{i as f,n as p,r as m,t as h}from"./LivingBrain-DjkTB_gh.js";import{t as g}from"./bot-Bc3Q27YR.js";import{C as _,D as v,E as y,O as b,S as x,T as S,_ as C,a as w,b as T,c as E,d as D,f as O,g as k,h as A,i as j,k as ee,l as te,m as ne,n as M,o as re,p as N,r as ie,s as P,t as ae,u as F,v as oe,w as se,x as ce,y as le}from"./BrainSignals-C0__xgpG.js";import{b as ue,r as I,y as L}from"./primitives-DORg7Z_7.js";import{t as R}from"./circle-check-BFu9lD-3.js";import{t as de}from"./cpu-DwzNf82m.js";import{t as z}from"./download-Ddw49yCV.js";import{n as fe,r as B,t as pe}from"./hard-drive-Bu-DTJdB.js";import{o as me,t as V}from"./ReviewCard-CD3yWvUB.js";import{t as H}from"./folder-open-Brd6Kvto.js";import{t as he}from"./link-2-DZ4OA5tJ.js";import{a as U,i as ge,n as _e,r as ve}from"./permissionCopy-D9TR0F8b.js";import{t as ye}from"./search-0NQ21wXe.js";import{t as be}from"./shield-alert-DUbR2W2s.js";import{n as xe,t as Se}from"./useFocusTrap-HRemcWId.js";import{S as Ce,_ as we,a as Te,d as Ee,f as De,i as W,m as Oe,n as G,r as ke,s as K,u as Ae,v as je}from"./index-CWKRRsLW.js";import"./brain-B9BDrMTe.js";import{t as q}from"./button-D6JcpYcf.js";import"./workspace-DSek3jCY.js";var Me=a(`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`}]]),Ne=a(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),Pe=a(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),Fe=a(`chart-spline`,[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7`,key:`lw07rv`}]]),Ie=a(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),Le=a(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),Re=a(`database-zap`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`,key:`14ibmq`}],[`path`,{d:`M21 5V8`,key:`1marbg`}],[`path`,{d:`M21 12L18 17H22L19 22`,key:`zafso`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`,key:`1y4wr8`}]]),ze=a(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Be=a(`file-check-corner`,[[`path`,{d:`M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6`,key:`g5mvt7`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m14 20 2 2 4-4`,key:`15kota`}]]),Ve=a(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),He=a(`file-up`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]),Ue=a(`git-pull-request-arrow`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M5 9v12`,key:`ih889a`}],[`circle`,{cx:`19`,cy:`18`,r:`3`,key:`1qljk2`}],[`path`,{d:`m15 9-3-3 3-3`,key:`1lwv8l`}],[`path`,{d:`M12 6h5a2 2 0 0 1 2 2v7`,key:`1yj91y`}]]),We=a(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),Ge=a(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Ke=a(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),qe=a(`map`,[[`path`,{d:`M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z`,key:`169xi5`}],[`path`,{d:`M15 5.764v15`,key:`1pn4in`}],[`path`,{d:`M9 3.236v15`,key:`1uimfh`}]]),Je=a(`message-circle-plus`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),Ye=a(`message-square-text`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M7 11h10`,key:`1twpyw`}],[`path`,{d:`M7 15h6`,key:`d9of3u`}],[`path`,{d:`M7 7h8`,key:`af5zfr`}]]),Xe=a(`pencil-line`,[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),Ze=a(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Qe=a(`repeat-2`,[[`path`,{d:`m2 9 3-3 3 3`,key:`1ltn5i`}],[`path`,{d:`M13 18H7a2 2 0 0 1-2-2V6`,key:`1r6tfw`}],[`path`,{d:`m22 15-3 3-3-3`,key:`4rnwn2`}],[`path`,{d:`M11 6h6a2 2 0 0 1 2 2v10`,key:`2f72bc`}]]),$e=a(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),et=a(`search-check`,[[`path`,{d:`m8 11 2 2 4-4`,key:`1sed1v`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]),tt=a(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),nt=a(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),rt=a(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),it=a(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),J=o(e());function at(e){if(e.status!==`awaiting_approval`)return null;let t=typeof e.run_id==`string`?e.run_id:``,n=typeof e.approval?.token==`string`?e.approval.token:``;return!t||!n?null:{runId:t,token:n,expiresAt:typeof e.approval?.expires_at==`string`?e.approval.expires_at:``,planSummary:typeof e.approval?.plan_summary==`string`?e.approval.plan_summary:``,plan:e.plan&&typeof e.plan==`object`?e.plan:null,status:`pending`}}function ot(e){if(!e||typeof e!=`object`)return``;let t=e,n=(t.detail&&typeof t.detail==`object`&&!Array.isArray(t.detail)?t.detail:t).replan;if(!n||typeof n!=`object`||Array.isArray(n))return``;let r=n.message;return typeof r==`string`?r.trim():``}async function st(e,n){let r=await t.resumeAgentApproval({run_id:e.runId,approval_token:e.token,approve:n.approve,...n.editedPlan?{edited_plan:n.editedPlan}:{}});if(!r.ok){if(r.status===410||r.status===404){let e=ot(r.data);return{kind:`expired`,...e?{replanMessage:e}:{}}}return{kind:`error`,reason:r.error||String(r.status||``)}}let i=r.data;return i.status===`cancelled`?{kind:`cancelled`}:{kind:`finished`,payload:i}}var Y=s();function ct(e,t){if(!t)return``;let n=new Date(t);return Number.isNaN(n.getTime())?``:n.toLocaleTimeString(e===`ko`?`ko-KR`:`en-US`,{hour:`2-digit`,minute:`2-digit`})}function lt(e){let t=Math.max(0,Math.floor(e/1e3)),n=Math.floor(t/60),r=t%60;return`${n}:${String(r).padStart(2,`0`)}`}var ut=12e4;function dt({language:e,approval:t,onResolved:r,onReplan:i}){let[a,o]=J.useState(!1),[s,c]=J.useState(!1),[l,u]=J.useState(``),[d,f]=J.useState(!1),p=J.useRef(null);J.useEffect(()=>{t.status===`pending`&&p.current?.focus()},[]);let m=t.status===`pending`,h=J.useMemo(()=>{if(!t.expiresAt)return null;let e=Date.parse(t.expiresAt);return Number.isFinite(e)?e:null},[t.expiresAt]),[g,_]=J.useState(()=>Date.now());J.useEffect(()=>{if(!m||h===null)return;_(Date.now());let e=window.setInterval(()=>_(Date.now()),1e3);return()=>window.clearInterval(e)},[m,h]);let v=h===null?null:h-g,y=m&&v!==null&&v>0&&v<ut,b=J.useRef(!1);J.useEffect(()=>{!m||v===null||v>0||b.current||(b.current=!0,r({kind:`expired`}))},[m,v,r]);async function x(e){if(!a){o(!0);try{r(await st(t,e))}finally{o(!1)}}}function S(){u(JSON.stringify(t.plan??{goal:t.planSummary,steps:[]},null,2)),f(!1),c(!0)}function C(){let e;try{e=JSON.parse(l)}catch{f(!0);return}if(!e||typeof e!=`object`||Array.isArray(e)){f(!0);return}f(!1),x({approve:!0,editedPlan:e})}if(t.status!==`pending`){let r=t.status===`approved`?`brain.approval.resolved`:t.status===`cancelled`?`brain.approval.cancelled`:t.status===`expired`?`brain.approval.expired`:`brain.approval.error`,a=t.status===`expired`&&t.replanMessage||``;return(0,Y.jsxs)(`div`,{className:`brain-approval-note is-${t.status}`,role:t.status===`approved`?`status`:`alert`,"data-testid":`agent-approval-note`,children:[(0,Y.jsx)(`span`,{children:n(e,r,{reason:t.errorReason||``})}),a&&i?(0,Y.jsx)(`button`,{type:`button`,className:`brain-approval-replan`,"data-testid":`approval-replan`,onClick:()=>i(a),children:n(e,`brain.approval.expiredReplan`)}):null]})}let w=ct(e,t.expiresAt);return(0,Y.jsxs)(`section`,{className:`brain-approval-card ${y?`is-urgent`:``}`,"aria-label":n(e,`brain.approval.aria`),"data-testid":`agent-approval-card`,children:[(0,Y.jsxs)(`header`,{className:`brain-approval-head`,children:[(0,Y.jsx)(be,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`strong`,{children:n(e,`brain.approval.title`)}),v===null?null:(0,Y.jsx)(`span`,{className:`brain-approval-countdown ${y?`is-urgent`:``}`,"data-testid":`approval-countdown`,children:n(e,`brain.approval.countdown`,{time:lt(v)})})]}),t.planSummary?(0,Y.jsxs)(`div`,{className:`brain-approval-summary`,children:[(0,Y.jsx)(`span`,{className:`brain-approval-summary-label`,children:n(e,`brain.approval.summaryLabel`)}),(0,Y.jsx)(`pre`,{"data-testid":`approval-plan-summary`,children:t.planSummary})]}):null,w?(0,Y.jsx)(`small`,{className:`brain-approval-expiry`,children:n(e,`brain.approval.expiry`,{time:w})}):null,y?(0,Y.jsx)(`small`,{className:`brain-approval-urgency`,role:`alert`,"data-testid":`approval-urgency`,children:n(e,`brain.approval.countdown.warning`)}):null,s?(0,Y.jsxs)(`div`,{className:`brain-approval-editor`,children:[(0,Y.jsx)(`label`,{htmlFor:`brain-approval-plan-editor`,children:n(e,`brain.approval.edit.label`)}),(0,Y.jsx)(`textarea`,{id:`brain-approval-plan-editor`,"data-testid":`approval-edit-textarea`,value:l,rows:8,spellCheck:!1,onChange:e=>u(e.target.value)}),d?(0,Y.jsx)(`small`,{className:`brain-approval-edit-error`,role:`alert`,children:n(e,`brain.approval.edit.invalid`)}):null,(0,Y.jsxs)(`div`,{className:`brain-approval-actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`brain-approval-primary`,"data-testid":`approval-edit-run`,disabled:a,onClick:C,children:a?n(e,`brain.approval.running`):n(e,`brain.approval.edit.run`)}),(0,Y.jsx)(`button`,{type:`button`,disabled:a,onClick:()=>c(!1),children:n(e,`brain.approval.edit.close`)})]})]}):(0,Y.jsxs)(`div`,{className:`brain-approval-actions`,children:[(0,Y.jsx)(`button`,{ref:p,type:`button`,className:`brain-approval-primary`,"data-testid":`approval-approve`,disabled:a,onClick:()=>void x({approve:!0}),children:a?n(e,`brain.approval.running`):n(e,`brain.approval.approve`)}),(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`approval-edit`,disabled:a,onClick:S,children:[(0,Y.jsx)(Xe,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),n(e,`brain.approval.edit`)]}),(0,Y.jsx)(`button`,{type:`button`,"data-testid":`approval-cancel`,disabled:a,onClick:()=>void x({approve:!1}),children:n(e,`brain.approval.cancel`)})]})]})}function ft(e){return e.event===`blocked`?`blocked`:e.event===`parse_error`||e.ok===!1?`error`:e.event===`proposed`?`proposed`:e.event===`tool`?`ok`:e.phase===`rollback`?`error`:`info`}function pt(e){if(e.phase===`rollback`)return`brain.steps.rollback`;switch(e.event){case`planned`:return`brain.steps.planned`;case`tool`:return e.ok===!1?`brain.steps.tool.failed`:`brain.steps.tool`;case`proposed`:return`brain.steps.proposed`;case`blocked`:return`brain.steps.blocked`;case`parse_error`:return`brain.steps.parseError`;case`verdict`:return`brain.steps.verdict`;case`final`:return`brain.steps.final`;case`state`:return`brain.steps.state`;default:return`brain.steps.step`}}function mt(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}function ht(e){return[e.action,e.path?mt(e.path):``,e.decision,e.verdict,e.state].filter(Boolean).join(` · `)}function gt({language:e,steps:t,streaming:r}){if(!t.length)return null;let i=(0,Y.jsx)(`ol`,{className:`brain-step-list`,children:t.slice(-30).map((t,r)=>{let i=ft(t),a=ht(t);return(0,Y.jsxs)(`li`,{className:`brain-step-item is-${i}`,children:[(0,Y.jsx)(`span`,{className:`brain-step-dot`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`brain-step-label`,children:n(e,pt(t))}),a?(0,Y.jsx)(`span`,{className:`brain-step-meta`,children:a}):null,t.detail?(0,Y.jsx)(`small`,{className:`brain-step-detail`,children:t.detail}):null]},r)})});return r?(0,Y.jsxs)(`section`,{className:`brain-step-timeline is-live`,"aria-label":n(e,`brain.steps.aria`),"data-testid":`agent-step-timeline`,children:[(0,Y.jsxs)(`p`,{className:`brain-step-live-head`,role:`status`,children:[(0,Y.jsx)(`span`,{className:`brain-step-dot is-live`,"aria-hidden":`true`}),n(e,`brain.steps.live`,{count:t.length})]}),i]}):(0,Y.jsxs)(`details`,{className:`brain-step-timeline`,"aria-label":n(e,`brain.steps.aria`),"data-testid":`agent-step-timeline`,children:[(0,Y.jsx)(`summary`,{children:n(e,`brain.steps.summary`,{count:t.length})}),i]})}function _t({language:e,summary:t}){if(t.total<1)return null;let r=Object.entries(t.repairs).sort((e,t)=>t[1]-e[1]).slice(0,3).map(([e,t])=>`${e} ×${t}`);return t.parseRecovered>0&&r.push(`parse ×${t.parseRecovered}`),(0,Y.jsx)(`p`,{className:`brain-loop-repairs`,role:`note`,"data-testid":`loop-repairs-note`,title:r.join(`, `)||void 0,children:n(e,`brain.agent.repairs`,{count:t.total})})}function vt({language:e,explanation:t}){return(0,Y.jsxs)(`div`,{className:`brain-run-explanation is-${t.ok?`ok`:`caution`} strain-${t.strainLevel}`,role:`note`,"data-testid":`run-explanation`,"data-code":t.code,children:[t.headline?(0,Y.jsx)(`strong`,{children:t.headline}):null,t.details.length?(0,Y.jsx)(`ul`,{children:t.details.map(e=>(0,Y.jsx)(`li`,{children:e},e))}):null,(0,Y.jsx)(`small`,{children:n(e,`brain.agent.explanation.why`)})]})}function yt(e,t){return`${e}-cite-${t}`}function bt({language:e,proof:t,messageId:r}){let i=e=>{let t=document.getElementById(yt(r,e));t&&(t.scrollIntoView({behavior:`smooth`,block:`nearest`}),t.focus())};return(0,Y.jsx)(`span`,{className:`brain-inline-citations`,"aria-label":n(e,`brain.answerProof.citationsLabel`,{count:t.citations.length}),children:t.citations.map((t,a)=>(0,Y.jsx)(`button`,{type:`button`,className:`brain-inline-citation`,"aria-label":n(e,`brain.answerProof.marker`,{index:a+1}),"aria-controls":yt(r,t.id),title:t.title,onClick:()=>i(t.id),children:a+1},t.id))})}function xt({language:e,proof:t,messageId:r,onUseEvidence:i}){let[a,o]=J.useState(null);return(0,Y.jsxs)(`section`,{className:`brain-answer-proof`,role:`group`,"aria-label":n(e,`brain.answerProof.aria`),children:[(0,Y.jsxs)(`div`,{className:`brain-answer-proof-head`,children:[(0,Y.jsx)(`span`,{children:n(e,`brain.answerProof.title`)}),(0,Y.jsx)(`strong`,{children:t.provenAcrossModels?n(e,`brain.answerProof.modelProven`,{model:t.model}):n(e,`brain.answerProof.modelPending`,{model:t.model})}),t.citations.length?(0,Y.jsx)(`small`,{className:`brain-answer-proof-count`,children:n(e,`brain.answerProof.citationsLabel`,{count:t.citations.length})}):null]}),t.citations.length?(0,Y.jsx)(`ol`,{children:t.citations.map((i,a)=>(0,Y.jsx)(`li`,{id:yt(r,i.id),tabIndex:-1,"aria-label":n(e,`brain.answerProof.citationItem`,{index:a+1,title:i.title}),children:(0,Y.jsxs)(`button`,{type:`button`,className:`brain-citation-open`,"aria-haspopup":`dialog`,"aria-label":n(e,`brain.sourceModal.openAria`,{title:i.title}),"data-testid":`citation-open`,onClick:()=>o(i),children:[(0,Y.jsx)(`span`,{className:`brain-answer-proof-index`,"aria-hidden":`true`,children:a+1}),(0,Y.jsx)(`span`,{children:i.source}),(0,Y.jsx)(`strong`,{children:i.title}),(0,Y.jsx)(St,{language:e,citation:i}),i.locator?(0,Y.jsx)(`em`,{className:`brain-citation-locator`,"data-testid":`citation-locator`,children:i.locator}):null,(0,Y.jsx)(`small`,{children:i.snippet||t.query}),(0,Y.jsx)(wt,{language:e,citation:i}),(0,Y.jsx)(`span`,{className:`brain-citation-open-hint`,"aria-hidden":`true`,children:n(e,`brain.sourceModal.open`)})]})},i.id))}):(0,Y.jsx)(`small`,{children:n(e,`brain.answerProof.empty`)}),i&&t.citations.length?(0,Y.jsx)(Ct,{language:e,query:t.query,sourceIds:t.citations.map(e=>e.id),onUseEvidence:i}):null,a?(0,Y.jsx)(Dt,{language:e,citation:a,onClose:()=>o(null)}):null]})}function St({language:e,citation:t}){return t.kind===`Image`||t.kind===`ImageText`?(0,Y.jsxs)(`span`,{className:`brain-citation-visual`,"data-testid":`citation-visual`,children:[t.thumbnail?(0,Y.jsx)(`img`,{className:`brain-citation-thumb`,src:t.thumbnail,alt:t.caption||n(e,`brain.answerProof.imageAlt`,{title:t.title}),width:48,height:48,loading:`lazy`}):(0,Y.jsx)(`span`,{className:`brain-citation-thumb is-missing`,"aria-hidden":`true`,children:n(e,`brain.answerProof.imageBadge`)}),(0,Y.jsx)(`span`,{className:`brain-citation-visual-text`,children:t.caption?(0,Y.jsx)(`em`,{"data-testid":`citation-caption`,children:t.caption}):(0,Y.jsx)(`em`,{className:`is-muted`,"data-testid":`citation-caption-absent`,children:n(e,`brain.answerProof.noCaption`)})})]}):null}function Ct({language:e,query:r,sourceIds:i,onUseEvidence:a}){let[o,s]=J.useState({status:`idle`}),c=J.useCallback(()=>{s({status:`loading`}),t.evidenceActions(r,i,e).then(e=>{let t=e.data;s({status:`ready`,actions:e.ok?t.actions:[],reason:e.ok?t.reason:e.error||``})})},[e,r,i]);return o.status===`idle`?(0,Y.jsx)(`div`,{className:`brain-evidence-actions`,children:(0,Y.jsx)(`button`,{type:`button`,className:`brain-evidence-action-trigger`,"data-testid":`evidence-actions-open`,onClick:c,children:n(e,`brain.evidenceActions.open`)})}):o.status===`loading`?(0,Y.jsx)(`div`,{className:`brain-evidence-actions`,children:(0,Y.jsx)(`small`,{role:`status`,children:n(e,`brain.evidenceActions.loading`)})}):o.actions.length?(0,Y.jsxs)(`div`,{className:`brain-evidence-actions`,"data-testid":`evidence-actions`,children:[(0,Y.jsx)(`small`,{children:n(e,`brain.evidenceActions.title`)}),(0,Y.jsx)(`div`,{className:`brain-evidence-action-list`,children:o.actions.map(t=>(0,Y.jsx)(`button`,{type:`button`,className:`brain-evidence-action`,"data-testid":`evidence-action-${t.id}`,title:t.suggested_path||void 0,onClick:()=>a(t.prompt),children:t.label[e===`ko`?`ko`:`en`]},t.id))})]}):(0,Y.jsx)(`div`,{className:`brain-evidence-actions`,children:(0,Y.jsx)(`small`,{className:`is-error`,role:`status`,children:o.reason||n(e,`brain.evidenceActions.unavailable`)})})}function wt({language:e,citation:t}){let r=t.matchedTerms.length>0;return(0,Y.jsxs)(`span`,{className:`brain-citation-why`,"aria-label":n(e,`brain.answerProof.why.aria`),children:[(0,Y.jsx)(`em`,{className:`brain-citation-confidence is-${t.confidence}`,children:n(e,`brain.answerProof.confidence.${t.confidence}`)}),r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`brain-citation-why-label`,children:n(e,`brain.answerProof.matched`)}),t.matchedTerms.slice(0,4).map(e=>(0,Y.jsx)(`mark`,{children:e},e))]}):(0,Y.jsx)(`span`,{className:`brain-citation-why-label`,children:n(e,`brain.answerProof.matched.none`)})]})}var Tt=[`source`,`source_uri`,`origin`,`relative_path`,`path`,`filename`,`conversation_id`,`provenance_id`];function Et(e){let t=k(e)?e:{},n=k(t.node)?t.node:null;if(!n)return null;let r=k(n.metadata)?n.metadata:{},i=Tt.flatMap(e=>{let t=v(r,[e]);return t?[{key:e,value:t}]:[]});return{title:v(n,[`title`,`label`,`id`]),type:v(n,[`type`]),summary:v(n,[`summary`,`content`,`text`]),provenance:i}}function Dt({language:e,citation:r,onClose:i}){let a=Se(i),[o,s]=J.useState({status:`loading`});J.useEffect(()=>{let e=!1;return s({status:`loading`}),t.graphNode(r.id).then(t=>{if(e)return;let n=t.ok?Et(t.data):null;s(n?{status:`ready`,node:n}:{status:`error`,reason:t.error||String(t.status||``)})}),()=>{e=!0}},[r.id]);let c=o.status===`ready`&&o.node.title?o.node.title:r.title;return(0,Y.jsx)(`div`,{className:`file-preview-backdrop`,role:`presentation`,onMouseDown:e=>{e.target===e.currentTarget&&i()},children:(0,Y.jsxs)(`div`,{ref:a,className:`file-preview-modal source-chunk-modal`,role:`dialog`,"aria-modal":`true`,"aria-label":n(e,`brain.sourceModal.aria`,{title:c}),"data-testid":`source-chunk-modal`,children:[(0,Y.jsxs)(`header`,{className:`file-preview-head`,children:[(0,Y.jsx)(`strong`,{className:`file-preview-name`,children:c}),(0,Y.jsxs)(`div`,{className:`file-preview-actions`,children:[o.status===`ready`&&o.node.type?(0,Y.jsx)(`span`,{className:`source-chunk-type`,children:o.node.type}):null,(0,Y.jsx)(`button`,{type:`button`,className:`file-preview-close`,"aria-label":n(e,`brain.sourceModal.close`),onClick:i,children:(0,Y.jsx)(K,{className:`h-4 w-4`,"aria-hidden":`true`})})]})]}),(0,Y.jsx)(`div`,{className:`file-preview-body source-chunk-body`,children:o.status===`loading`?(0,Y.jsx)(`p`,{className:`file-preview-note`,role:`status`,children:n(e,`brain.sourceModal.loading`)}):o.status===`error`?(0,Y.jsx)(`p`,{className:`file-preview-note is-error`,role:`alert`,children:n(e,`brain.sourceModal.error`,{reason:o.reason})}):(0,Y.jsxs)(Y.Fragment,{children:[o.node.summary?(0,Y.jsx)(`pre`,{className:`source-chunk-text`,"data-testid":`source-chunk-text`,children:o.node.summary}):(0,Y.jsx)(`p`,{className:`file-preview-note`,children:n(e,`brain.sourceModal.empty`)}),o.node.provenance.length?(0,Y.jsxs)(`div`,{className:`source-chunk-provenance`,"data-testid":`source-chunk-provenance`,children:[(0,Y.jsx)(`small`,{children:n(e,`brain.sourceModal.provenance`)}),(0,Y.jsx)(`ul`,{children:o.node.provenance.map(e=>(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`span`,{children:e.key}),(0,Y.jsx)(`code`,{children:e.value})]},e.key))})]}):null]})})]})})}function Ot({language:e}){let r=l(),[i,a]=J.useState(!1),[o,s]=J.useState(``),[c,d]=J.useState(``),[f,p]=J.useState(``),[m,h]=J.useState(null),g=u({queryKey:[`portability`],queryFn:t.graphPortability}),_=u({queryKey:[`backupHealth`],queryFn:t.backupHealth}),v=J.useCallback(e=>h(e),[]),y=o.trim()?Pt(o.trim(),e):``,x=c.trim()?Ft(c,e):``,S=!c||c===f,C=!!c.trim()&&S&&!x,w=!!o.trim()&&!y,T=kt(()=>t.graphExport(),void 0,v),E=kt(()=>t.graphBackup(),()=>{r.invalidateQueries({queryKey:[`backupHealth`]}),r.invalidateQueries({queryKey:[`portability`]})},v),D=kt(()=>t.brainArchive({path:o.trim()||null,passphrase:c}),()=>void r.invalidateQueries({queryKey:[`backupHealth`]}),v),O=kt(()=>t.brainArchiveInspect({path:o.trim(),passphrase:c||null}),void 0,v),k=kt(()=>t.brainArchiveRestore({path:o.trim(),passphrase:c,dry_run:!0,confirm:!1}),void 0,v),A=jt(g.data?.data),j=Mt(_.data?.data,e);return(0,Y.jsxs)(`section`,{className:`brain-care-panel ${i?`is-expanded`:`is-collapsed`}`,"aria-label":n(e,`care.title`),children:[(0,Y.jsxs)(`button`,{className:`brain-care-summary`,type:`button`,"aria-expanded":i,"aria-controls":`brain-care-details`,onClick:()=>a(e=>!e),children:[(0,Y.jsxs)(`span`,{className:`brain-care-summary-main`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(Ae,{className:`h-3.5 w-3.5`}),` `,n(e,`care.title`)]}),(0,Y.jsx)(`strong`,{children:n(e,`care.subtitle`)})]}),(0,Y.jsxs)(`div`,{className:`brain-care-proof`,"aria-label":n(e,`care.ownershipModel`),children:[(0,Y.jsx)(`span`,{children:n(e,`care.private`)}),(0,Y.jsx)(`span`,{children:A}),(0,Y.jsx)(`span`,{children:j})]}),(0,Y.jsx)(we,{className:`brain-care-toggle h-4 w-4`,"aria-hidden":`true`})]}),i?(0,Y.jsxs)(`div`,{id:`brain-care-details`,className:`brain-care-details`,children:[(0,Y.jsxs)(`div`,{className:`brain-care-actions`,children:[(0,Y.jsx)(At,{icon:(0,Y.jsx)(z,{className:`h-3.5 w-3.5`}),label:n(e,`care.export`),detail:n(e,`care.export.detail`),pendingLabel:n(e,`care.working`),pending:T.isPending,onClick:()=>T.mutate()}),(0,Y.jsx)(At,{icon:(0,Y.jsx)(b,{className:`h-3.5 w-3.5`}),label:n(e,`care.backup`),detail:n(e,`care.backup.detail`),pendingLabel:n(e,`care.working`),pending:E.isPending,onClick:()=>E.mutate()}),(0,Y.jsx)(At,{icon:(0,Y.jsx)(Ne,{className:`h-3.5 w-3.5`}),label:n(e,`care.archive`),detail:n(e,`care.archive.detail`),pendingLabel:n(e,`care.working`),pending:D.isPending,disabled:!C,onClick:()=>D.mutate()})]}),(0,Y.jsxs)(`div`,{className:`brain-care-archive`,children:[(0,Y.jsx)(`input`,{value:o,onChange:e=>s(e.target.value),placeholder:n(e,`care.path.placeholder`),"aria-label":n(e,`care.path.label`)}),(0,Y.jsx)(`input`,{type:`password`,value:c,onChange:e=>d(e.target.value),placeholder:n(e,`care.passphrase.placeholder`),"aria-label":n(e,`care.passphrase.label`)}),(0,Y.jsx)(`input`,{type:`password`,value:f,onChange:e=>p(e.target.value),placeholder:n(e,`care.passphrase.confirmPlaceholder`),"aria-label":n(e,`care.passphrase.confirmLabel`)}),(0,Y.jsxs)(`div`,{className:`brain-care-guidance`,role:`status`,children:[y?(0,Y.jsx)(`span`,{className:`is-error`,children:y}):o.trim()?(0,Y.jsx)(`span`,{children:n(e,`care.path.ready`)}):null,x?(0,Y.jsx)(`span`,{className:`is-error`,children:x}):c?(0,Y.jsx)(`span`,{children:n(e,`care.passphrase.strong`)}):null,S?null:(0,Y.jsx)(`span`,{className:`is-error`,children:n(e,`care.passphrase.mismatch`)})]}),(0,Y.jsxs)(`div`,{className:`brain-care-archive-actions`,children:[(0,Y.jsxs)(q,{variant:`outline`,size:`sm`,disabled:!w||O.isPending,onClick:()=>O.mutate(),children:[(0,Y.jsx)(ze,{className:`h-3.5 w-3.5`}),` `,n(e,`care.inspect`)]}),(0,Y.jsxs)(q,{variant:`outline`,size:`sm`,disabled:!w||!c.trim()||!S||k.isPending,onClick:()=>k.mutate(),children:[(0,Y.jsx)(Ee,{className:`h-3.5 w-3.5`}),` `,n(e,`care.restorePreview`)]})]})]}),m?(0,Y.jsx)(`div`,{className:`brain-care-result ${m.ok?`is-ok`:`is-error`}`,role:`status`,children:(0,Y.jsx)(Nt,{result:m,language:e})}):(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`care.note`)})]}):null]})}function kt(e,t,n){return d({mutationFn:e,onSuccess:e=>{n?.(e),t?.()}})}function At({icon:e,label:t,detail:n,pendingLabel:r,pending:i,disabled:a,onClick:o}){return(0,Y.jsxs)(`button`,{className:`brain-care-button`,type:`button`,disabled:a||i,onClick:o,children:[e,(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:i?r:t}),(0,Y.jsx)(`small`,{children:n})]})]})}function jt(e){return v(k(e)?e:{},[`archive_format`,`format`,`graph_schema_version`,`schema_version`],`.latticebrain`)}function Mt(e,t){let r=k(e)?e:{},i=r.count||r.backups||r.available;return i!=null&&i!==``?n(t,`care.backup.count`,{count:String(i)}):n(t,`care.backup.ready`)}function Nt({result:e,language:t}){if(!e.ok)return(0,Y.jsxs)(`div`,{className:`brain-care-result-summary`,children:[(0,Y.jsx)(`strong`,{children:n(t,`care.result.error`)}),e.error&&e.error!==n(t,`care.result.error`)?(0,Y.jsx)(`span`,{children:e.error}):null]});let r=k(e.data)?e.data:{},i=v(r,[`path`,`archive_path`,`backup_path`,`export_path`,`latest_backup`]),a=v(r,[`message`,`status`,`result`],n(t,`care.result.completed`)),o={memories:v(r,[`nodes`,`total_nodes`,`memories`,`memory_count`]),links:v(r,[`edges`,`total_edges`,`relationships`,`relationship_count`]),conversations:v(r,[`conversations`,`conversation_count`])};return(0,Y.jsxs)(`div`,{className:`brain-care-result-summary`,children:[(0,Y.jsx)(`strong`,{children:a}),i?(0,Y.jsx)(`span`,{children:n(t,`care.result.path`,{path:i})}):null,o.memories||o.links||o.conversations?(0,Y.jsx)(`span`,{children:n(t,`care.result.contents`,{memories:o.memories||`0`,links:o.links||`0`,conversations:o.conversations||`0`})}):null,r.dry_run===!0?(0,Y.jsx)(`span`,{children:n(t,`care.result.dryRun`)}):null]})}function Pt(e,t){return/[<>:"|?*]/.test(e)?n(t,`care.path.invalidChars`):/\.(latticebrain|zip|json)$/i.test(e)?``:n(t,`care.path.extension`)}function Ft(e,t){return e.length<12?n(t,`care.passphrase.tooShort`):[/[a-z]/,/[A-Z]/,/\d/,/[^A-Za-z0-9]/].filter(t=>t.test(e)).length<3?n(t,`care.passphrase.tooSimple`):``}var It=[`freshness`,`connectivity`,`embedding_coverage`,`consistency`],Lt=new Set([`rebuild_vector_index`,`review_orphans`,`refresh_stale_knowledge`,`resolve_contradictions`]);function Rt({language:e}){let r=l(),[i,a]=J.useState(!1),o=u({queryKey:[`brainHealth`],queryFn:t.brainHealth,enabled:i}),s=u({queryKey:[`brainInsights`],queryFn:t.brainInsights,enabled:i}),c=u({queryKey:[`brainContradictions`],queryFn:t.brainContradictions,enabled:i}),[f,p]=J.useState(null),m=d({mutationFn:()=>t.brainConsolidate(!1),onSuccess:e=>{e.ok&&k(e.data)&&p(e.data)}}),h=d({mutationFn:()=>t.brainConsolidate(!0),onSuccess:e=>{e.ok&&k(e.data)&&p(e.data),r.invalidateQueries({queryKey:[`brainHealth`]})}}),g=o.data?.ok&&k(o.data.data)?o.data.data:null,_=i&&!o.isPending&&(o.isError||!o.data?.ok||o.data?.source===`unavailable`),v=()=>{o.refetch(),s.refetch(),c.refetch()},y=s.data?.ok&&k(s.data.data)?s.data.data:null,b=c.data?.ok&&k(c.data.data)?Number(c.data.data.count||0):0,x=g&&typeof g.overall_score==`number`?g.overall_score:null,S=g&&typeof g.grade==`string`?g.grade:null,C=g&&k(g.dimensions)?g.dimensions:{},w=g&&Array.isArray(g.recommended_actions)?g.recommended_actions:[],T=y&&k(y.activity)?y.activity:{},E=y&&k(y.attention)?y.attention:{};return(0,Y.jsxs)(`section`,{className:`brain-care-panel brain-intelligence-panel ${i?`is-expanded`:`is-collapsed`}`,"aria-label":n(e,`intelligence.title`),children:[(0,Y.jsxs)(`button`,{className:`brain-care-summary`,type:`button`,"aria-expanded":i,"aria-controls":`brain-intelligence-details`,onClick:()=>a(e=>!e),children:[(0,Y.jsxs)(`span`,{className:`brain-care-summary-main`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(L,{className:`h-3.5 w-3.5`}),` `,n(e,`intelligence.title`)]}),(0,Y.jsx)(`strong`,{children:n(e,`intelligence.subtitle`)})]}),i&&x!==null?(0,Y.jsxs)(`div`,{className:`brain-care-proof`,children:[(0,Y.jsxs)(`span`,{children:[n(e,`intelligence.score`),`: `,x]}),(0,Y.jsx)(`span`,{children:zt(S,e)})]}):null,(0,Y.jsx)(we,{className:`brain-care-toggle h-4 w-4`,"aria-hidden":`true`})]}),i?(0,Y.jsx)(`div`,{id:`brain-intelligence-details`,className:`brain-care-details`,children:o.isPending?(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`intelligence.loading`)}):_?(0,Y.jsxs)(`div`,{className:`grid gap-2`,role:`alert`,children:[(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`intelligence.loadError`)}),o.data?.error?(0,Y.jsx)(`small`,{className:`text-xs text-muted-foreground opacity-75`,children:o.data.error}):null,(0,Y.jsx)(`div`,{children:(0,Y.jsx)(q,{variant:`outline`,size:`sm`,onClick:v,children:n(e,`common.retry`)})})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`brain-intelligence-dimensions`,role:`list`,children:It.map(t=>{let r=k(C[t])?C[t]:{},i=typeof r.score==`number`?r.score:null;return(0,Y.jsxs)(`div`,{className:`brain-intelligence-dimension`,role:`listitem`,children:[(0,Y.jsx)(`small`,{children:n(e,`intelligence.dim.${t}`)}),(0,Y.jsx)(`strong`,{children:i===null?`—`:i})]},t)})}),(0,Y.jsxs)(`div`,{className:`brain-intelligence-insights`,role:`status`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(Me,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),` `,n(e,`intelligence.insights.recent`,{count:String(X(T.recent_nodes))})]}),(0,Y.jsx)(`span`,{children:n(e,`intelligence.insights.stale`,{count:String(X(E.stale_nodes))})}),(0,Y.jsx)(`span`,{children:n(e,`intelligence.insights.orphans`,{count:String(X(E.orphan_nodes))})}),(0,Y.jsx)(`span`,{children:n(e,`intelligence.contradictions`,{count:String(b)})})]}),w.length?(0,Y.jsxs)(`div`,{className:`brain-intelligence-actions`,children:[(0,Y.jsx)(`small`,{children:n(e,`intelligence.actions`)}),(0,Y.jsx)(`ul`,{children:w.map((t,r)=>{let i=k(t)?t:{},a=String(i.id||``);return(0,Y.jsx)(`li`,{children:Lt.has(a)?n(e,`intelligence.action.${a}`):String(i.reason||a)},`${a}-${r}`)})})]}):null,(0,Y.jsxs)(`div`,{className:`brain-care-archive-actions`,children:[(0,Y.jsx)(q,{variant:`outline`,size:`sm`,disabled:m.isPending,onClick:()=>m.mutate(),children:m.isPending?n(e,`intelligence.consolidate.working`):n(e,`intelligence.consolidate`)}),f&&X(f.duplicate_memory_count)>0&&f.mode!==`applied`?(0,Y.jsx)(q,{variant:`outline`,size:`sm`,disabled:h.isPending,onClick:()=>h.mutate(),children:n(e,`intelligence.consolidate.apply`)}):null]}),f?(0,Y.jsx)(`p`,{className:`brain-care-note`,role:`status`,children:f.mode===`applied`?n(e,`intelligence.consolidate.applied`,{count:String(X(f.pruned))}):X(f.duplicate_memory_count)>0||X(f.duplicate_edge_count)>0?n(e,`intelligence.consolidate.found`,{memories:String(X(f.duplicate_memory_count)),edges:String(X(f.duplicate_edge_count))}):n(e,`intelligence.consolidate.none`)}):null]})}):null]})}function zt(e,t){return n(t,`intelligence.grade.${e&&new Set([`excellent`,`good`,`attention`,`critical`]).has(e)?e:`unknown`}`)}function X(e){let t=Number(e);return Number.isFinite(t)?t:0}var Bt=[`recent`,`contradictions`,`stale`,`frequent`];function Vt(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim())return t.trim();if(typeof t==`number`&&Number.isFinite(t))return String(t)}return``}function Ht(e){let t=r(e)?e:{},n=r(t.beds)?t.beds:{};return{available:t.available===!0,beds:Bt.map(e=>{let t=r(n[e])?n[e]:{},a=Number(t.count),o=i(t.items).flatMap(t=>{let n=r(t)?t:{},i=Vt(n,[`id`]),a=Vt(n,[`title`,`summary`,`label`]);return!i||!a?[]:[{id:i,title:a,type:Vt(n,[`type`,`kind`]),detail:e===`frequent`?Vt(n,[`degree`]):Vt(n,[`updated_at`,`detail`])}]});return{id:e,count:Number.isFinite(a)&&a>0?Math.round(a):o.length,items:o}})}}function Ut({language:e}){let[r,i]=J.useState(!1),a=u({queryKey:[`knowledgeGarden`],queryFn:()=>t.brainGarden(),enabled:r,staleTime:6e4}),o=J.useMemo(()=>a.data?.ok?Ht(a.data.data):null,[a.data]);return(0,Y.jsxs)(`details`,{className:`brain-garden`,"data-testid":`knowledge-garden`,open:r,onToggle:e=>i(e.currentTarget.open),children:[(0,Y.jsx)(`summary`,{children:n(e,`brain.garden.title`)}),r?a.isLoading?(0,Y.jsx)(`p`,{role:`status`,children:n(e,`brain.garden.loading`)}):!o||!o.available?(0,Y.jsx)(`p`,{role:`status`,className:`is-muted`,children:n(e,`brain.garden.unavailable`)}):(0,Y.jsx)(`div`,{className:`brain-garden-beds`,children:o.beds.map(t=>(0,Y.jsxs)(`section`,{"data-testid":`garden-bed-${t.id}`,children:[(0,Y.jsxs)(`h4`,{children:[n(e,`brain.garden.bed.${t.id}`),(0,Y.jsx)(`span`,{className:`brain-garden-count`,children:t.count})]}),t.items.length?(0,Y.jsx)(`ul`,{children:t.items.map(e=>(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:e.title}),e.type?(0,Y.jsx)(`em`,{children:e.type}):null,e.detail?(0,Y.jsx)(`small`,{children:e.detail}):null]},e.id))}):(0,Y.jsx)(`p`,{className:`is-muted`,children:n(e,`brain.garden.empty.${t.id}`)})]},t.id))}):null]})}var Wt={"review-pending":`briefing.action.reviewPending`,"enable-drafts":`briefing.action.enableDrafts`,"install-suggestion":`briefing.action.installSuggestion`,"connect-knowledge":`briefing.action.connectKnowledge`,"check-health":`briefing.action.checkHealth`,"ask-brain":`briefing.action.askBrain`};function Z(e,t){let n=(e.sections||{})[t];return n&&typeof n==`object`?n:{}}function Gt(e){e&&(e.closest(`details`)?.setAttribute(`open`,``),window.setTimeout(()=>e.scrollIntoView?.({behavior:`smooth`,block:`center`}),0))}function Kt({language:e,variant:r=`drawer`}){let[a,o]=J.useState(r===`home`),s=J.useRef(null),c=u({queryKey:[`commandBriefing`],queryFn:t.commandBriefing,enabled:a});J.useEffect(()=>{let e=()=>{o(!0),Gt(s.current)};return window.addEventListener(`lattice:open-briefing`,e),()=>window.removeEventListener(`lattice:open-briefing`,e)},[]);let l=c.data?.data||{},d=!!c.data&&(!c.data?.ok||Object.keys(l.sections||{}).length===0),p=Z(l,`knowledge`),m=Z(l,`conversations`),h=Z(l,`automations`),g=Z(l,`review`),_=Z(l,`health`),v=Z(l,`suggestions`),y=i(l.quick_actions),b=i(p.recent);return(0,Y.jsxs)(`section`,{ref:s,className:`brain-care-panel daily-briefing-panel ${a?`is-expanded`:`is-collapsed`} ${r===`home`?`is-home`:``}`,"aria-label":n(e,`briefing.title`),"data-testid":`daily-briefing`,children:[(0,Y.jsxs)(`button`,{className:`brain-care-summary`,type:`button`,"aria-expanded":a,"aria-controls":`daily-briefing-details`,onClick:()=>o(e=>!e),children:[(0,Y.jsxs)(`span`,{className:`brain-care-summary-main`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(xe,{className:`h-3.5 w-3.5`}),` `,n(e,`briefing.title`)]}),(0,Y.jsx)(`strong`,{children:n(e,`briefing.subtitle`)})]}),(0,Y.jsx)(we,{className:`brain-care-toggle h-4 w-4`,"aria-hidden":`true`})]}),a?(0,Y.jsx)(`div`,{id:`daily-briefing-details`,className:`brain-care-details`,children:c.isPending?(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`briefing.loading`)}):d?(0,Y.jsx)(`p`,{className:`brain-care-note`,"data-testid":`daily-briefing-empty`,children:n(e,`briefing.empty`)}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`daily-briefing-stats`,role:`list`,children:[(0,Y.jsxs)(`div`,{role:`listitem`,className:`daily-briefing-stat`,children:[(0,Y.jsx)(`strong`,{children:String(m.questions??0)}),(0,Y.jsx)(`span`,{children:n(e,`briefing.stat.questions`)})]}),(0,Y.jsxs)(`div`,{role:`listitem`,className:`daily-briefing-stat`,children:[(0,Y.jsxs)(`strong`,{children:[String(h.enabled??0),`/`,String(h.total??0)]}),(0,Y.jsx)(`span`,{children:n(e,`briefing.stat.automations`)})]}),(0,Y.jsxs)(`div`,{role:`listitem`,className:`daily-briefing-stat`,children:[(0,Y.jsx)(`strong`,{children:String(g.pending??0)}),(0,Y.jsx)(`span`,{children:n(e,`briefing.stat.review`)})]}),(0,Y.jsxs)(`div`,{role:`listitem`,className:`daily-briefing-stat`,children:[(0,Y.jsx)(`strong`,{children:_.available&&_.grade?String(_.grade):`—`}),(0,Y.jsx)(`span`,{children:n(e,`briefing.stat.health`)})]})]}),b.length>0?(0,Y.jsxs)(`div`,{className:`daily-briefing-recent`,children:[(0,Y.jsx)(`p`,{className:`command-palette-group`,children:n(e,`briefing.recent`)}),(0,Y.jsx)(`ul`,{children:b.slice(0,3).map(e=>(0,Y.jsx)(`li`,{title:String(e.title||``),children:String(e.title||e.id||``)},String(e.id)))})]}):null,Number(v.count??0)>0?(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`briefing.suggestions`,{count:String(v.count)})}):null,y.length>0?(0,Y.jsx)(`div`,{className:`daily-briefing-actions`,children:y.map(t=>{let r=Wt[t.id];return r?(0,Y.jsxs)(`button`,{type:`button`,className:`daily-briefing-action`,onClick:()=>W(t.target),children:[(0,Y.jsx)(`span`,{children:n(e,r,{count:String(t.count||0)})}),(0,Y.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})]},t.id):null})}):null]})}):null]})}function qt({language:e}){let r=l(),[a,o]=J.useState(!1),s=u({queryKey:[`pendingProposals`],queryFn:t.proposals,enabled:a}),c=async()=>{await Promise.all([r.invalidateQueries({queryKey:[`pendingProposals`]}),r.invalidateQueries({queryKey:[`reviewItems`]})])},[f,p]=J.useState({}),m=d({mutationFn:e=>t.approveReviewItem(e),onSuccess:async(e,t)=>{if(!e.ok&&e.status===409){p(e=>({...e,[t]:!0}));return}e.ok&&(p(e=>{let n={...e};return delete n[t],n}),await c())}}),h=d({mutationFn:e=>t.rejectProposal(e),onSuccess:c}),g=i((s.data?.data||{}).items),_=m.isPending||h.isPending,v=s.isError||(s.data?!s.data.ok:!1);return(0,Y.jsxs)(`section`,{className:`brain-care-panel pending-proposals-panel ${a?`is-expanded`:`is-collapsed`}`,"aria-label":n(e,`proposals.title`),"data-testid":`pending-proposals`,children:[(0,Y.jsxs)(`button`,{className:`brain-care-summary`,type:`button`,"aria-expanded":a,"aria-controls":`pending-proposals-details`,onClick:()=>o(e=>!e),children:[(0,Y.jsxs)(`span`,{className:`brain-care-summary-main`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(Ue,{className:`h-3.5 w-3.5`}),` `,n(e,`proposals.title`)]}),(0,Y.jsx)(`strong`,{children:n(e,`proposals.subtitle`)})]}),(0,Y.jsx)(we,{className:`brain-care-toggle h-4 w-4`,"aria-hidden":`true`})]}),a?(0,Y.jsxs)(`div`,{id:`pending-proposals-details`,className:`brain-care-details`,children:[s.isPending?(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`proposals.loading`)}):v?(0,Y.jsxs)(`div`,{className:`grid gap-2`,role:`alert`,children:[(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`proposals.error`)}),s.data?.error?(0,Y.jsx)(`small`,{className:`text-xs text-muted-foreground opacity-75`,children:s.data.error}):null,(0,Y.jsx)(`button`,{type:`button`,className:`daily-briefing-action`,onClick:()=>void s.refetch(),children:(0,Y.jsx)(`span`,{children:n(e,`common.retry`)})})]}):g.length===0?(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`proposals.empty`)}):(0,Y.jsx)(`div`,{className:`pending-proposals-list`,children:g.map(t=>{let r=t.payload||{},a=i(r.diff),o=String(r.tier||`small`);return(0,Y.jsxs)(`article`,{className:`pending-proposal`,children:[(0,Y.jsxs)(`header`,{children:[(0,Y.jsx)(`strong`,{title:String(r.path||t.title),children:String(r.path||t.title)}),(0,Y.jsx)(`span`,{className:`pending-proposal-tier`,children:n(e,t.kind===`file_delete`?`proposals.kind.delete`:o===`large`?`proposals.tier.large`:`proposals.tier.small`)})]}),(0,Y.jsx)(`p`,{className:`brain-care-note`,children:t.summary}),a.length>0?(0,Y.jsx)(V,{language:e,diff:a}):null,f[t.id]?(0,Y.jsx)(me,{language:e,itemId:t.id}):null,(0,Y.jsxs)(`div`,{className:`pending-proposal-actions`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`daily-briefing-action`,disabled:_,onClick:()=>m.mutate(t.id),children:[(0,Y.jsx)(je,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`proposals.approve`)})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`daily-briefing-action pending-proposal-reject`,disabled:_,onClick:()=>h.mutate(t.id),children:[(0,Y.jsx)(K,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`proposals.reject`)})]})]})]},t.id)})}),(0,Y.jsx)(`p`,{className:`brain-care-note`,children:n(e,`proposals.note`)})]}):null]})}function Jt({language:e,draft:t,streaming:r,imageData:i,uploadingDocument:a,onDraftChange:o,onImageDataChange:s,onUploadDocument:c,onSend:l,onStop:u,attachments:d}){let f=J.useRef(null),p=J.useRef(null),[m,h]=J.useState(!1),g=J.useId(),_=J.useRef(null),v=J.useRef(0);J.useEffect(()=>{let e=f.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,152)}px`)},[t]);let y=()=>{_.current!==null&&(window.clearTimeout(_.current),_.current=null)},b=()=>{y(),_.current=window.setTimeout(()=>{let e=p.current;e&&(e.contains(document.activeElement)||e.querySelector(`.brain-ingestion-dock-popover`)||a||h(!1))},240)};return J.useEffect(()=>y,[]),J.useEffect(()=>{if(!m)return;let e=e=>{let t=e.target;t&&p.current?.contains(t)||h(!1)};return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)},[m]),(0,Y.jsxs)(`div`,{className:`brain-composer`,"aria-busy":r,children:[(0,Y.jsx)(`textarea`,{ref:f,rows:1,value:t,onChange:e=>o(e.target.value),onKeyDown:e=>{e.nativeEvent.isComposing||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),l())},"aria-label":n(e,`brain.placeholder`),"aria-describedby":`brain-composer-hint`,"aria-keyshortcuts":`Control+K Meta+K`,placeholder:n(e,`brain.placeholder`)}),(0,Y.jsxs)(`div`,{className:`brain-composer-actions`,children:[(0,Y.jsxs)(`div`,{ref:p,className:`brain-attach ${m?`is-open`:``}`,onPointerEnter:e=>{e.pointerType===`mouse`&&(y(),h(e=>(e||(v.current=Date.now()),!0)))},onPointerLeave:e=>{e.pointerType===`mouse`&&b()},onKeyDown:e=>{e.key!==`Escape`||!m||p.current?.querySelector(`.brain-ingestion-dock-popover`)||(e.preventDefault(),e.stopPropagation(),h(!1))},children:[(0,Y.jsxs)(`button`,{type:`button`,className:`brain-attach-toggle`,"aria-expanded":m,"aria-controls":m?g:void 0,"aria-label":n(e,`brain.composer.attach.aria`),"data-testid":`brain-attach-toggle`,onClick:()=>{h(e=>e?Date.now()-v.current<350:(v.current=Date.now(),!0))},children:[(0,Y.jsx)(Ze,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.composer.attach`)})]}),m?(0,Y.jsxs)(`div`,{id:g,className:`brain-composer-attachments`,"data-testid":`brain-attach-menu`,role:`group`,"aria-label":n(e,`brain.composer.attachments`),children:[(0,Y.jsxs)(`label`,{className:`brain-document-input ${a?`is-disabled`:``}`,children:[(0,Y.jsx)(He,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:a?n(e,`brain.upload.uploading`):n(e,`brain.upload.ctaShort`)}),(0,Y.jsx)(`input`,{type:`file`,accept:`.pdf,.docx,.xlsx,.pptx,.txt,.md,.csv,application/pdf,text/plain,text/markdown,text/csv`,className:`sr-only`,disabled:a,onChange:e=>{let t=e.target.files?.[0];e.currentTarget.value=``,t&&c(t)}})]}),(0,Y.jsxs)(`label`,{className:`brain-image-input`,children:[(0,Y.jsx)(We,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.image`)}),(0,Y.jsx)(`input`,{type:`file`,accept:`image/*`,className:`sr-only`,onChange:async e=>{let t=e.target.files?.[0];e.currentTarget.value=``,t&&s(await Yt(t))}})]}),d]}):null,i?(0,Y.jsx)(`span`,{className:`brain-quiet-success`,children:n(e,`brain.imageAttached`)}):null]}),(0,Y.jsx)(`span`,{id:`brain-composer-hint`,className:`brain-composer-hint`,children:n(e,`brain.composer.hint`)}),r&&u?(0,Y.jsxs)(q,{onClick:u,variant:`outline`,className:`brain-composer-submit`,children:[(0,Y.jsx)(rt,{className:`h-4 w-4`,"aria-hidden":`true`}),` `,n(e,`brain.stop`)]}):(0,Y.jsxs)(q,{onClick:l,disabled:!t.trim()||r,className:`brain-composer-submit`,children:[(0,Y.jsx)(tt,{className:`h-4 w-4`,"aria-hidden":`true`}),` `,n(e,`brain.send`)]})]})]})}function Yt(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||``)),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}var Xt=Ce(),Q=[`features`];function Zt({language:e}){let r=l(),[i,a]=J.useState(``),o=u({queryKey:Q,queryFn:t.features}),s=d({mutationFn:e=>t.setFeature(e.id,e.value),onMutate:async e=>{await r.cancelQueries({queryKey:Q});let t=r.getQueryData(Q);return r.setQueryData(Q,t=>en(t,e.id,e.value)),a(``),{previous:t}},onSuccess:(t,i,o)=>{if(t.ok){a(n(e,`brain.features.saved`)),r.invalidateQueries({queryKey:Q});return}r.setQueryData(Q,o?.previous),a(t.error||n(e,`brain.features.failed`))},onError:(t,i,o)=>{r.setQueryData(Q,o?.previous),a(n(e,`brain.features.failed`))}}),c=o.data?.ok?o.data.data:void 0,f=c?.features??[],p=new Set(f.filter(e=>e.current===!0).map(e=>e.id));return(0,Y.jsxs)(`section`,{className:`brain-features-panel`,"aria-label":n(e,`brain.features.aria`),"aria-busy":s.isPending,children:[(0,Y.jsxs)(`header`,{className:`brain-features-head`,children:[(0,Y.jsx)(`strong`,{children:n(e,`brain.features.title`)}),(0,Y.jsx)(`p`,{children:c?.note||n(e,`brain.features.note`)})]}),o.isLoading?(0,Y.jsx)(`p`,{className:`brain-features-loading`,children:n(e,`ui.loading`)}):null,!o.isLoading&&f.length===0?(0,Y.jsx)(I,{title:n(e,`brain.features.empty`),detail:o.data?.error}):null,f.length?(0,Y.jsx)(`ul`,{className:`brain-features-list`,children:f.map(t=>(0,Y.jsx)(Qt,{feature:t,language:e,dormant:!!t.parent&&!p.has(String(t.parent)),busy:s.isPending,onChange:e=>s.mutate({id:t.id,value:e})},t.id))}):null,(0,Y.jsx)(`p`,{className:`brain-features-notice`,role:`status`,"aria-live":`polite`,children:i})]})}function Qt({feature:e,language:t,dormant:r,busy:i,onChange:a}){let o=e.current===!0;return(0,Y.jsxs)(`li`,{className:`brain-feature-row${e.parent?` is-child`:``}${o?` is-on`:``}`,"data-testid":`feature-row-${e.id}`,children:[(0,Y.jsxs)(`div`,{className:`brain-feature-copy`,children:[(0,Y.jsxs)(`span`,{className:`brain-feature-name`,children:[e.label,e.source===`env`?(0,Y.jsx)(`em`,{className:`brain-feature-source`,title:n(t,`brain.features.source.env.detail`,{flag:e.env_var}),children:n(t,`brain.features.source.env`)}):null,r?(0,Y.jsx)(`em`,{className:`brain-feature-source`,children:n(t,`brain.features.dormant`)}):null]}),(0,Y.jsx)(`span`,{className:`brain-feature-summary`,children:e.summary}),e.caution?(0,Y.jsxs)(`span`,{className:`brain-feature-caution`,children:[(0,Y.jsx)(Ge,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":`true`}),e.caution]}):null]}),e.kind===`choice`?(0,Y.jsx)($t,{feature:e,language:t,busy:i,onChange:a}):(0,Y.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":o,"aria-label":e.label,className:`brain-feature-switch`,"data-testid":`feature-switch-${e.id}`,onClick:()=>{i||a(!o)},children:[(0,Y.jsx)(`span`,{className:`brain-feature-switch-track`,"aria-hidden":`true`,children:(0,Y.jsx)(`span`,{className:`brain-feature-switch-thumb`})}),(0,Y.jsx)(`span`,{className:`brain-feature-state`,children:n(t,o?`brain.features.on`:`brain.features.off`)})]})]})}function $t({feature:e,language:t,busy:r,onChange:i}){return(0,Y.jsx)(`div`,{className:`brain-feature-choices`,role:`radiogroup`,"aria-label":e.label,"data-testid":`feature-choices-${e.id}`,children:e.choices.map(a=>(0,Y.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":e.current===a.id,className:e.current===a.id?`is-active`:``,"data-testid":`feature-choice-${e.id}-${a.id}`,disabled:!a.available,title:a.detail||void 0,onClick:()=>{r||i(a.id)},children:[a.label,a.available?null:(0,Y.jsx)(`em`,{children:n(t,`brain.features.installRequired`)})]},a.id))})}function en(e,t,n){let r=e;return!r?.ok||!r.data?e:{...r,data:{...r.data,features:r.data.features.map(e=>e.id===t?{...e,current:n,source:`user`}:e)}}}var tn=[{x:62,y:26},{x:78,y:26},{x:93,y:26},{x:62,y:45},{x:78,y:45},{x:93,y:45},{x:70,y:64},{x:86,y:64}];function nn(e){let t=String(e??``).trim();return!t||/^[A-Za-z][\w-]*[-_]?\d{6,}$/.test(t)||/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)||/^\d+$/.test(t)?``:t}var rn=[`chat`,`file`,`folder`,`note`,`web`],an={chat:Ye,file:He,folder:H,note:Ve,web:B};function on(e){return!!(e&&e.stage!==`complete`&&e.stage!==`error`)}J.memo(function({language:e,brainState:t,intensity:r,graph:i,readiness:a,brief:o,memories:s,ingestionStates:c,emergenceEvents:l,streaming:u,onExploreBrain:d}){let p=l[0],m=J.useMemo(()=>{let e=new Map;for(let t of i.edges)e.set(t.source,(e.get(t.source)??0)+1),e.set(t.target,(e.get(t.target)??0)+1);let t=new Set(p?.nodeIds??[]);return[...i.nodes].sort((n,r)=>Number(t.has(r.id))-Number(t.has(n.id))||(e.get(r.id)??0)-(e.get(n.id)??0)||r.importance-n.importance).slice(0,tn.length)},[i.edges,i.nodes,p?.nodeIds]),g=J.useMemo(()=>new Map(m.map((e,t)=>[e.id,tn[t]])),[m]),_=J.useMemo(()=>i.edges.filter(e=>g.has(e.source)&&g.has(e.target)).slice(0,16),[i.edges,g]),v=rn.map(e=>c[e]).find(e=>on(e)),y=J.useMemo(()=>new Set(p?.nodeIds??[]),[p]),b=u||!!v,x=u?`chat`:v?.sourceType,S=nn(v?.label)||nn(p?.label)||nn(o.focus.title)||nn(s[0]?.title)||n(e,`brain.flow.source.empty`),C=v?n(e,`brain.ingest.stage.${v.stage}.hint`):p?n(e,`brain.flow.status.emerged`,{memories:p.newMemories,entities:p.newEntities}):m.length?n(e,`brain.flow.status.ready`,{focus:nn(o.focus.title)||nn(m[0]?.label)||`Brain`}):n(e,`brain.flow.status.empty`),w=Math.max(a.signals.memoryCount,s.length),T=Math.max(a.signals.conceptCount,i.nodes.length),E=Math.max(a.signals.relationshipCount,i.edges.length);return(0,Y.jsxs)(`section`,{className:`brain-knowledge-flow ${b?`is-absorbing`:``}`,"data-source":x||`idle`,"data-stage":v?.stage||(p?`connected`:`ready`),"data-brain-state":t,"aria-labelledby":`brain-home-title`,children:[(0,Y.jsxs)(`header`,{className:`brain-flow-heading`,children:[(0,Y.jsxs)(`div`,{className:`brain-flow-heading-copy`,children:[(0,Y.jsx)(`span`,{className:`brain-home-kicker`,children:n(e,`brain.home.kicker`)}),(0,Y.jsx)(`h1`,{id:`brain-home-title`,children:n(e,`brain.firstScreen.title`)}),(0,Y.jsx)(`p`,{children:n(e,`brain.firstScreen.body`)})]}),(0,Y.jsxs)(`div`,{className:`brain-flow-vital`,"data-state":t,children:[(0,Y.jsxs)(`span`,{"aria-hidden":`true`,children:[(0,Y.jsx)(`i`,{}),(0,Y.jsx)(`i`,{})]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`small`,{children:n(e,`brain.flow.vital`)}),(0,Y.jsx)(`strong`,{children:n(e,`brain.living.state.${t}`)})]})]})]}),(0,Y.jsxs)(`div`,{className:`brain-flow-canvas`,"data-testid":`brain-knowledge-flow`,children:[(0,Y.jsxs)(`div`,{className:`brain-flow-sources`,"aria-label":n(e,`brain.flow.sources.aria`),children:[(0,Y.jsx)(`span`,{className:`brain-flow-column-label`,children:n(e,`brain.flow.sources`)}),rn.map(t=>{let r=an[t],i=c[t],a=t===x,o=i?.stage===`complete`;return(0,Y.jsxs)(`span`,{className:`brain-flow-source ${a?`is-active`:``} ${o?`is-remembered`:``}`,"aria-current":a?`step`:void 0,children:[(0,Y.jsx)(r,{className:`h-4 w-4`,"aria-hidden":`true`}),n(e,`brain.ingest.type.${t}`)]},t)})]}),(0,Y.jsxs)(`svg`,{className:`brain-flow-transfer`,viewBox:`0 0 100 100`,preserveAspectRatio:`none`,"aria-hidden":`true`,children:[(0,Y.jsx)(`path`,{className:`brain-flow-transfer-path`,d:`M20 50 C28 50 31 50 38 50`}),(0,Y.jsx)(`path`,{className:`brain-flow-transfer-path is-output`,d:`M54 50 C59 50 62 50 67 50`}),b?Array.from({length:4}).map((e,t)=>(0,Y.jsx)(`circle`,{className:`brain-flow-particle`,r:`0.8`,style:{animationDelay:`${t*240}ms`},children:(0,Y.jsx)(`animateMotion`,{dur:`1.7s`,repeatCount:`indefinite`,path:`M20 50 C28 50 31 50 43 50`})},t)):null,m.length?Array.from({length:3}).map((e,t)=>(0,Y.jsx)(`circle`,{className:`brain-flow-particle is-output`,r:`0.66`,children:(0,Y.jsx)(`animateMotion`,{begin:`${t*1.15}s`,dur:b?`2.1s`:`4.2s`,repeatCount:`indefinite`,path:`M51 50 C58 46 61 44 70 42`})},`output-${t}`)):null]}),(0,Y.jsxs)(`div`,{className:`brain-flow-organism`,children:[(0,Y.jsx)(`span`,{className:`brain-flow-column-label`,children:n(e,`brain.flow.memory`)}),(0,Y.jsx)(h,{state:t,intensity:b?Math.max(r,.9):r,size:`large`,depth:a.depth,showLabel:!1,onInteract:d}),(0,Y.jsxs)(`span`,{className:`brain-flow-organism-vital`,"aria-hidden":`true`,children:[(0,Y.jsx)(`i`,{}),n(e,`brain.living.state.${t}`)]})]}),(0,Y.jsxs)(`div`,{className:`brain-flow-graph`,"aria-label":n(e,`brain.flow.graph.aria`,{concepts:T,relationships:E}),children:[(0,Y.jsx)(`span`,{className:`brain-flow-column-label`,children:n(e,`brain.flow.graph`)}),(0,Y.jsx)(`svg`,{className:`brain-flow-edges`,viewBox:`0 0 100 100`,preserveAspectRatio:`none`,"aria-hidden":`true`,children:_.map((e,t)=>{let n=g.get(e.source),r=g.get(e.target);return!n||!r?null:(0,Y.jsx)(`line`,{x1:n.x,y1:n.y,x2:r.x,y2:r.y,vectorEffect:`non-scaling-stroke`,style:{animationDelay:`${t*-.72}s`}},e.id)})}),m.length?m.map((t,r)=>{let i=tn[r];return(0,Y.jsxs)(`button`,{type:`button`,className:`brain-flow-node ${y.has(t.id)?`is-emerging`:``}`,style:{left:`${i.x}%`,top:`${i.y}%`},"aria-label":n(e,`brain.flow.node.aria`,{label:t.label,type:t.type}),title:t.summary||t.type,onClick:d,children:[(0,Y.jsx)(`span`,{children:t.type}),(0,Y.jsx)(`strong`,{children:t.label})]},t.id)}):(0,Y.jsxs)(`div`,{className:`brain-flow-empty-graph`,children:[(0,Y.jsx)(U,{className:`h-5 w-5`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.flow.graph.empty`)})]}),(0,Y.jsx)(`ul`,{className:`sr-only`,children:_.map(e=>{let t=m.find(t=>t.id===e.source),n=m.find(t=>t.id===e.target);return!t||!n?null:(0,Y.jsxs)(`li`,{children:[t.label,` — `,e.label,` — `,n.label]},`accessible-${e.id}`)})})]}),(0,Y.jsxs)(`div`,{className:`brain-flow-live-status`,role:`status`,"aria-live":`polite`,"aria-atomic":`true`,children:[(0,Y.jsx)(`span`,{className:`brain-flow-status-icon`,"aria-hidden":`true`,children:b?(0,Y.jsx)(L,{className:`h-4 w-4`}):(0,Y.jsx)(R,{className:`h-4 w-4`})}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:S}),(0,Y.jsx)(`small`,{children:C})]})]}),(0,Y.jsxs)(`ol`,{className:`brain-flow-path`,"aria-label":n(e,`brain.flow.path.aria`),children:[(0,Y.jsxs)(`li`,{"data-active":!!x,children:[(0,Y.jsx)(`span`,{children:n(e,`brain.flow.path.input`)}),(0,Y.jsx)(`strong`,{children:x?n(e,`brain.ingest.type.${x}`):n(e,`brain.flow.path.waiting`)})]}),(0,Y.jsx)(f,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsxs)(`li`,{"data-active":b,children:[(0,Y.jsx)(`span`,{children:n(e,`brain.flow.path.memory`)}),(0,Y.jsx)(`strong`,{children:n(e,`brain.flow.path.memoryCount`,{count:w})})]}),(0,Y.jsx)(f,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`span`,{children:n(e,`brain.flow.path.connections`)}),(0,Y.jsx)(`strong`,{children:n(e,`brain.flow.path.graphCount`,{concepts:T,relationships:E})})]}),(0,Y.jsx)(f,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`span`,{children:n(e,`brain.flow.path.automation`)}),(0,Y.jsx)(`strong`,{children:n(e,`brain.flow.path.actionCount`,{count:o.proactiveActions.length})})]})]})]})]})});function sn({language:e,brief:t,activities:r,streaming:i,onAction:a,compact:o=!1}){let s=J.useRef(null),c=t.proactiveActions.slice(0,3),l=t.evidence.filter(e=>e.value>0).slice(0,3),u=t.focus.title||n(e,`brain.brief.focus.empty`),d=()=>{let e=s.current;e&&(e.removeAttribute(`open`),e.querySelector(`summary`)?.focus())};if(o){let t=c[0];return(0,Y.jsxs)(`section`,{className:`brain-memory-automation is-compact ${c.length>1?`has-more-actions`:c.length===1?`has-single-action`:`has-no-actions`}`,"data-testid":`brain-automation-dock`,"aria-labelledby":`brain-memory-automation-compact-title`,children:[(0,Y.jsxs)(`div`,{className:`brain-automation-compact-head`,children:[(0,Y.jsx)(`span`,{className:`brain-memory-automation-mark`,"aria-hidden":`true`,children:(0,Y.jsx)(g,{className:`h-4 w-4`})}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`small`,{children:n(e,`brain.automation.kicker`)}),(0,Y.jsx)(`strong`,{id:`brain-memory-automation-compact-title`,children:n(e,`brain.automation.title`)})]}),c.length>1?(0,Y.jsxs)(`details`,{ref:s,className:`brain-automation-more`,"data-testid":`brain-automation-more`,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),d())},children:[(0,Y.jsx)(`summary`,{"aria-label":n(e,`brain.automation.more`),children:(0,Y.jsx)(Oe,{className:`h-4 w-4`,"aria-hidden":`true`})}),(0,Y.jsxs)(`div`,{className:`brain-automation-more-popover`,children:[(0,Y.jsxs)(`header`,{className:`brain-automation-more-head`,children:[(0,Y.jsx)(`strong`,{children:n(e,`brain.automation.title`)}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":n(e,`brain.automation.close`),onClick:d,children:(0,Y.jsx)(K,{className:`h-4 w-4`,"aria-hidden":`true`})})]}),(0,Y.jsx)(`div`,{className:`brain-automation-actions`,children:c.map(t=>(0,Y.jsxs)(`button`,{type:`button`,disabled:i,onClick:()=>a(t),children:[(0,Y.jsx)(`span`,{className:`brain-automation-action-icon`,"aria-hidden":`true`,children:ln(t.intent)}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:n(e,t.labelKey)}),(0,Y.jsx)(`small`,{children:n(e,t.detailKey)})]}),(0,Y.jsx)(`em`,{children:n(e,un(t.intent))}),(0,Y.jsx)(f,{className:`h-4 w-4`,"aria-hidden":`true`})]},t.id))}),(0,Y.jsxs)(`div`,{className:`brain-automation-guard`,children:[(0,Y.jsx)(Ae,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.automation.guard`)})]}),r.length?(0,Y.jsx)(`ol`,{className:`brain-automation-activity`,"aria-label":n(e,`brain.proactive.trail.aria`),"aria-live":`polite`,children:r.slice(0,3).map(t=>(0,Y.jsxs)(`li`,{"data-status":t.status,children:[(0,Y.jsx)(R,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsx)(`strong`,{children:n(e,t.labelKey)}),(0,Y.jsx)(`span`,{children:n(e,`brain.proactive.status.${t.status}`)})]},t.id))}):null]})]}):null]}),(0,Y.jsx)(`span`,{className:`brain-automation-compact-focus`,title:u,children:u}),t?(0,Y.jsxs)(`button`,{type:`button`,className:`brain-automation-primary-action`,disabled:i,onClick:()=>a(t),children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:ln(t.intent)}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:n(e,t.labelKey)}),(0,Y.jsx)(`small`,{children:n(e,un(t.intent))})]}),(0,Y.jsx)(f,{className:`h-4 w-4`,"aria-hidden":`true`})]}):(0,Y.jsx)(`p`,{className:`brain-automation-empty`,children:n(e,`brain.automation.empty`)})]})}return(0,Y.jsxs)(`section`,{className:`brain-memory-automation`,"aria-labelledby":`brain-memory-automation-title`,children:[(0,Y.jsxs)(`div`,{className:`brain-memory-automation-head`,children:[(0,Y.jsx)(`div`,{className:`brain-memory-automation-mark`,"aria-hidden":`true`,children:(0,Y.jsx)(g,{className:`h-5 w-5`})}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{children:n(e,`brain.automation.kicker`)}),(0,Y.jsx)(`h2`,{id:`brain-memory-automation-title`,children:n(e,`brain.automation.title`)}),(0,Y.jsx)(`p`,{children:n(e,`brain.automation.body`)})]})]}),(0,Y.jsxs)(`div`,{className:`brain-automation-grounding`,children:[(0,Y.jsx)(he,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`small`,{children:n(e,`brain.automation.basedOn`)}),(0,Y.jsx)(`strong`,{children:u}),t.focus.empty?null:(0,Y.jsx)(`em`,{children:t.focus.source})]}),l.length?(0,Y.jsx)(`div`,{className:`brain-automation-evidence`,"aria-label":n(e,`brain.brief.evidence.aria`),children:l.map(t=>(0,Y.jsxs)(`span`,{title:n(e,t.detailKey),children:[(0,Y.jsx)(`strong`,{children:t.value}),` `,n(e,t.labelKey)]},t.id))}):null]}),c.length?(0,Y.jsx)(`div`,{className:`brain-automation-actions`,children:c.map(t=>(0,Y.jsxs)(`button`,{type:`button`,disabled:i,onClick:()=>a(t),children:[(0,Y.jsx)(`span`,{className:`brain-automation-action-icon`,"aria-hidden":`true`,children:ln(t.intent)}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:n(e,t.labelKey)}),(0,Y.jsx)(`small`,{children:n(e,t.detailKey)})]}),(0,Y.jsx)(`em`,{children:n(e,un(t.intent))}),(0,Y.jsx)(f,{className:`h-4 w-4`,"aria-hidden":`true`})]},t.id))}):(0,Y.jsx)(`p`,{className:`brain-automation-empty`,children:n(e,`brain.automation.empty`)}),(0,Y.jsxs)(`div`,{className:`brain-automation-guard`,children:[(0,Y.jsx)(Ae,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.automation.guard`)})]}),r.length?(0,Y.jsx)(`ol`,{className:`brain-automation-activity`,"aria-label":n(e,`brain.proactive.trail.aria`),"aria-live":`polite`,children:r.slice(0,3).map(t=>(0,Y.jsxs)(`li`,{"data-status":t.status,children:[(0,Y.jsx)(R,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsx)(`strong`,{children:n(e,t.labelKey)}),(0,Y.jsx)(`span`,{children:n(e,`brain.proactive.status.${t.status}`)})]},t.id))}):null]})}function cn({language:e,state:t,concepts:r,relationshipCount:i,onExploreBrain:a}){return(0,Y.jsxs)(`div`,{className:`brain-conversation-trace ${on(t)?`is-active`:``}`,role:`status`,"aria-live":`polite`,children:[(0,Y.jsxs)(`span`,{className:`brain-conversation-trace-source`,children:[(0,Y.jsx)(Ye,{className:`h-4 w-4`,"aria-hidden":`true`}),n(e,`brain.flow.conversation`)]}),(0,Y.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`brain-conversation-trace-memory`,children:[(0,Y.jsx)(L,{className:`h-4 w-4`,"aria-hidden":`true`}),t?n(e,`brain.ingest.stage.${t.stage}.hint`):n(e,`brain.flow.conversation.ready`)]}),(0,Y.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:a,children:[(0,Y.jsx)(U,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:r.slice(0,3).map(e=>e.label).join(` · `)||n(e,`brain.flow.graph.empty.short`)}),(0,Y.jsx)(`small`,{children:n(e,`brain.flow.relationships`,{count:i})})]})]})}function ln(e){return e===`delegate`?(0,Y.jsx)(g,{className:`h-4 w-4`}):e===`review`?(0,Y.jsx)(et,{className:`h-4 w-4`}):e===`route`?(0,Y.jsx)(U,{className:`h-4 w-4`}):(0,Y.jsx)(Ye,{className:`h-4 w-4`})}function un(e){return e===`delegate`?`brain.automation.intent.delegate`:e===`review`?`brain.automation.intent.review`:e===`route`?`brain.automation.intent.route`:`brain.automation.intent.ask`}function dn({memories:e,concepts:t,readiness:r,proof:i,onOpenDepth:a}){let o=c(e=>e.language),s=e.filter(e=>e.agentGenerated).slice(0,3),l=e.filter(e=>!e.agentGenerated),u=l.slice(0,3),d=l.slice(3,6),f=t.slice(0,4),p=i.proofs.hasDurableEvidence||i.modelContinuity.proven,m=i.recall.items.length>0,h=i.modelContinuity.proven&&i.claims.keepsContextAcrossModels?i.modelContinuity.activeModel||n(o,`brain.proof.noModel`):n(o,`brain.proof.modelPending`);return(0,Y.jsxs)(`section`,{className:`brain-overview-panel`,"aria-label":n(o,`brain.aria.overview`),children:[(0,Y.jsxs)(`div`,{className:`brain-overview-head`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{children:n(o,`brain.overview.kicker`)}),(0,Y.jsx)(`strong`,{children:n(o,`brain.overview.title`)})]}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>a(5),children:n(o,`brain.overview.graph`)})]}),(0,Y.jsxs)(`div`,{className:`brain-overview-grid`,children:[(0,Y.jsx)(pn,{title:n(o,`brain.overview.agent`),empty:n(o,`brain.overview.agentEmpty`),items:s.map(e=>e.title),featured:s.length>0,onOpen:()=>a(2)}),(0,Y.jsx)(pn,{title:n(o,`brain.overview.recent`),empty:n(o,`brain.overview.recentEmpty`),items:u.map(e=>e.title),onOpen:()=>a(2)}),(0,Y.jsx)(pn,{title:n(o,`brain.overview.older`),empty:n(o,`brain.overview.olderEmpty`),items:d.map(e=>e.title),onOpen:()=>a(2)}),(0,Y.jsx)(pn,{title:n(o,`brain.overview.topics`),empty:n(o,`brain.overview.topicsEmpty`),items:f.map(e=>e.label),onOpen:()=>a(3)})]}),(0,Y.jsxs)(`div`,{className:`brain-readiness-strip`,"data-state":r.state,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{children:n(o,`brain.readiness.kicker`)}),(0,Y.jsx)(`strong`,{children:n(o,r.titleKey)})]}),(0,Y.jsx)(`div`,{className:`brain-readiness-meter`,"aria-label":n(o,`brain.readiness.aria`),children:(0,Y.jsx)(`i`,{style:{width:`${r.score}%`}})}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>a(r.depth),children:n(o,r.actionKey)})]}),(0,Y.jsxs)(`div`,{className:`brain-proof-strip`,"aria-label":n(o,`brain.proof.aria`),children:[(0,Y.jsx)(fn,{icon:(0,Y.jsx)(Re,{className:`h-4 w-4`}),label:n(o,`brain.proof.context`),value:p?n(o,`brain.proof.contextValue`,{count:i.proofs.durableItems}):n(o,`brain.proof.contextEmpty`)}),(0,Y.jsx)(fn,{icon:(0,Y.jsx)(Qe,{className:`h-4 w-4`}),label:n(o,`brain.proof.model`),value:h}),(0,Y.jsx)(fn,{icon:(0,Y.jsx)(ee,{className:`h-4 w-4`}),label:n(o,`brain.proof.store`),value:n(o,`brain.proof.storeValue`,{topics:i.proofs.graphConcepts,vectors:i.proofs.vectorItems})})]}),m?(0,Y.jsxs)(`button`,{type:`button`,className:`brain-recall-proof`,onClick:()=>a(2),children:[(0,Y.jsx)(`span`,{children:n(o,`brain.proof.recall`)}),(0,Y.jsx)(`strong`,{children:i.recall.items[0].title}),(0,Y.jsx)(`small`,{children:i.recall.items[0].snippet||i.recall.query})]}):(0,Y.jsxs)(`div`,{className:`brain-recall-proof is-empty`,role:`status`,children:[(0,Y.jsx)(`span`,{children:n(o,`brain.proof.recallEmpty.kicker`)}),(0,Y.jsx)(`strong`,{children:n(o,p?`brain.proof.recallPending`:`brain.proof.recallEmpty.title`)}),(0,Y.jsx)(`small`,{children:n(o,p?`brain.proof.recallPending.detail`:`brain.proof.recallEmpty.detail`)})]})]})}function fn({icon:e,label:t,value:n}){return(0,Y.jsxs)(`div`,{className:`brain-proof-point`,children:[e,(0,Y.jsx)(`span`,{children:t}),(0,Y.jsx)(`strong`,{children:n})]})}function pn({title:e,empty:t,items:n,featured:r=!1,onOpen:i}){return(0,Y.jsxs)(`button`,{type:`button`,className:`brain-overview-column${r?` is-featured`:``}`,onClick:i,children:[(0,Y.jsx)(`span`,{children:e}),n.length?n.slice(0,3).map(e=>(0,Y.jsx)(`strong`,{children:e},e)):(0,Y.jsx)(`em`,{children:t})]})}var mn={chat:`brain.ingest.type.chat`,file:`brain.ingest.type.file`,folder:`brain.ingest.type.folder`,note:`brain.ingest.type.note`,web:`brain.ingest.type.web`};function hn({language:e,uploadingDocument:t,ingestionStates:r,onUploadDocument:i,onPickFolder:a,onConnectFolder:o,onIngestNote:s,onIngestWeb:c}){let[l,u]=J.useState(``),[d,f]=J.useState(``),[p,m]=J.useState(``);return(0,Y.jsxs)(`section`,{className:`brain-ingestion-panel`,"aria-label":n(e,`brain.ingest.aria`),children:[(0,Y.jsxs)(`div`,{className:`brain-ingestion-head`,children:[(0,Y.jsx)(`span`,{children:n(e,`brain.ingest.kicker`)}),(0,Y.jsx)(`strong`,{children:n(e,`brain.ingest.title`)})]}),(0,Y.jsxs)(`div`,{className:`brain-ingestion-grid`,children:[(0,Y.jsxs)(`label`,{className:`brain-ingest-tile is-primary ${$(r.file)} ${t?`is-disabled`:``}`,children:[(0,Y.jsx)(He,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:t?n(e,`brain.upload.uploading`):n(e,`brain.ingest.file`)}),(0,Y.jsx)(`small`,{children:n(e,`brain.ingest.file.detail`)}),(0,Y.jsx)(`input`,{type:`file`,accept:`.pdf,.docx,.xlsx,.pptx,.txt,.md,.csv,application/pdf,text/plain,text/markdown,text/csv`,className:`sr-only`,disabled:t,onChange:e=>{let t=e.target.files?.[0];e.currentTarget.value=``,t&&i(t)}}),(0,Y.jsx)(vn,{language:e,state:r.file,ctaKey:`brain.ingest.cta.file`})]}),(0,Y.jsxs)(`form`,{className:`brain-ingest-tile ${$(r.folder)}`,onSubmit:e=>{e.preventDefault(),o(l),u(``)},children:[(0,Y.jsx)(fe,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:n(e,`brain.ingest.folder`)}),(0,Y.jsxs)(`button`,{type:`button`,className:`brain-ingest-folder-picker`,onClick:a,children:[(0,Y.jsx)(H,{className:`h-4 w-4`,"aria-hidden":`true`}),n(e,`capture.local.choose`)]}),(0,Y.jsx)(`input`,{value:l,onChange:e=>u(e.target.value),placeholder:n(e,`brain.ingest.folder.placeholder`)}),(0,Y.jsx)(vn,{language:e,state:r.folder,ctaKey:`brain.ingest.cta.folder`})]}),(0,Y.jsxs)(`form`,{className:`brain-ingest-tile ${$(r.note)}`,onSubmit:e=>{e.preventDefault(),s(d),f(``)},children:[(0,Y.jsx)(Ve,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:n(e,`brain.ingest.note`)}),(0,Y.jsx)(`input`,{value:d,onChange:e=>f(e.target.value),placeholder:n(e,`brain.ingest.note.placeholder`)}),(0,Y.jsx)(vn,{language:e,state:r.note,ctaKey:`brain.ingest.cta.note`})]}),(0,Y.jsxs)(`form`,{className:`brain-ingest-tile ${$(r.web)}`,onSubmit:e=>{e.preventDefault(),c(p),m(``)},children:[(0,Y.jsx)(B,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:n(e,`brain.ingest.web`)}),(0,Y.jsx)(`input`,{value:p,onChange:e=>m(e.target.value),placeholder:n(e,`brain.ingest.web.placeholder`)}),(0,Y.jsx)(vn,{language:e,state:r.web,ctaKey:`brain.ingest.cta.web`})]})]})]})}function gn({language:e,uploadingDocument:t,ingestionStates:r,onUploadDocument:i,onPickFolder:a,onConnectFolder:o,onIngestNote:s,onIngestWeb:c,variant:l=`panel`}){let[u,d]=J.useState(null),[f,p]=J.useState(``),[m,h]=J.useState(``),[g,_]=J.useState(``),v=J.useId(),y=e=>{d(t=>t===e?null:e)},b=e=>{if(e===`folder`){if(!f.trim())return;o(f),p(``)}else if(e===`note`){if(!m.trim())return;s(m),h(``)}else{if(!g.trim())return;c(g),_(``)}d(null)};return(0,Y.jsxs)(`section`,{className:`brain-ingestion-dock${l===`inline`?` is-inline`:``}`,"data-testid":`brain-ingestion-dock`,"aria-label":n(e,`brain.ingest.aria`),onKeyDown:e=>{e.key===`Escape`&&d(null)},children:[l===`inline`?null:(0,Y.jsxs)(`div`,{className:`brain-ingestion-dock-head`,children:[(0,Y.jsx)(L,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`small`,{children:n(e,`brain.ingest.kicker`)}),(0,Y.jsx)(`strong`,{children:n(e,`brain.ingest.dock.title`)})]})]}),(0,Y.jsxs)(`div`,{className:`brain-ingestion-dock-actions`,children:[(0,Y.jsxs)(`label`,{className:`brain-ingestion-dock-action ${$(r.file)} ${t?`is-disabled`:``}`,children:[(0,Y.jsx)(He,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.ingest.type.file`)}),(0,Y.jsx)(`i`,{"aria-hidden":`true`}),(0,Y.jsx)(`input`,{type:`file`,accept:`.pdf,.docx,.xlsx,.pptx,.txt,.md,.csv,application/pdf,text/plain,text/markdown,text/csv`,className:`sr-only`,disabled:t,onChange:e=>{let t=e.target.files?.[0];e.currentTarget.value=``,t&&i(t)}})]}),[[`folder`,H],[`note`,Ve],[`web`,B]].map(([t,i])=>(0,Y.jsxs)(`button`,{type:`button`,className:`brain-ingestion-dock-action ${$(r[t])}`,"aria-expanded":u===t,"aria-controls":u===t?v:void 0,onClick:()=>y(t),children:[(0,Y.jsx)(i,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.ingest.type.${t}`)}),(0,Y.jsx)(`i`,{"aria-hidden":`true`})]},t))]}),u?(0,Y.jsxs)(`div`,{id:v,className:`brain-ingestion-dock-popover`,children:[(0,Y.jsxs)(`header`,{children:[(0,Y.jsx)(`span`,{children:n(e,`brain.ingest.${u}`)}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":n(e,`brain.ingest.dock.close`),onClick:()=>d(null),children:(0,Y.jsx)(K,{className:`h-4 w-4`,"aria-hidden":`true`})})]}),u===`folder`?(0,Y.jsxs)(`button`,{type:`button`,className:`brain-ingestion-dock-picker`,onClick:a,children:[(0,Y.jsx)(H,{className:`h-4 w-4`,"aria-hidden":`true`}),n(e,`capture.local.choose`)]}):null,(0,Y.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),b(u)},children:[(0,Y.jsx)(`input`,{autoFocus:!0,value:u===`folder`?f:u===`note`?m:g,onChange:e=>{u===`folder`?p(e.target.value):u===`note`?h(e.target.value):_(e.target.value)},placeholder:n(e,`brain.ingest.${u}.placeholder`),"aria-label":n(e,`brain.ingest.${u}.placeholder`)}),(0,Y.jsx)(`button`,{type:`submit`,"aria-label":n(e,`brain.action.add`),children:(0,Y.jsx)(Pe,{className:`h-4 w-4`,"aria-hidden":`true`})})]}),(0,Y.jsx)(vn,{language:e,state:r[u],ctaKey:`brain.ingest.cta.${u}`})]}):null]})}function $(e){return e?e.stage===`error`?`is-failed`:e.stage===`complete`?`is-emerged`:`is-ingesting`:``}var _n={preparing:`brain.ingest.stage.preparing.hint`,parsing:`brain.ingest.stage.parsing.hint`,embedding:`brain.ingest.stage.embedding.hint`,indexing:`brain.ingest.stage.indexing.hint`,complete:`brain.ingest.stage.complete.hint`,error:`brain.ingest.stage.error`};function vn({language:e,state:t,ctaKey:r}){if(!t)return(0,Y.jsx)(`small`,{className:`brain-ingest-cta`,children:n(e,r)});let i=t.stage===`error`,a=t.stage===`complete`,o=t.newMemories>0||t.newEntities>0;return(0,Y.jsxs)(`div`,{className:`brain-ingest-progress`,role:`status`,"aria-live":`polite`,"aria-label":n(e,`brain.ingest.progress.aria`,{label:t.label}),children:[(0,Y.jsx)(`div`,{className:`brain-ingest-stage-badges`,"aria-hidden":`true`,children:(0,Y.jsxs)(`span`,{className:`brain-ingest-stage-badge ${i?`is-failed`:a?`is-done`:`is-active`}`,children:[!i&&!a?(0,Y.jsx)(ue,{className:`h-3 w-3 brain-ingest-spin`}):null,n(e,`brain.ingest.stage.${t.stage}`)]})}),(0,Y.jsx)(`small`,{className:`brain-ingest-stage-hint ${i?`is-failed`:a?`is-emerged`:``}`,children:i?n(e,`brain.ingest.stage.error`):a?o?n(e,`brain.ingest.result`,{memories:t.newMemories,entities:t.newEntities}):n(e,`brain.ingest.result.empty`):n(e,_n[t.stage])}),a&&o?(0,Y.jsxs)(`span`,{className:`lattice-inflow`,"aria-hidden":`true`,children:[(0,Y.jsx)(`i`,{}),(0,Y.jsx)(`i`,{}),(0,Y.jsx)(`i`,{})]}):null,a?(0,Y.jsx)(yn,{language:e,state:t}):null]})}function yn({language:e,state:t}){let r=t.extraction;if(!r||r.level!==`low`)return null;let i=r.warnings.slice(0,3);return(0,Y.jsxs)(`div`,{className:`brain-ingest-quality-note`,role:`note`,"data-testid":`extraction-quality-note`,children:[(0,Y.jsx)(`p`,{children:n(e,`brain.ingest.quality.low`)}),i.length?(0,Y.jsx)(`ul`,{children:i.map(e=>(0,Y.jsx)(`li`,{children:e},e))}):null]})}function bn(e,t,r){let i=Math.floor((r-t)/6e4);return i<1?n(e,`brain.timeline.justNow`):n(e,`brain.timeline.minutesAgo`,{count:i})}function xn({language:e,emergenceEvents:t}){let r=Date.now();return(0,Y.jsxs)(`section`,{className:`brain-emergence-timeline`,"aria-label":n(e,`brain.timeline.aria`),"aria-live":`polite`,children:[(0,Y.jsxs)(`div`,{className:`brain-emergence-head`,children:[(0,Y.jsx)(L,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`strong`,{children:n(e,`brain.timeline.emergenceTitle`)}),(0,Y.jsx)(`span`,{children:n(e,`brain.timeline.recent`)})]}),t.length===0?(0,Y.jsx)(`p`,{className:`brain-emergence-empty`,children:n(e,`brain.timeline.empty`)}):(0,Y.jsx)(`ol`,{className:`brain-emergence-list`,children:t.map(t=>(0,Y.jsxs)(`li`,{className:`brain-emergence-item`,children:[(0,Y.jsx)(`span`,{className:`brain-emergence-type`,children:n(e,mn[t.sourceType])}),(0,Y.jsx)(`span`,{className:`brain-emergence-label`,children:t.label}),(0,Y.jsxs)(`span`,{className:`brain-emergence-counts`,children:[(0,Y.jsx)(`strong`,{children:n(e,`brain.timeline.newMemories`,{count:t.newMemories})}),(0,Y.jsx)(`strong`,{children:n(e,`brain.timeline.newEntities`,{count:t.newEntities})})]}),(0,Y.jsx)(`time`,{className:`brain-emergence-at`,children:bn(e,t.at,r)})]},t.id))})]})}function Sn({language:e,brainState:t,intensity:r,readiness:i,memories:a,concepts:o,relationshipCount:s,onExploreBrain:c,onOpenDepth:l}){let[u,d]=J.useState(null),f=J.useMemo(()=>{let e=a.filter(e=>e.kind===`Conversation`),t=a.filter(e=>e.kind!==`Conversation`).sort((e,t)=>Number(t.agentGenerated)-Number(e.agentGenerated));return[{id:`now`,depth:1,labelKey:`brain.rings.1`,emptyKey:`brain.rings.empty.now`,position:`top`,count:e.length,items:e.slice(0,3).map(e=>e.title)},{id:`memories`,depth:2,labelKey:`brain.rings.2`,emptyKey:`brain.rings.empty.memories`,position:`left`,count:t.length,items:t.slice(0,3).map(e=>e.title)},{id:`topics`,depth:3,labelKey:`brain.rings.3`,emptyKey:`brain.rings.empty.topics`,position:`bottom`,count:o.length,items:o.slice(0,3).map(e=>e.label)},{id:`graph`,depth:5,labelKey:`brain.rings.5`,emptyKey:`brain.rings.empty.graph`,position:`right`,count:s,items:[]}]},[a,o,s]);J.useEffect(()=>{if(u===null)return;let e=e=>{e.key===`Escape`&&d(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[u]);let p=f.find(e=>e.id===u)??null;return(0,Y.jsxs)(`div`,{className:`brain-rings`,"aria-label":n(e,`brain.rings.aria`),children:[(0,Y.jsxs)(`div`,{className:`brain-concentric-container`,children:[(0,Y.jsx)(`div`,{className:`brain-orbit-field`,"aria-hidden":`true`,children:f.map((e,t)=>(0,Y.jsx)(`div`,{className:`brain-concentric-ring ring-${t+1} ${e.count>0?`is-populated`:`is-dormant`}`},e.id))}),f.map(t=>(0,Y.jsxs)(`button`,{type:`button`,className:`ring-label ring-label-${t.position} ${t.count>0?`is-populated`:``} ${u===t.id?`is-active`:``}`,"aria-expanded":u===t.id,"aria-controls":`brain-ring-peek`,"aria-label":n(e,`brain.rings.peek.aria`,{label:n(e,t.labelKey),count:t.count}),onClick:()=>d(e=>e===t.id?null:t.id),children:[n(e,t.labelKey),(0,Y.jsx)(`em`,{children:t.count})]},t.id)),(0,Y.jsx)(`div`,{className:`brain-center-orb`,children:(0,Y.jsx)(h,{state:t,intensity:r,size:`large`,depth:i.depth||Math.max(1,Math.floor(i.score/20)),showLabel:!1,className:`brain-home-presence`,onInteract:c})})]}),p?(0,Y.jsxs)(`section`,{id:`brain-ring-peek`,className:`brain-ring-peek`,"aria-label":n(e,`brain.rings.peek.title`,{label:n(e,p.labelKey)}),children:[(0,Y.jsxs)(`header`,{children:[(0,Y.jsx)(`strong`,{children:n(e,p.labelKey)}),(0,Y.jsx)(`span`,{children:n(e,`brain.rings.count`,{count:p.count})}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>d(null),"aria-label":n(e,`brain.rings.close`),children:`×`})]}),p.items.length?(0,Y.jsx)(`ul`,{children:p.items.map(e=>(0,Y.jsx)(`li`,{children:e},e))}):(0,Y.jsx)(`p`,{children:n(e,p.count>0?`brain.rings.peek.summary`:p.emptyKey,{count:p.count})}),(0,Y.jsx)(`button`,{type:`button`,className:`brain-ring-peek-deeper`,onClick:()=>l(p.depth),children:n(e,`brain.rings.deeper`)})]}):null]})}function Cn({language:e}){let t=n(e,`brain.noModel.banner`);return(0,Y.jsxs)(`div`,{className:`brain-model-missing`,role:`note`,"aria-label":t,title:t,children:[(0,Y.jsx)(de,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`brain-model-missing-text`,children:n(e,`brain.noModel.pill`)}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>W(`/models`),children:[n(e,`brain.noModel.cta`),(0,Y.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})]})]})}function wn(e,t){if(!t)return``;let n=e===`ko`?`ko-KR`:`en-US`,r=new Date(t),i=new Date;return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()&&r.getDate()===i.getDate()?r.toLocaleTimeString(n,{hour:`2-digit`,minute:`2-digit`}):r.toLocaleDateString(n,{month:`short`,day:`numeric`})}var Tn=5,En=20;function Dn({language:e,items:t,busyId:r,onResume:i,onDelete:a}){let[o,s]=J.useState(null),[c,l]=J.useState(!1),u=t.slice(0,c?En:Tn),d=Math.min(t.length,En)-Tn;return u.length?(0,Y.jsxs)(`section`,{className:`brain-history-panel`,"aria-label":n(e,`brain.history.aria`),children:[(0,Y.jsxs)(`div`,{className:`brain-history-head`,children:[(0,Y.jsx)(De,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`strong`,{children:n(e,`brain.history.title`)}),(0,Y.jsx)(`span`,{children:n(e,`brain.history.hint`)})]}),(0,Y.jsx)(`ul`,{className:`brain-history-list`,children:u.map(t=>{let c=r===t.id,l=o===t.id;return(0,Y.jsxs)(`li`,{className:`brain-history-item${c?` is-busy`:``}`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`brain-history-resume`,disabled:c,"aria-label":n(e,`brain.history.resumeAria`,{title:t.title}),onClick:()=>i(t.id),children:[c?(0,Y.jsx)(ue,{className:`h-3.5 w-3.5 brain-ingest-spin`,"aria-hidden":`true`}):null,(0,Y.jsx)(`span`,{className:`brain-history-title`,children:t.title}),(0,Y.jsxs)(`small`,{children:[n(e,`brain.history.messages`,{count:t.messageCount}),t.updatedAt?` · ${wn(e,t.updatedAt)}`:``]})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`brain-history-delete${l?` is-confirming`:``}`,disabled:c,"aria-label":l?n(e,`brain.history.deleteConfirm`):n(e,`brain.history.deleteAria`,{title:t.title}),onClick:()=>{l?(s(null),a(t.id)):s(t.id)},onBlur:()=>s(e=>e===t.id?null:e),children:[(0,Y.jsx)(it,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),l?(0,Y.jsx)(`span`,{children:n(e,`brain.history.deleteConfirm`)}):null]})]},t.id)})}),d>0?(0,Y.jsx)(`button`,{type:`button`,className:`brain-history-more`,"aria-expanded":c,onClick:()=>l(e=>!e),children:c?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Ie,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),n(e,`brain.history.showLess`)]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(we,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),n(e,`brain.history.showMore`,{count:d})]})}):null]}):null}function On(e,t){if(e.id===`ask_brain`){ke();return}if(e.id===`verify_model`){t();return}e.route&&W(e.route)}function kn({language:e,brief:t,showEvidence:r=!0,onAction:i}){let a=t.focus.title||n(e,`brain.brief.focus.empty`),o=t.focus.detail||n(e,`brain.brief.focus.empty.detail`),s=t.nextActions.slice(0,3);return(0,Y.jsxs)(`section`,{className:`brain-brief-panel`,"aria-label":n(e,`brain.brief.aria`),children:[(0,Y.jsxs)(`div`,{className:`brain-brief-copy`,children:[(0,Y.jsx)(`span`,{children:n(e,`brain.brief.kicker`)}),(0,Y.jsx)(`strong`,{children:n(e,t.headlineKey)}),(0,Y.jsx)(`p`,{children:n(e,t.bodyKey,{focus:a})})]}),(0,Y.jsxs)(`div`,{className:`brain-brief-focus`,children:[(0,Y.jsx)(L,{className:`h-4 w-4`}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{children:n(e,`brain.brief.focus`)}),(0,Y.jsx)(`strong`,{children:a}),(0,Y.jsx)(`small`,{children:o})]})]}),r?(0,Y.jsx)(`div`,{className:`brain-brief-evidence`,"aria-label":n(e,`brain.brief.evidence.aria`),children:t.evidence.slice(0,3).map(t=>(0,Y.jsxs)(`span`,{title:n(e,t.detailKey),children:[(0,Y.jsx)(`strong`,{children:t.value}),n(e,t.labelKey)]},t.id))}):null,s.length?(0,Y.jsx)(`div`,{className:`brain-brief-actions`,"aria-label":n(e,`brain.brief.actions`),children:s.map(t=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>i(t),children:[An(t.id),(0,Y.jsx)(`span`,{children:n(e,t.labelKey)}),(0,Y.jsx)(`small`,{children:n(e,t.detailKey)})]},t.id))}):null]})}function An(e){return e===`add_source`?(0,Y.jsx)(He,{className:`h-4 w-4`}):e===`inspect_topics`?(0,Y.jsx)(ye,{className:`h-4 w-4`}):e===`verify_model`?(0,Y.jsx)(Qe,{className:`h-4 w-4`}):e===`backup_brain`?(0,Y.jsx)(pe,{className:`h-4 w-4`}):(0,Y.jsx)(f,{className:`h-4 w-4`})}function jn({language:e,proof:t,modelName:r,onVerify:i}){return(0,Y.jsxs)(`section`,{className:`brain-model-demo`,"aria-label":n(e,`brain.modelDemo.aria`),children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{children:n(e,`brain.modelDemo.kicker`)}),(0,Y.jsx)(`strong`,{children:t.modelContinuity.proven?n(e,`brain.modelDemo.proven`):n(e,`brain.modelDemo.pending`)}),(0,Y.jsx)(`small`,{children:n(e,`brain.modelDemo.detail`,{model:t.modelContinuity.activeModel||r})})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:i,children:[(0,Y.jsx)(Qe,{className:`h-3.5 w-3.5`}),n(e,`brain.modelDemo.verify`)]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>W(`/models`),children:[(0,Y.jsx)(de,{className:`h-3.5 w-3.5`}),n(e,`brain.modelDemo.change`)]})]})}var Mn={conversations:`brain.dock.tab.conversations`,stats:`brain.dock.tab.stats`,map:`brain.dock.tab.map`,features:`brain.dock.tab.features`},Nn={conversations:De,stats:Fe,map:U,features:nt};function Pn({language:e,brainState:t,intensity:r,readiness:i,memories:a,concepts:o,relationshipCount:s,emergenceEvents:l,proactiveActivities:u,pastConversations:d,historyBusyId:f,streaming:p,modelName:m,proof:h,brief:g,onOpenDepth:_,onExploreBrain:v,onVerifyModelContinuity:y,onProactiveAction:b,onResumeConversation:x,onDeleteConversation:S,onRequestDetails:C}){let T=c(e=>e.mode)===`basic`,[E,D]=J.useState(null),O=E!==null,k=Se(()=>{let e=document.getElementById(`brain-ring-peek`);if(e){e.querySelector(`header button`)?.click();return}D(null)},O),A=e=>{e!==`conversations`&&e!==`features`&&C(),D(t=>t===e&&O?null:e)},j=[`conversations`,`stats`,`map`,`features`];return(0,Y.jsxs)(`div`,{className:`brain-home-dock`,"data-testid":`brain-home-dock`,children:[(0,Y.jsx)(`div`,{className:`brain-home-dock-rail`,role:`group`,"aria-label":n(e,`brain.dock.aria`),children:j.map(t=>{let r=Nn[t];return(0,Y.jsxs)(`button`,{type:`button`,className:t===`conversations`?`is-continuity`:void 0,"data-testid":`brain-dock-${t}`,"aria-expanded":O&&E===t,onClick:()=>A(t),children:[(0,Y.jsx)(r,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,Mn[t])}),t===`conversations`&&d.length?(0,Y.jsx)(`small`,{className:`brain-dock-count`,children:d.length}):null]},t)})}),O?(0,Xt.createPortal)((0,Y.jsxs)(`div`,{className:`brain-home-dock-layer`,children:[(0,Y.jsx)(`div`,{className:`brain-home-dock-scrim`,"aria-hidden":`true`,onClick:()=>D(null)}),(0,Y.jsxs)(`aside`,{ref:k,className:`brain-home-drawer`,role:`dialog`,"aria-modal":`true`,"aria-label":n(e,`brain.dock.drawerAria`),"data-testid":`brain-home-drawer`,children:[(0,Y.jsxs)(`header`,{className:`brain-home-drawer-head`,children:[(0,Y.jsx)(`div`,{className:`brain-home-drawer-tabs`,role:`group`,"aria-label":n(e,`brain.dock.aria`),children:j.map(t=>(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":E===t,className:E===t?`is-active`:``,"data-testid":`brain-drawer-tab-${t}`,onClick:()=>A(t),children:n(e,Mn[t])},t))}),(0,Y.jsx)(`button`,{type:`button`,className:`brain-home-drawer-close`,"aria-label":n(e,`brain.home.shelf.close`),onClick:()=>D(null),children:(0,Y.jsx)(K,{className:`h-4 w-4`,"aria-hidden":`true`})})]}),(0,Y.jsxs)(`div`,{className:`brain-home-drawer-body`,children:[E===`conversations`?(0,Y.jsx)(Dn,{language:e,items:d,busyId:f,onResume:x,onDelete:S}):null,E===`stats`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(sn,{language:e,brief:g,activities:u,streaming:p,onAction:b}),(0,Y.jsx)(kn,{language:e,brief:g,showEvidence:!T,onAction:e=>On(e,y)}),T?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(xn,{language:e,emergenceEvents:l}),(0,Y.jsx)(jn,{language:e,proof:h,modelName:m,onVerify:y}),(0,Y.jsx)(dn,{memories:a,concepts:o,readiness:i,proof:h,onOpenDepth:_})]}),(0,Y.jsx)(Kt,{language:e,variant:`home`}),(0,Y.jsx)(w,{language:e}),(0,Y.jsx)(ae,{language:e}),(0,Y.jsx)(qt,{language:e}),(0,Y.jsx)(Rt,{language:e}),(0,Y.jsx)(Ot,{language:e})]}):null,E===`map`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Sn,{language:e,brainState:t,intensity:r,readiness:i,memories:a,concepts:o,relationshipCount:s,onExploreBrain:v,onOpenDepth:_}),(0,Y.jsx)(Ut,{language:e}),(0,Y.jsxs)(`button`,{type:`button`,className:`brain-home-drawer-map-cta`,onClick:v,children:[(0,Y.jsx)(U,{className:`h-4 w-4`,"aria-hidden":`true`}),n(e,`brain.hero.stats.mapCta`)]})]}):null,E===`features`?(0,Y.jsx)(Zt,{language:e}):null]})]})]}),document.body):null]})}var Fn=J.memo(function({language:e,brainState:t,intensity:r,readiness:i,memories:a,graph:o,relationshipCount:s,onExploreBrain:c,trailing:l}){let u=Math.max(i.signals.memoryCount,a.length),d=Math.max(i.signals.conceptCount,o.nodes.length),f=u===0&&d===0;return(0,Y.jsxs)(`section`,{className:`brain-hero`,"data-testid":`brain-knowledge-flow`,"aria-labelledby":`brain-home-title`,children:[(0,Y.jsxs)(`div`,{className:`brain-hero-organism`,"data-growth":i.state,"data-testid":`brain-hero-organism`,children:[(0,Y.jsx)(`i`,{className:`brain-growth-ring is-inner`,"aria-hidden":`true`}),(0,Y.jsx)(`i`,{className:`brain-growth-ring is-mid`,"aria-hidden":`true`}),(0,Y.jsx)(`i`,{className:`brain-growth-ring is-outer`,"aria-hidden":`true`}),(0,Y.jsx)(`div`,{className:`brain-hero-orb`,children:(0,Y.jsx)(h,{state:t,intensity:r,size:`normal`,depth:i.depth,showLabel:!1,onInteract:c})})]}),(0,Y.jsx)(`p`,{className:`brain-hero-growing`,children:n(e,`brain.home.growing`)}),(0,Y.jsxs)(`div`,{className:`brain-hero-header-text`,children:[(0,Y.jsx)(`h1`,{id:`brain-home-title`,children:n(e,`brain.home.askTitle`)}),f?(0,Y.jsx)(`p`,{className:`brain-hero-line`,children:n(e,`brain.hero.empty`)}):(0,Y.jsxs)(`p`,{className:`brain-hero-line`,children:[n(e,`brain.hero.line`),(0,Y.jsx)(In,{language:e,memories:u,concepts:d,relationships:s,onExploreBrain:c})]})]}),l?(0,Y.jsx)(`div`,{className:`brain-hero-trailing`,children:l}):null]})});function In({language:e,memories:t,concepts:r,relationships:i,onExploreBrain:a}){let[o,s]=J.useState(!1),c=J.useRef(null),l=J.useRef(null),u=J.useId(),d=J.useRef(0),f=()=>{l.current!==null&&(window.clearTimeout(l.current),l.current=null)},p=()=>{f(),l.current=window.setTimeout(()=>s(!1),160)};J.useEffect(()=>{if(!o)return;let e=e=>{let t=e.target;t&&c.current?.contains(t)||s(!1)};return document.addEventListener(`pointerdown`,e,!0),document.addEventListener(`focusin`,e,!0),()=>{document.removeEventListener(`pointerdown`,e,!0),document.removeEventListener(`focusin`,e,!0)}},[o]),J.useEffect(()=>f,[]);let m=[{key:`memories`,label:n(e,`brain.hero.stats.memories`),value:t,tone:`is-memory`},{key:`concepts`,label:n(e,`brain.hero.stats.concepts`),value:r,tone:`is-knowledge`},{key:`relationships`,label:n(e,`brain.hero.stats.relationships`),value:i,tone:`is-core`}],h=Math.max(1,...m.map(e=>e.value));return(0,Y.jsxs)(`span`,{ref:c,className:`brain-hero-stats`,"data-testid":`brain-hero-stats`,onPointerEnter:e=>{e.pointerType===`mouse`&&(f(),s(e=>(e||(d.current=Date.now()),!0)))},onPointerLeave:e=>{e.pointerType===`mouse`&&p()},onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),s(!1))},children:[(0,Y.jsxs)(`button`,{type:`button`,className:`brain-hero-stats-badge`,"aria-expanded":o,"aria-controls":o?u:void 0,"aria-label":n(e,`brain.hero.stats.aria`,{memories:t,concepts:r}),onClick:()=>{s(e=>e?Date.now()-d.current<350:(d.current=Date.now(),!0))},children:[(0,Y.jsxs)(`span`,{className:`brain-hero-stat`,children:[n(e,`brain.hero.stats.memories`),` `,(0,Y.jsx)(`strong`,{children:t})]}),(0,Y.jsx)(`i`,{"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`brain-hero-stat`,children:[n(e,`brain.hero.stats.concepts`),` `,(0,Y.jsx)(`strong`,{children:r})]})]}),o?(0,Y.jsxs)(`span`,{id:u,className:`brain-hero-stats-popover`,role:`group`,"aria-label":n(e,`brain.hero.stats.popoverAria`),"data-testid":`brain-hero-stats-popover`,children:[(0,Y.jsx)(`strong`,{className:`brain-hero-stats-title`,children:n(e,`brain.hero.stats.title`)}),(0,Y.jsx)(`span`,{className:`brain-hero-stats-graph`,"aria-hidden":`true`,children:m.map(e=>(0,Y.jsxs)(`span`,{className:`brain-hero-stats-row`,children:[(0,Y.jsx)(`span`,{className:`brain-hero-stats-label`,children:e.label}),(0,Y.jsx)(`span`,{className:`brain-hero-stats-track`,children:(0,Y.jsx)(`span`,{className:`brain-hero-stats-fill ${e.tone}`,style:{width:`${Math.max(6,Math.round(e.value/h*100))}%`}})}),(0,Y.jsx)(`span`,{className:`brain-hero-stats-value`,children:e.value})]},e.key))}),(0,Y.jsx)(`span`,{className:`brain-hero-stats-hint`,children:n(e,`brain.hero.hint`)}),(0,Y.jsxs)(`button`,{type:`button`,className:`brain-hero-stats-cta`,onClick:a,children:[(0,Y.jsx)(qe,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),n(e,`brain.hero.stats.mapCta`)]})]}):null]})}var Ln={low:`is-low`,medium:`is-medium`,high:`is-high`};function Rn({language:e}){let r=l(),[i,a]=J.useState(null),o=u({queryKey:[`permissionMode`],queryFn:t.permissionMode}),s=d({mutationFn:e=>t.setPermissionMode(e.mode,e.ack),onSuccess:e=>{e.ok&&(r.invalidateQueries({queryKey:[`permissionMode`]}),a(null))}}),c=o.data?.ok?o.data.data:void 0,f=c?.catalog??[],p=c?.mode??``,m=f.find(e=>e.id===i);function h(e){if(e.id!==p){if(e.requires_ack){a(e.id);return}a(null),s.mutate({mode:e.id,ack:!1})}}return(0,Y.jsxs)(`div`,{className:`brain-quick-controls`,"data-testid":`brain-quick-controls`,children:[f.length?(0,Y.jsxs)(`div`,{className:`brain-quick-dial`,role:`radiogroup`,"aria-label":n(e,`system.permission.title`),children:[(0,Y.jsx)(`span`,{className:`brain-quick-label`,children:n(e,`system.permission.title`)}),(0,Y.jsx)(`div`,{className:`brain-quick-segments`,children:f.map(t=>(0,Y.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t.id===p,className:t.id===p?`is-active`:``,"data-testid":`quick-mode-${t.id}`,title:ve(t,e),disabled:s.isPending,onClick:()=>h(t),children:[(0,Y.jsx)(`i`,{className:`brain-quick-dot ${Ln[t.risk]||`is-medium`}`,"aria-hidden":`true`}),_e(t,e)]},t.id))})]}):null,m?(0,Y.jsxs)(`div`,{className:`brain-quick-confirm`,role:`alertdialog`,"data-testid":`quick-mode-confirm`,children:[(0,Y.jsx)(be,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`p`,{children:ge(m,e)}),(0,Y.jsx)(`button`,{type:`button`,className:`is-primary`,"data-testid":`quick-mode-confirm-apply`,disabled:s.isPending,onClick:()=>s.mutate({mode:m.id,ack:!0}),children:_e(m,e)}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>a(null),children:n(e,`ui.cancel`)})]}):null,s.data&&!s.data.ok?(0,Y.jsx)(`p`,{className:`brain-quick-error`,role:`status`,children:s.data.error||n(e,`ui.requestUnavailable`)}):null]})}function zn({language:e,cloudAnswer:t}){let r=t.model?n(e,`brain.cloud.chip.model`,{model:t.model}):n(e,`brain.cloud.chip`),i=t.expansion?.stagedForReview&&t.expansion.candidateCount>0?n(e,`brain.cloud.detail`,{nodes:t.sentNodeCount,proposals:t.expansion.candidateCount}):n(e,`brain.cloud.detail.nodes`,{nodes:t.sentNodeCount});return(0,Y.jsxs)(`details`,{className:`brain-cloud-answer`,"data-testid":`cloud-answer-chip`,children:[(0,Y.jsxs)(`summary`,{className:`brain-cloud-answer-chip`,"aria-label":n(e,`brain.cloud.chip.expandAria`),children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:r}),(0,Y.jsx)(`span`,{className:`sr-only`,children:n(e,`brain.cloud.chip.aria`)})]}),(0,Y.jsx)(`p`,{className:`brain-cloud-answer-detail`,children:i})]})}function Bn(e=0){let t=document.getElementById(`network-boundary-panel`);if(t){t.scrollIntoView({behavior:`smooth`,block:`start`});return}e<8&&window.setTimeout(()=>Bn(e+1),50)}function Vn(){W(`/settings`),Bn()}function Hn({language:e}){let r=G(e=>e.preferLocalOnly),i=G(e=>e.setPreferLocalOnly),a=u({queryKey:[`networkBoundary`],queryFn:t.networkBoundary});return a.data?.ok&&a.data.data.allows_cloud?(0,Y.jsxs)(`div`,{className:`brain-cloud-hint`,"data-testid":`cloud-boundary-hint`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`brain-cloud-hint-link`,"data-testid":`cloud-boundary-allowed`,"aria-label":n(e,`brain.cloud.allowed.aria`),onClick:Vn,children:n(e,`brain.cloud.allowed`)}),(0,Y.jsxs)(`label`,{className:`brain-cloud-hint-toggle`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,"data-testid":`cloud-local-only-toggle`,checked:r,onChange:e=>i(e.target.checked),"aria-label":n(e,`brain.cloud.localOnly.aria`)}),n(e,`brain.cloud.localOnly`)]})]}):null}var Un=new Set([`html`,`htm`,`md`,`markdown`,`txt`,`json`,`css`,`js`,`csv`,`py`,`yaml`,`yml`,`xml`,`sql`,`sh`]);function Wn(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t+1).toLowerCase():``}function Gn(e){return typeof e.previewable==`boolean`?e.previewable:Un.has(Wn(e.filename))}function Kn(e){let t=Wn(e);return t===`html`||t===`htm`?`html`:t===`md`||t===`markdown`?`markdown`:t===`json`?`json`:`text`}var qn=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; font-src data:;">`;function Jn(e){return/<head[^>]*>/i.test(e)?e.replace(/<head[^>]*>/i,e=>`${e}${qn}`):`${qn}${e}`}function Yn(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function Xn({language:e,file:r,onClose:i}){let a=Se(i),[o,s]=J.useState({status:`loading`}),[c,l]=J.useState(!1),u=Kn(r.filename);J.useEffect(()=>{let e=!1;return t.readWorkspaceFile(r.path).then(t=>{e||(t.ok?s({status:`ready`,content:t.data.content}):s({status:`error`,reason:t.error||String(t.status||``)}))}),()=>{e=!0}},[r.path]);async function d(){c||(l(!0),await t.downloadWorkspaceFile(r.path,r.filename),l(!1))}return(0,Y.jsx)(`div`,{className:`file-preview-backdrop`,role:`presentation`,onMouseDown:e=>{e.target===e.currentTarget&&i()},children:(0,Y.jsxs)(`div`,{ref:a,className:`file-preview-modal`,role:`dialog`,"aria-modal":`true`,"aria-label":n(e,`brain.preview.aria`,{name:r.filename}),"data-testid":`file-preview-modal`,children:[(0,Y.jsxs)(`header`,{className:`file-preview-head`,children:[(0,Y.jsx)(`strong`,{className:`file-preview-name`,children:r.filename}),(0,Y.jsxs)(`div`,{className:`file-preview-actions`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void d(),disabled:c,children:[(0,Y.jsx)(z,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),c?n(e,`brain.files.downloading`):n(e,`brain.files.download`)]}),(0,Y.jsx)(`button`,{type:`button`,className:`file-preview-close`,"aria-label":n(e,`brain.preview.close`),onClick:i,children:(0,Y.jsx)(K,{className:`h-4 w-4`,"aria-hidden":`true`})})]})]}),(0,Y.jsx)(`div`,{className:`file-preview-body`,children:o.status===`loading`?(0,Y.jsx)(`p`,{className:`file-preview-note`,role:`status`,children:n(e,`brain.preview.loading`)}):o.status===`error`?(0,Y.jsx)(`p`,{className:`file-preview-note is-error`,role:`alert`,children:n(e,`brain.preview.error`,{reason:o.reason})}):u===`html`?(0,Y.jsx)(`iframe`,{className:`file-preview-frame`,sandbox:``,title:n(e,`brain.preview.aria`,{name:r.filename}),srcDoc:Jn(o.content)}):u===`markdown`?(0,Y.jsx)(`div`,{className:`file-preview-markdown`,"data-testid":`file-preview-markdown`,children:(0,Y.jsx)(Zn,{language:e,content:o.content})}):(0,Y.jsx)(`pre`,{className:`file-preview-code`,"data-testid":`file-preview-code`,children:u===`json`?Yn(o.content):o.content})}),u===`html`?(0,Y.jsxs)(`footer`,{className:`file-preview-foot`,role:`note`,children:[(0,Y.jsx)(Ae,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),n(e,`brain.preview.sandboxNote`)]}):null]})})}function Zn({language:e,content:t}){return(0,Y.jsx)(Y.Fragment,{children:J.useMemo(()=>tr(t),[t]).map((t,n)=>t.kind===`code`?(0,Y.jsx)(ir,{language:e,code:t.value,lang:t.lang},n):t.value.trim()?(0,Y.jsx)(er,{value:t.value},n):null)})}function Qn(e){let t=[],n=[],r=()=>{n.length&&(t.push({kind:`paragraph`,lines:n}),n=[])};for(let i of e.split(`
2
- `)){let e=i.trim();if(!e){r();continue}let a=/^(#{1,4})\s+(.+)$/.exec(e);if(a){r(),t.push({kind:`heading`,depth:a[1].length,text:a[2]});continue}let o=/^[-*•]\s+(.+)$/.exec(e);if(o){r();let e=t[t.length-1];e?.kind===`list`&&!e.ordered?e.items.push(o[1]):t.push({kind:`list`,ordered:!1,items:[o[1]]});continue}let s=/^\d+[.)]\s+(.+)$/.exec(e);if(s){r();let e=t[t.length-1];e?.kind===`list`&&e.ordered?e.items.push(s[1]):t.push({kind:`list`,ordered:!0,items:[s[1]]});continue}let c=/^>\s?(.*)$/.exec(e);if(c){r();let e=t[t.length-1];e?.kind===`quote`?e.lines.push(c[1]):t.push({kind:`quote`,lines:[c[1]]});continue}if(/^([-_*])\1{2,}$/.test(e)){r();continue}n.push(e)}return r(),t}function $n(e){let t=/(\*\*[^*]+\*\*|`[^`]+`|\[[^\]]+\]\(https?:\/\/[^)\s]+\))/g,n=[],r=0,i=0;for(let a=t.exec(e);a;a=t.exec(e)){a.index>r&&n.push(e.slice(r,a.index));let t=a[0];if(t.startsWith(`**`))n.push((0,Y.jsx)(`strong`,{children:t.slice(2,-2)},i++));else if(t.startsWith("`"))n.push((0,Y.jsx)(`code`,{children:t.slice(1,-1)},i++));else{let e=/^\[([^\]]+)\]\((https?:\/\/[^)\s]+)\)$/.exec(t);e?n.push((0,Y.jsx)(`a`,{href:e[2],target:`_blank`,rel:`noreferrer noopener`,children:e[1]},i++)):n.push(t)}r=a.index+t.length}return r<e.length&&n.push(e.slice(r)),n}function er({value:e}){return(0,Y.jsx)(`div`,{className:`brain-md`,children:J.useMemo(()=>Qn(e),[e]).map((e,t)=>{if(e.kind===`heading`)return(0,Y.jsx)(`p`,{className:`brain-md-heading is-depth-${Math.min(e.depth,3)}`,children:$n(e.text)},t);if(e.kind===`list`){let n=e.items.map((e,t)=>(0,Y.jsx)(`li`,{children:$n(e)},t));return e.ordered?(0,Y.jsx)(`ol`,{children:n},t):(0,Y.jsx)(`ul`,{children:n},t)}return e.kind===`quote`?(0,Y.jsx)(`blockquote`,{children:$n(e.lines.join(` `))},t):(0,Y.jsx)(`p`,{children:e.lines.map((e,t)=>(0,Y.jsxs)(J.Fragment,{children:[t>0?(0,Y.jsx)(`br`,{}):null,$n(e)]},t))},t)})})}function tr(e){let t=[],n=/```([\w.+-]*)\n([\s\S]*?)(?:```|$)/g,r=0;for(let i=n.exec(e);i;i=n.exec(e))i.index>r&&t.push({kind:`text`,value:e.slice(r,i.index)}),t.push({kind:`code`,value:i[2].replace(/\n$/,``),lang:i[1]||void 0}),r=i.index+i[0].length;return r<e.length&&t.push({kind:`text`,value:e.slice(r)}),t.length?t:[{kind:`text`,value:e}]}var nr={python:`py`,py:`py`,javascript:`js`,js:`js`,typescript:`ts`,ts:`ts`,tsx:`tsx`,jsx:`jsx`,html:`html`,css:`css`,json:`json`,markdown:`md`,md:`md`,bash:`sh`,sh:`sh`,shell:`sh`,zsh:`sh`,sql:`sql`,yaml:`yml`,yml:`yml`,toml:`toml`,csv:`csv`,xml:`xml`,text:`txt`,txt:`txt`};function rr(e){let t=nr[(e||``).toLowerCase()]||`txt`,n=new Date;return`chat-${[n.getFullYear(),String(n.getMonth()+1).padStart(2,`0`),String(n.getDate()).padStart(2,`0`)].join(``)+`-`+[String(n.getHours()).padStart(2,`0`),String(n.getMinutes()).padStart(2,`0`),String(n.getSeconds()).padStart(2,`0`)].join(``)}.${t}`}function ir({language:e,code:r,lang:i}){let[a,o]=J.useState(!1),[s,c]=J.useState(`idle`),[l,u]=J.useState(null),[d,f]=J.useState(``);async function p(){try{await navigator.clipboard?.writeText(r),o(!0),window.setTimeout(()=>o(!1),2e3)}catch{}}async function m(){if(s===`saving`)return;c(`saving`),f(``);let a=rr(i),o=await t.saveChatFile(a,r);if(!o.ok){c(`error`),f(o.error||n(e,`common.error.unknown`));return}let l=o.data,d=l.path||a;u({path:d,filename:d.split(`/`).pop()||a,bytes:l.bytes||0}),c(`saved`)}return(0,Y.jsxs)(`div`,{className:`brain-code-block`,children:[(0,Y.jsxs)(`div`,{className:`brain-code-head`,children:[(0,Y.jsx)(`span`,{className:`brain-code-lang`,children:i||`text`}),(0,Y.jsxs)(`div`,{className:`brain-code-actions`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>void p(),children:a?n(e,`brain.code.copied`):n(e,`brain.code.copy`)}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void m(),disabled:s===`saving`,children:[(0,Y.jsx)($e,{className:`h-3 w-3`,"aria-hidden":`true`}),s===`saving`?n(e,`brain.code.saving`):n(e,`brain.code.save`)]})]})]}),(0,Y.jsx)(`pre`,{children:(0,Y.jsx)(`code`,{children:r})}),s===`saved`&&l?(0,Y.jsx)(sr,{language:e,files:[l],compact:!0}):null,s===`error`?(0,Y.jsx)(`small`,{className:`brain-code-save-error`,role:`alert`,children:n(e,`brain.code.saveError`,{reason:d})}):null]})}function ar(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:``}function or({language:e,ingest:t}){let r=t.status===`ok`?`brain.files.brainOk`:t.status===`pending`?`brain.files.brainPending`:t.status===`failed`?`brain.files.brainFailed`:null;return r?(0,Y.jsx)(`span`,{className:`brain-created-file-brain is-${t.status}`,role:`note`,"data-testid":`brain-ingest-chip`,title:t.status===`failed`&&t.detail?t.detail:void 0,children:n(e,r)}):null}function sr({language:e,files:r,compact:i=!1}){let[a,o]=J.useState(null),[s,c]=J.useState(``),[l,u]=J.useState(null);async function d(r){if(a)return;o(r.path),c(``);let i=await t.downloadWorkspaceFile(r.path,r.filename);i.ok||c(i.error||n(e,`common.error.unknown`)),o(null)}return(0,Y.jsxs)(`section`,{className:`brain-created-files lattice-success-pulse ${i?`is-compact`:``}`,"aria-label":n(e,`brain.files.title`),children:[(0,Y.jsxs)(`div`,{className:`brain-created-files-head`,children:[(0,Y.jsx)(Be,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,Y.jsx)(`strong`,{children:n(e,`brain.files.title`)})]}),(0,Y.jsx)(`ul`,{children:r.map(t=>(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`span`,{className:`brain-created-file-name`,children:t.filename}),t.bytes?(0,Y.jsx)(`small`,{children:ar(t.bytes)}):null,t.repaired?(0,Y.jsx)(`span`,{className:`brain-created-file-repaired`,role:`note`,children:n(e,`brain.files.repaired`)}):null,t.brainIngest?(0,Y.jsx)(or,{language:e,ingest:t.brainIngest}):null,Gn(t)?(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>u(t),children:[(0,Y.jsx)(ze,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),n(e,`brain.preview.open`)]}):null,(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void d(t),disabled:a===t.path,children:[(0,Y.jsx)(z,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),a===t.path?n(e,`brain.files.downloading`):n(e,`brain.files.download`)]})]},t.path))}),l?(0,Y.jsx)(Xn,{language:e,file:l,onClose:()=>u(null)}):null,(0,Y.jsx)(`small`,{className:`brain-created-files-hint`,children:n(e,`brain.files.hint`)}),s?(0,Y.jsx)(`small`,{className:`brain-created-files-error`,role:`alert`,children:n(e,`brain.files.downloadError`,{reason:s})}):null]})}function cr({language:e,modelName:t,modelReady:r,messages:i,pastConversations:a,historyBusyId:o,starterPrompts:s,memoryFeedback:l,ingestionStates:u,emergenceEvents:d,proactiveActivities:f,draft:p,streaming:m,imageData:g,streamRef:_,memories:v,graph:y,concepts:b,relationshipCount:x,readiness:S,proof:C,brief:w,uploadingDocument:T,onOpenDepth:E,onDraftChange:D,onImageDataChange:O,onUploadDocument:k,onPickFolder:A,onConnectFolder:ee,onIngestNote:te,onIngestWeb:ne,onVerifyModelContinuity:re,onSend:N,onSendText:P,onCreateActionItem:F,onProactiveAction:oe,onApprovalResolved:se,onStop:ce,onRegenerate:le,onNewConversation:ue,onResumeConversation:I,onDeleteConversation:de,brainState:z,intensity:fe,onExploreBrain:B,onRequestDetails:pe}){let me=i.length>0,V=c(e=>e.mode)===`basic`,H=fr(i),he=w.suggestedQuestions.slice(0,3),U=J.useMemo(()=>i.flatMap(e=>e.approval?[e.approval.runId]:[]),[i]),ge=(0,Y.jsx)(gn,{language:e,variant:`inline`,uploadingDocument:T,ingestionStates:u,onUploadDocument:k,onPickFolder:A,onConnectFolder:ee,onIngestNote:te,onIngestWeb:ne});return(0,Y.jsx)(`section`,{className:`brain-conversation`,"aria-label":n(e,`brain.aria.conversation`),children:(0,Y.jsx)(`div`,{className:`brain-chat-home-layout`,children:(0,Y.jsxs)(`section`,{className:`brain-chat-home-card ${me?`has-messages`:`is-empty-home`}`,"aria-label":n(e,`brain.chatHome.aria`),children:[(0,Y.jsx)(ie,{language:e}),(0,Y.jsx)(j,{language:e}),(0,Y.jsx)(M,{language:e,knownRunIds:U}),me?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`header`,{className:`brain-chat-header`,children:[(0,Y.jsxs)(`div`,{className:`brain-header-presence`,children:[(0,Y.jsx)(h,{state:z,intensity:fe,size:`trace`,showLabel:!1,onInteract:B}),(0,Y.jsxs)(`div`,{className:`brain-header-title`,children:[(0,Y.jsx)(`strong`,{children:n(e,`brain.title`)}),(0,Y.jsxs)(`span`,{children:[n(e,`brain.firstScreen.state.${S.state}`),V?``:` (${S.score}%)`]})]})]}),(0,Y.jsxs)(`div`,{className:`brain-header-actions`,children:[V?null:(0,Y.jsx)(`div`,{className:`brain-model-pill`,children:t}),(0,Y.jsxs)(`button`,{type:`button`,className:`brain-deeper-btn`,onClick:ue,children:[(0,Y.jsx)(Je,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),n(e,`brain.newChat`)]}),(0,Y.jsx)(`button`,{type:`button`,className:`brain-deeper-btn`,onClick:B,children:n(e,`brain.firstScreen.action.graph`)})]})]}),(0,Y.jsx)(cn,{language:e,state:u.chat,concepts:b,relationshipCount:x,onExploreBrain:B}),(0,Y.jsx)(`div`,{ref:_,className:`brain-stream`,children:i.map((t,n)=>{let r=`brain-msg-${n}`,a=t.role===`assistant`?t.proof:void 0,o=t.role===`assistant`&&!!t.content.trim()&&!m,s=o&&n===H;return(0,Y.jsxs)(`div`,{className:`brain-message ${t.role}`,children:[(0,Y.jsxs)(`div`,{className:`brain-message-bubble`,children:[t.role===`assistant`?(0,Y.jsx)(Zn,{language:e,content:t.content}):t.content,a&&a.citations.length?(0,Y.jsx)(bt,{language:e,proof:a,messageId:r}):null,t.role===`assistant`&&t.contextQuality?.limited?(0,Y.jsx)(dr,{language:e,reason:V?null:t.contextQuality.reason}):null,t.role===`assistant`&&t.content.trim()&&t.grounding?(0,Y.jsx)(ur,{language:e,grounding:t.grounding}):null,t.role===`assistant`&&t.cloudAnswer?(0,Y.jsx)(zn,{language:e,cloudAnswer:t.cloudAnswer}):null]}),t.role===`assistant`&&t.approval?(0,Y.jsx)(dt,{language:e,approval:t.approval,onResolved:e=>se(n,e),onReplan:P}):null,t.role===`assistant`&&t.agentSteps?.length?(0,Y.jsx)(gt,{language:e,steps:t.agentSteps,streaming:m&&n===i.length-1}):null,o?(0,Y.jsx)(pr,{language:e,content:t.content,canRegenerate:n===H,onRegenerate:le,canFollowUp:s,onFollowUp:P,onCreateActionItem:F}):null,t.files?.length?(0,Y.jsx)(sr,{language:e,files:t.files}):null,t.role===`assistant`&&t.agentState?(0,Y.jsx)(lr,{language:e,state:t.agentState}):null,t.role===`assistant`&&t.loopSummary?(0,Y.jsx)(_t,{language:e,summary:t.loopSummary}):null,t.role===`assistant`&&t.runExplanation?(0,Y.jsx)(vt,{language:e,explanation:t.runExplanation}):null,a?(0,Y.jsx)(xt,{language:e,proof:a,messageId:r,onUseEvidence:P}):null]},`${t.role}-${n}`)})}),(0,Y.jsx)(sn,{language:e,brief:w,activities:f,streaming:m,onAction:oe}),r?null:(0,Y.jsx)(Cn,{language:e}),(0,Y.jsx)(Hn,{language:e}),(0,Y.jsx)(Jt,{language:e,draft:p,streaming:m,imageData:g,uploadingDocument:T,onDraftChange:D,onImageDataChange:O,onUploadDocument:k,onSend:N,onStop:ce,attachments:ge})]}):(0,Y.jsxs)(`div`,{className:`brain-centered-home`,"data-testid":`brain-home-stage`,children:[(0,Y.jsxs)(`section`,{className:`brain-home-station`,"data-testid":`brain-home-station`,children:[(0,Y.jsx)(Fn,{language:e,brainState:z,intensity:fe,readiness:S,memories:v,graph:y,relationshipCount:x,onExploreBrain:B,trailing:r?null:(0,Y.jsx)(Cn,{language:e})}),(0,Y.jsxs)(`div`,{className:`brain-writing-desk`,children:[(0,Y.jsxs)(`div`,{className:`brain-composer-wrapper`,children:[(0,Y.jsx)(Hn,{language:e}),(0,Y.jsx)(Jt,{language:e,draft:p,streaming:m,imageData:g,uploadingDocument:T,onDraftChange:D,onImageDataChange:O,onUploadDocument:k,onSend:N,onStop:ce,attachments:ge})]}),(0,Y.jsx)(`div`,{className:`brain-station-toolbar`,role:`group`,"aria-label":n(e,`brain.station.toolbar.aria`),children:(0,Y.jsx)(Rn,{language:e})})]})]}),(0,Y.jsx)(`section`,{className:`brain-secondary-deck`,"data-testid":`brain-secondary-deck`,"aria-label":n(e,`brain.suggestions.aria`),children:he.length?(0,Y.jsxs)(`div`,{className:`brain-home-prompt-strip`,children:[(0,Y.jsxs)(`div`,{className:`brain-home-prompt-strip-label`,children:[(0,Y.jsx)(L,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.suggestions.title`)})]}),(0,Y.jsx)(`div`,{className:`brain-prompt-grid`,children:he.map(t=>{let r=n(e,t.promptKey,t.params);return(0,Y.jsxs)(`button`,{type:`button`,disabled:m,title:n(e,t.detailKey),onClick:()=>{D(``),P(r)},children:[(0,Y.jsx)(`strong`,{children:n(e,t.labelKey)}),(0,Y.jsx)(`span`,{children:n(e,t.detailKey)})]},t.id)})})]}):(0,Y.jsxs)(`div`,{className:`brain-home-prompt-strip`,children:[(0,Y.jsxs)(`div`,{className:`brain-home-prompt-strip-label`,children:[(0,Y.jsx)(L,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:n(e,`brain.suggestions.title`)})]}),(0,Y.jsx)(`div`,{className:`brain-prompt-pills-row`,children:s.slice(0,3).map(e=>(0,Y.jsx)(`button`,{type:`button`,onClick:()=>D(e),className:`brain-prompt-pill`,children:e},e))})]})}),(0,Y.jsx)(`footer`,{className:`brain-home-quiet`,children:(0,Y.jsx)(Pn,{language:e,brainState:z,intensity:fe,readiness:S,memories:v,concepts:b,relationshipCount:x,emergenceEvents:d,proactiveActivities:f,pastConversations:a,historyBusyId:o,streaming:m,modelName:t,proof:C,brief:w,onOpenDepth:E,onExploreBrain:B,onVerifyModelContinuity:re,onProactiveAction:oe,onResumeConversation:I,onDeleteConversation:de,onRequestDetails:pe})})]}),l?(0,Y.jsxs)(`div`,{className:`brain-save-feedback`,role:`status`,children:[(0,Y.jsx)(Re,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:l}),(0,Y.jsx)(`small`,{children:n(e,`brain.saved.detail`)})]}):null,me?(0,Y.jsxs)(`details`,{className:`brain-utility-drawer`,onToggle:e=>e.currentTarget.open&&pe(),children:[(0,Y.jsx)(`summary`,{children:n(e,V?`brain.chatHome.utility.basic`:`brain.chatHome.utility`)}),(0,Y.jsxs)(`div`,{className:`brain-utility-tools`,"aria-label":n(e,`brain.chatHome.contextAria`),children:[(0,Y.jsx)(Te,{compact:!0}),V?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`brain-model-pill`,children:t}),(0,Y.jsxs)(`button`,{className:`brain-admin-link`,type:`button`,onClick:()=>W(`/admin`),children:[(0,Y.jsx)(Ae,{className:`h-3.5 w-3.5`}),n(e,`brain.admin`)]})]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(R,{className:`h-3.5 w-3.5`}),n(e,`brain.local`)]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(R,{className:`h-3.5 w-3.5`}),n(e,`brain.private`)]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(R,{className:`h-3.5 w-3.5`}),n(e,`brain.portable`)]})]}),(0,Y.jsxs)(`div`,{className:`brain-utility-grid`,children:[(0,Y.jsx)(hn,{language:e,uploadingDocument:T,ingestionStates:u,onUploadDocument:k,onPickFolder:A,onConnectFolder:ee,onIngestNote:te,onIngestWeb:ne}),(0,Y.jsx)(ae,{language:e}),V?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(xn,{language:e,emergenceEvents:d}),(0,Y.jsx)(jn,{language:e,proof:C,modelName:t,onVerify:re}),(0,Y.jsx)(dn,{memories:v,concepts:b,readiness:S,proof:C,onOpenDepth:E})]}),(0,Y.jsx)(Kt,{language:e}),(0,Y.jsx)(qt,{language:e}),(0,Y.jsx)(Rt,{language:e}),(0,Y.jsx)(Ut,{language:e}),(0,Y.jsx)(Ot,{language:e})]})]}):null]})})})}function lr({language:e,state:t}){return(0,Y.jsx)(`p`,{className:`brain-agent-state-note ${t===`FAILED`?`is-failed`:`is-review`}`,role:`alert`,"data-testid":`agent-state-note`,children:n(e,t===`FAILED`?`brain.agent.failed`:`brain.agent.needsReview`)})}function ur({language:e,grounding:t}){let r=t.status===`supported`;return(0,Y.jsx)(`span`,{className:`brain-grounding-badge ${r?`is-supported`:`is-none`}`,role:`note`,"data-testid":`grounding-badge`,title:t.reason||void 0,children:n(e,r?`brain.grounding.supported`:`brain.grounding.none`)})}function dr({language:e,reason:t}){return(0,Y.jsxs)(`p`,{className:`brain-context-quality-note`,role:`note`,"data-testid":`context-quality-note`,children:[(0,Y.jsx)(`span`,{children:n(e,`brain.contextQuality.limited`)}),t?(0,Y.jsx)(`small`,{children:n(e,`brain.contextQuality.reason`,{reason:t})}):null]})}function fr(e){for(let t=e.length-1;t>=0;--t)if(e[t].role===`assistant`)return t;return-1}function pr({language:e,content:t,canRegenerate:r,onRegenerate:i,canFollowUp:a,onFollowUp:o,onCreateActionItem:s}){let[c,l]=J.useState(!1),u=J.useMemo(()=>[{labelKey:`brain.message.followup.checklist`,promptKey:`brain.message.followup.checklist.prompt`},{labelKey:`brain.message.followup.evidence`,promptKey:`brain.message.followup.evidence.prompt`},{labelKey:`brain.message.followup.next`,promptKey:`brain.message.followup.next.prompt`}],[]);async function d(){try{await navigator.clipboard?.writeText(t),l(!0),window.setTimeout(()=>l(!1),2e3)}catch{}}return(0,Y.jsxs)(`div`,{className:`brain-message-actions`,children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-label":n(e,`brain.message.copyAria`),onClick:()=>void d(),children:[(0,Y.jsx)(Le,{className:`h-3 w-3`,"aria-hidden":`true`}),c?n(e,`brain.message.copied`):n(e,`brain.message.copy`)]}),r?(0,Y.jsxs)(`button`,{type:`button`,"aria-label":n(e,`brain.message.regenerateAria`),onClick:i,children:[(0,Y.jsx)(m,{className:`h-3 w-3`,"aria-hidden":`true`}),n(e,`brain.message.regenerate`)]}):null,a?(0,Y.jsxs)(`button`,{type:`button`,"aria-label":n(e,`brain.message.saveTaskAria`),onClick:()=>s(t),children:[(0,Y.jsx)(Ke,{className:`h-3 w-3`,"aria-hidden":`true`}),n(e,`brain.message.saveTask`)]}):null,a?(0,Y.jsx)(`div`,{className:`brain-message-followups`,"aria-label":n(e,`brain.message.followup.aria`),children:u.map(t=>(0,Y.jsx)(`button`,{type:`button`,onClick:()=>o(n(e,t.promptKey)),children:n(e,t.labelKey)},t.promptKey))}):null]})}var mr=64;function hr(e){if(e.scrollHeight-e.clientHeight<=1)return!1;let t=e.ownerDocument.defaultView?.getComputedStyle(e).overflowY;return t===`auto`||t===`scroll`||t===`overlay`}function gr(e){for(let t=e;t;t=t.parentElement)if(hr(t))return{element:t,isDocument:!1};let t=e?.ownerDocument,n=t?.scrollingElement??t?.documentElement??null;return n instanceof HTMLElement?{element:n,isDocument:!0}:null}function _r(e){return e.scrollHeight-e.clientHeight-e.scrollTop<=mr}function vr(e){let t=J.useRef(null),n=J.useRef(null),r=J.useRef(!0),i=J.useRef(0),a=J.useCallback(()=>{let e=n.current;return e&&e.element.isConnected?e:(n.current=gr(t.current),n.current)},[]);return J.useEffect(()=>{let e=e=>{let t=n.current;if(!t||!(t.isDocument&&e.target===t.element.ownerDocument||e.target===t.element))return;let a=t.element.scrollTop,o=a<i.current-1;i.current=a,o?r.current=_r(t.element):_r(t.element)&&(r.current=!0)};return document.addEventListener(`scroll`,e,{capture:!0,passive:!0}),()=>document.removeEventListener(`scroll`,e,{capture:!0})},[]),J.useEffect(()=>{let e=a();!e||!r.current||(e.element.scrollTop=e.element.scrollHeight,i.current=e.element.scrollTop)},[e,a]),t}function yr({language:e,modelReady:r,onBrainChange:i,setMemoryFeedback:a,beginIngestion:o,completeIngestion:s,failIngestion:c,setLastRecallQuery:u,attachAnswerProof:f}){let m=l(),h=G(e=>e.messages),g=G(e=>e.setMessages),v=G(e=>e.conversationId),b=G(e=>e.setConversationId),w=G(e=>e.preferLocalOnly),[T,E]=J.useState(``),[D,k]=J.useState(null),[A,j]=J.useState(!1),[ee,te]=J.useState([]),ne=vr(h),M=J.useRef(null),N=J.useRef(null),ie=d({mutationFn:async r=>{let i=await t.runAgent(r,[`planner`,`executor`,`reviewer`]);if(!i.ok)throw Error(i.error||n(e,`ui.status.unavailable`));return i},onSuccess:()=>{m.invalidateQueries({queryKey:[`memoryManager`]}),m.invalidateQueries({queryKey:[`memoryBrainBrief`]}),m.invalidateQueries({queryKey:[`graphPreview`]}),m.invalidateQueries({queryKey:[`graph`]}),m.invalidateQueries({queryKey:[`agentRuntime`]}),a(n(e,`brain.delegate.done`)),window.setTimeout(()=>a(null),4200)},onError:t=>a(n(e,`brain.delegate.failed`,{reason:String(t)}))});J.useEffect(()=>{A?i(`thinking`,.94):T.trim().length>4?i(`listening`,.76):i(`idle`,.58)},[T,i,A]),J.useEffect(()=>()=>{N.current!==null&&window.clearTimeout(N.current),M.current?.abort()},[]);async function P(){let e=T.trim();!e||A||(E(``),await F(e))}async function ae(){if(A)return;let e=[...h].reverse().find(e=>e.role===`user`);e&&(g(e=>{let t=[...e];return t[t.length-1]?.role===`assistant`&&t.pop(),t[t.length-1]?.role===`user`&&t.pop(),t}),await F(e.content))}async function F(l){if(!l||A)return;let d=v||`brain-${Date.now()}`;if(v||b(d),!r){g(t=>[...t,{role:`user`,content:l},{role:`assistant`,content:n(e,`brain.noModel.message`)}]),k(null),a(n(e,`brain.noModel.status`));return}g(e=>[...e,{role:`user`,content:l},{role:`assistant`,content:``}]),k(null),j(!0),a(null),o(`chat`,l.slice(0,120)),i(`thinking`,.96);let h=new AbortController;M.current=h;try{let r=await t.streamChat({message:l,conversation_id:d,image_data:D||void 0,...w?{network_mode:`local_only`}:{}},{signal:h.signal,onChunk:(e,t)=>{g(e=>{let n=[...e];return n[n.length-1]={...n[n.length-1],role:`assistant`,content:t},n})},onHybridContext:e=>{let t=x(e);t&&g(e=>{let n=[...e],r=n[n.length-1];return r?.role===`assistant`?(n[n.length-1]={...r,hybridContext:t},n):e})},onHybridDone:e=>{let t=_(e);t&&g(e=>{let n=[...e],r=n[n.length-1];return r?.role===`assistant`?(n[n.length-1]={...r,content:t.answer||r.content,cloudAnswer:O(t,r.hybridContext?.nodeIds.length||0)},n):e})},onAgentStep:e=>{let t=C(e);t&&g(e=>{let n=[...e],r=n[n.length-1];return n[n.length-1]={...r,role:`assistant`,agentSteps:[...r.agentSteps||[],t]},n})},onAgent:t=>{let n=at(t);if(n){g(e=>{let t=[...e];return t[t.length-1]={...t[t.length-1],approval:n},t});return}let r=re(t),i=t.final_state===`NEEDS_REVIEW`||t.final_state===`FAILED`?t.final_state:void 0,a=S(t.loop),o=y(t.explanation,e),s=oe(t.steps);!r.length&&!i&&!a&&!o&&!s.length||g(e=>{let t=[...e],n=t[t.length-1],c=n.agentSteps?.length?n.agentSteps:s;return t[t.length-1]={...n,...r.length?{files:r}:{},...i?{agentState:i}:{},...a?{loopSummary:a}:{},...o?{runExplanation:o}:{},...c.length?{agentSteps:c}:{}},t})},onTrace:e=>{e&&(i(`recalling`,.9),p(),N.current!==null&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>i(`thinking`,.9),900))}});if(r.error)g(t=>br(t,`${n(e,`brain.unavailable`)}: ${r.error}`)),c(`chat`,String(r.error));else{let t=le(`contextQuality`in r?r.contextQuality:null)||le(r.trace),i=ce(`grounding`in r?r.grounding:null)||ce(r.trace),o=x(`hybridContext`in r?r.hybridContext:null),c=_(`hybridDone`in r?r.hybridDone:null);(t||i||o||c)&&g(e=>{let n=[...e];for(let e=n.length-1;e>=0;--e)if(n[e].role===`assistant`){let r=n[e];n[e]={...r,...t?{contextQuality:t}:{},...i?{grounding:i}:{},...o&&!r.hybridContext?{hybridContext:o}:{},...c&&!r.cloudAnswer?{content:c.answer||r.content,cloudAnswer:O(c,r.hybridContext?.nodeIds.length||o?.nodeIds.length||0)}:{}};break}return n}),u(l);let d=await s(`chat`);a(n(e,`brain.saved`,{topics:d.entities,memories:d.memories})),p(),f(l)}}catch(t){let r=t instanceof DOMException&&t.name===`AbortError`;g(i=>{let a=[...i],o=a[a.length-1];return o?.role===`assistant`&&!o.content.trim()&&(a[a.length-1]={...o,content:r?n(e,`brain.stopped.empty`):`${n(e,`brain.unavailable`)}: ${t instanceof Error?t.message:String(t)}`}),a}),a(r?n(e,`brain.stopped`):null),c(`chat`,r?`stopped`:t instanceof Error?t.message:String(t))}finally{N.current!==null&&(window.clearTimeout(N.current),N.current=null),M.current===h&&(M.current=null),j(!1);for(let e of[`chatHistory`,`memoryManager`,`graphPreview`,`graph`,`memoryBrainProof`,`memoryBrainBrief`])m.invalidateQueries({queryKey:[e]})}}function se(t,n){if(g(r=>{let i=r[t];if(!i?.approval)return r;let a=[...r];if(n.kind===`finished`){let r=n.payload,o=re(r),s=r.final_state===`NEEDS_REVIEW`||r.final_state===`FAILED`?r.final_state:void 0,c=typeof r.response==`string`?r.response.trim():``,l=S(r.loop),u=y(r.explanation,e),d=oe(r.steps),f=i.agentSteps?.length?i.agentSteps:d;a[t]={...i,content:c||i.content,...o.length?{files:o}:{},...s?{agentState:s}:{},...l?{loopSummary:l}:{},...u?{runExplanation:u}:{},...f.length?{agentSteps:f}:{},approval:{...i.approval,status:`approved`}}}else n.kind===`error`?a[t]={...i,approval:{...i.approval,status:`error`,errorReason:n.reason}}:a[t]={...i,approval:{...i.approval,status:n.kind,...n.kind===`expired`&&n.replanMessage?{replanMessage:n.replanMessage}:{}}};return a}),n.kind===`finished`){p();for(let e of[`chatHistory`,`memoryManager`,`graphPreview`,`graph`,`memoryBrainProof`,`memoryBrainBrief`,`agentRuntime`])m.invalidateQueries({queryKey:[e]})}}async function ue(r){let i=r.trim();if(!i)return!1;let o=([...h].reverse().find(e=>e.role===`user`)?.content||n(e,`brain.action.defaultTitle`)).trim().slice(0,96),s=await t.createReviewItem({title:o,summary:i.slice(0,420),source:`chat_followup`,kind:`task_draft`,payload:{answer_preview:i.slice(0,2e3),conversation_id:v||``},provenance:{conversation_id:v||``,source_detail:`brain_chat`}});return a(s.ok?n(e,`brain.action.saved`):n(e,`brain.action.saveFailed`,{reason:s.error||String(s.status||``)})),s.ok}function I(e,t,n,r=`${e.id}-${Date.now()}`){let i=Date.now();return te(a=>{let o=a.find(e=>e.id===r);return[{id:r,actionId:e.id,labelKey:e.labelKey,intent:e.intent,status:t,startedAt:o?.startedAt??i,completedAt:t===`running`?void 0:i,detail:n},...a.filter(e=>e.id!==r)].slice(0,6)}),r}async function L(e){let t=e.prompt.trim(),n=I(e,`running`);if(e.intent===`route`&&e.route){window.location.hash=e.route,I(e,`completed`,e.route,n);return}if(!t){I(e,`failed`,`empty prompt`,n);return}try{e.intent===`delegate`?(await ie.mutateAsync(t),I(e,`completed`,`agent`,n)):e.intent===`review`?I(e,await ue(t)?`completed`:`failed`,`review`,n):(await F(t),I(e,`completed`,`chat`,n))}catch(t){I(e,`failed`,t instanceof Error?t.message:String(t),n)}}return{messages:h,conversationId:v,draft:T,setDraft:E,imageData:D,setImageData:k,streaming:A,streamRef:ne,proactiveActivities:ee,send:P,sendText:F,regenerate:ae,createActionItem:ue,handleProactiveAction:L,handleApprovalResolved:se,stopStreaming:()=>M.current?.abort()}}function br(e,t){let n=[...e];return n[n.length-1]={role:`assistant`,content:t},n}function xr({language:e,setMemoryFeedback:r}){let i=l(),a=G(e=>e.conversationId),o=G(e=>e.setConversationId),s=G(e=>e.setMessages),c=G(e=>e.resetConversation),[d,f]=J.useState(null),p=u({queryKey:[`chatHistory`],queryFn:t.chatHistory});return{historyQ:p,pastConversations:J.useMemo(()=>F(p.data?.data),[p.data]),historyBusyId:d,resetConversation:c,resumeConversation:J.useCallback(async(i,a)=>{if(!(d||a)){f(i),r(n(e,`brain.history.loading`));try{let a=await t.conversation(i);if(!a.ok){r(n(e,`brain.history.loadFailed`,{reason:a.error||`unavailable`}));return}let c=T(a.data);if(!c.length){r(n(e,`brain.history.loadFailed`,{reason:n(e,`brain.history.emptyConversation`)}));return}o(i),s(c),r(n(e,`brain.history.resumed`))}finally{f(null)}}},[d,e,o,r,s]),deleteConversation:J.useCallback(async o=>{if(!d){f(o);try{let s=await t.deleteConversation(o);if(!s.ok){r(n(e,`brain.history.deleteFailed`,{reason:s.error||`unavailable`}));return}a===o&&c(),r(n(e,`brain.history.deleted`)),i.invalidateQueries({queryKey:[`chatHistory`]}),i.invalidateQueries({queryKey:[`memoryManager`]})}finally{f(null)}}},[a,d,e,i,c,r])}}function Sr(){let e=window;return!!(e.__TAURI__?.core?.invoke||e.latticeDesktop?.selectFolder||e.__TAURI_INTERNALS__&&window.location.protocol===`tauri:`)}function Cr(e){return e instanceof DOMException&&e.name===`AbortError`}function wr(e){return(e[0]?.webkitRelativePath||``).split(`/`).filter(Boolean)[0]||``}async function Tr(e){let t=[];if(typeof e.values==`function`){for await(let n of e.values())t.push(n);return t}if(typeof e.entries==`function`)for await(let[,n]of e.entries())t.push(n);return t}async function Er(e){let t=[];for(let n of await Tr(e)){if(n.kind===`file`){t.push(await n.getFile());continue}t.push(...await Er(n))}return t}async function Dr(){try{if(Sr()){let e=await t.selectFolder();if(e)return{kind:`path`,path:e}}let e=window.showDirectoryPicker;if(typeof e==`function`){let t=await e.call(window);return{kind:`files`,files:await Er(t),name:t.name}}return{kind:`unavailable`}}catch(e){return Cr(e)?{kind:`cancelled`}:{kind:`unavailable`}}}var Or={chat:null,file:null,folder:null,note:null,web:null};function kr({language:e,brainReadiness:r,memoryFragments:i,graphModel:a,memoriesFetched:o,graphFetched:s,requestDetails:c,setLastRecallQuery:u,setMemoryFeedback:d,onBrainChange:f}){let m=l(),[h,g]=J.useState(!1),[_,v]=J.useState(Or),[y,b]=J.useState([]),[x,S]=J.useState(!1),C=J.useRef({});J.useEffect(()=>{if(!y[0]?.id)return;S(!0);let e=window.setTimeout(()=>S(!1),1650);return()=>window.clearTimeout(e)},[y]);let w=J.useCallback((e,t)=>{v(n=>{let r=n[e];return r?{...n,[e]:{...r,stage:t}}:n})},[]),T=J.useCallback((e,t)=>{c(),C.current[e]={memories:Math.max(r.signals.memoryCount,i.length),entities:Math.max(r.signals.conceptCount,a.nodes.length),label:t,memoryKnown:o,graphKnown:s,nodeIds:new Set(a.nodes.map(e=>e.id))},v(n=>({...n,[e]:{sourceType:e,label:t,stage:`preparing`,startedAt:Date.now(),completedAt:null,newMemories:0,newEntities:0,nodeIds:[]}}))},[r.signals.conceptCount,r.signals.memoryCount,s,a.nodes,o,i.length,c]),E=J.useCallback((e,t,n,r,i)=>{let a=C.current[e],o=a?.label??``,s=a?.graphKnown?r.nodes.filter(e=>!a.nodeIds.has(e.id)).map(e=>e.id):[],c=i.nodeIds.filter(e=>!a?.graphKnown||!a.nodeIds.has(e)),l=Array.from(new Set([...s,...c])).slice(0,24),u=a?.memoryKnown?Math.max(0,t-a.memories):0,d=a?.graphKnown?Math.max(l.length,Math.max(0,n-a.entities)):l.length;delete C.current[e],v(t=>{let n=t[e];return n?{...t,[e]:{...n,stage:`complete`,completedAt:Date.now(),newMemories:u,newEntities:d,nodeIds:l,chunkCount:i.chunkCount,duplicate:i.duplicate,provenanceId:i.provenanceId,extraction:i.extraction}}:t}),b(t=>[{id:`${e}-${Date.now()}`,sourceType:e,label:o,newMemories:u,newEntities:d,nodeIds:l,at:Date.now()},...t].slice(0,10))},[]),D=J.useCallback(async(e,n=null)=>{w(e,`indexing`);let o=ne(n),[s,c]=await Promise.all([t.memoryManager(),t.graphPreview(48)]),l=c.ok?se(c.data):a,u=s.ok?te(s.data,i.length,l.nodes.length):r;return s.ok&&m.setQueryData([`memoryManager`],s),c.ok&&m.setQueryData([`graphPreview`],c),E(e,Math.max(u.signals.memoryCount,i.length),Math.max(u.signals.conceptCount,l.nodes.length),l,o),await Promise.all([m.invalidateQueries({queryKey:[`chatHistory`]}),m.invalidateQueries({queryKey:[`graph`]}),m.invalidateQueries({queryKey:[`memoryBrainProof`]}),m.invalidateQueries({queryKey:[`memoryBrainBrief`]}),m.invalidateQueries({queryKey:[`vectorFreshness`]}),m.invalidateQueries({queryKey:[`ingestionJobs`]})]),{memories:Math.max(u.signals.memoryCount,i.length),entities:Math.max(u.signals.conceptCount,l.nodes.length)}},[r,a,i.length,m,E,w]),O=J.useCallback((e,t)=>{delete C.current[e],v(n=>{let r=n[e];return r?{...n,[e]:{...r,stage:`error`,completedAt:Date.now(),error:t}}:n})},[]),k=J.useCallback(async r=>{if(!h){g(!0),d(n(e,`brain.upload.pending`,{name:r.name})),f(`recalling`,.86),T(`file`,r.name);try{let i=await t.uploadDocument(r);if(!i.ok){let t=i.error||`unavailable`;d(n(e,`brain.upload.failed`,{reason:t})),O(`file`,t);return}d(n(e,`brain.upload.saved`,{name:r.name})),u(r.name),await D(`file`,i.data),p()}finally{g(!1)}}},[T,D,O,e,f,u,d,h]),A=J.useCallback(async r=>{let i=r.trim();if(!i)return;d(n(e,`brain.ingest.folder.pending`,{path:i})),f(`recalling`,.84),T(`folder`,i);let a=await t.connectFolder(i);if(!a.ok){let t=a.error||`unavailable`;d(n(e,`brain.ingest.folder.failed`,{reason:t})),O(`folder`,t);return}d(n(e,`brain.ingest.folder.saved`,{path:i})),u(i),await D(`folder`,a.data),p()},[T,D,O,e,f,u,d]);return{ingestionStates:_,emergenceEvents:y,synthesisActive:x,uploadingDocument:h,beginIngestion:T,completeIngestion:D,failIngestion:O,uploadDocument:k,pickFolder:J.useCallback(async()=>{let r=await Dr();if(r.kind===`cancelled`)return;if(r.kind===`unavailable`){d(n(e,`brain.ingest.folder.unavailable`));return}if(r.kind===`path`){await A(r.path);return}let i=r.name||wr(r.files);if(!r.files.length){d(n(e,`brain.ingest.folder.empty`)),O(`folder`,`empty`);return}d(n(e,`brain.ingest.folder.reading`)),f(`recalling`,.84),T(`folder`,i);let a=0,o=null;for(let e of r.files){let n=await t.uploadDocument(e);n.ok&&(a+=1,o=n)}if(!a){d(n(e,`brain.ingest.folder.empty`)),O(`folder`,`empty`);return}d(n(e,`brain.ingest.folder.browserSaved`,{name:i,count:a})),u(i),await D(`folder`,o?.data),p()},[T,D,A,O,e,f,u,d]),connectFolder:A,ingestNote:J.useCallback(async r=>{let i=r.trim();if(!i)return;d(n(e,`brain.ingest.note.pending`)),f(`recalling`,.84),T(`note`,i.slice(0,80));let a=await t.ingestNote(i,i.slice(0,80));if(!a.ok){let t=a.error||`unavailable`;d(n(e,`brain.ingest.note.failed`,{reason:t})),O(`note`,t);return}d(n(e,`brain.ingest.note.saved`)),u(i.slice(0,120)),await D(`note`,a.data),p()},[T,D,O,e,f,u,d]),ingestWeb:J.useCallback(async r=>{let i=r.trim();if(!i)return;d(n(e,`brain.ingest.web.pending`,{url:i})),f(`recalling`,.84),T(`web`,i);let a=await t.browserReadUrl(i),o=a.data&&typeof a.data==`object`?a.data:{},s=typeof o.status==`string`?o.status:``;if(!a.ok||s!==`ok`){let t=a.error||(typeof o.detail==`string`?o.detail:s)||`unavailable`;d(n(e,`brain.ingest.web.failed`,{reason:t})),O(`web`,t);return}d(n(e,`brain.ingest.web.saved`,{url:i})),u(i),await D(`web`,a.data),p()},[T,D,O,e,f,u,d]),resetChatIngestion:()=>v(e=>({...e,chat:null}))}}function Ar({language:e,messages:r,modelName:i,setMemoryFeedback:a}){let o=G(e=>e.setMessages),[s,c]=J.useState(``),[l,d]=J.useState(!1),f=u({queryKey:[`memoryBrainProof`,s],queryFn:()=>t.memoryBrainProof(s,3),enabled:l||!!s||r.length>0}),p=u({queryKey:[`memoryBrainBrief`,s],queryFn:()=>t.memoryBrainBrief(s,3)}),m=J.useMemo(()=>E(f.data,i),[f.data,i]),h=J.useMemo(()=>P(p.data?.data),[p.data]),g=J.useCallback(async r=>{let s=await t.memoryBrainProof(r,4);if(!s.ok)return a(n(e,`brain.proof.unavailable`,{reason:s.error||n(e,`ui.status.unavailable`)})),!1;let c=jr(E(s,i),r,i);return o(e=>{let t=[...e];for(let e=t.length-1;e>=0;--e)if(t[e].role===`assistant`){t[e]={...t[e],proof:c};break}return t}),!0},[e,i,a,o]);return{brainProof:m,brainBrief:h,lastRecallQuery:s,setLastRecallQuery:c,requestDetails:()=>d(!0),attachAnswerProof:g,verifyModelContinuity:J.useCallback(async()=>{let t=[...r].reverse().find(e=>e.role===`user`),o=s||t?.content||``;if(!o.trim()){a(n(e,`brain.modelDemo.needQuestion`));return}a(n(e,`brain.modelDemo.checking`,{model:i})),await g(o)&&(c(o),a(n(e,`brain.modelDemo.done`,{model:i})))},[g,e,s,r,i,a])}}function jr(e,t,n){return{query:t,model:e.modelContinuity.activeModel||n,provenAcrossModels:e.modelContinuity.proven&&e.claims.keepsContextAcrossModels,citations:e.recall.items.slice(0,4).map(e=>({id:e.id,source:e.source,title:e.title,snippet:e.snippet,matchedTerms:e.matchedTerms,confidence:e.confidence,score:e.score,locator:e.locator,kind:e.kind,caption:e.caption,thumbnail:e.thumbnail}))}}function Mr(e){let t=e.dataTransfer?.types;return t?Array.from(t).includes(`Files`):!1}function Nr(e){let[t,n]=J.useState(!1),r=J.useRef(0),i=J.useRef(e);return i.current=e,J.useEffect(()=>{let e=e=>{Mr(e)&&(e.preventDefault(),r.current+=1,n(!0))},t=e=>{Mr(e)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`))},a=e=>{Mr(e)&&(r.current=Math.max(0,r.current-1),r.current===0&&n(!1))},o=e=>{if(r.current=0,n(!1),!Mr(e))return;e.preventDefault();let t=Array.from(e.dataTransfer?.files||[]);t.length&&i.current(t)},s=()=>{r.current=0,n(!1)};return window.addEventListener(`dragenter`,e),window.addEventListener(`dragover`,t),window.addEventListener(`dragleave`,a),window.addEventListener(`drop`,o),window.addEventListener(`dragend`,s),()=>{window.removeEventListener(`dragenter`,e),window.removeEventListener(`dragover`,t),window.removeEventListener(`dragleave`,a),window.removeEventListener(`drop`,o),window.removeEventListener(`dragend`,s)}},[]),t}function Pr({brainState:e,intensity:r,onBrainChange:i}){let a=c(e=>e.language),o=G(e=>e.messages),[s,l]=J.useState(null),d=u({queryKey:[`memoryManager`],queryFn:t.memoryManager}),f=u({queryKey:[`graphPreview`],queryFn:()=>t.graphPreview(48)}),m=u({queryKey:[`models`],queryFn:t.models}),h=xr({language:a,setMemoryFeedback:l}),g=J.useMemo(()=>D(d.data?.data,h.historyQ.data?.data,a),[h.historyQ.data,d.data]),_=J.useMemo(()=>se(f.data?.data),[f.data]),v=J.useMemo(()=>_.nodes.slice(0,10),[_.nodes]),y=J.useMemo(()=>te(d.data?.data,g.length,v.length),[v.length,d.data,g.length]),b=J.useMemo(()=>N(m.data?.data),[m.data]),x=J.useMemo(()=>A(m.data?.data),[m.data]),S=Ar({language:a,messages:o,modelName:b,setMemoryFeedback:l}),C=kr({language:a,brainReadiness:y,memoryFragments:g,graphModel:_,memoriesFetched:d.isFetched,graphFetched:f.isFetched,requestDetails:S.requestDetails,setLastRecallQuery:S.setLastRecallQuery,setMemoryFeedback:l,onBrainChange:i}),w=yr({language:a,modelReady:x,onBrainChange:i,setMemoryFeedback:l,beginIngestion:C.beginIngestion,completeIngestion:C.completeIngestion,failIngestion:C.failIngestion,setLastRecallQuery:S.setLastRecallQuery,attachAnswerProof:S.attachAnswerProof}),T=J.useMemo(()=>[n(a,`brain.prompt.remember`),n(a,`brain.prompt.know`),n(a,`brain.prompt.plan`)],[a]),E=J.useCallback(e=>{p(),i(`recalling`,.82),window.location.hash=e<=2?`/memory`:`/knowledge-graph`},[i]),O=J.useRef(C.uploadDocument);O.current=C.uploadDocument;let k=Nr(J.useCallback(e=>{(async()=>{for(let t of e.slice(0,5))await O.current(t)})()},[])),j=J.useCallback(()=>{w.streaming&&w.stopStreaming(),h.resetConversation(),C.resetChatIngestion(),l(null),i(`idle`,.58)},[w,h,C,i]),ee=w.proactiveActivities.some(e=>e.status===`running`),ne=Object.values(C.ingestionStates).some(e=>e&&e.stage!==`complete`&&e.stage!==`error`),M=ee?`acting`:w.streaming&&e===`recalling`?`recalling`:w.streaming?`thinking`:ne?`recalling`:C.synthesisActive?`synthesizing`:w.draft.trim()?`listening`:`idle`,re=M===`idle`?.62:M===`listening`?.76:Math.max(.92,r);return(0,Y.jsxs)(`main`,{className:`brain-home`,"aria-label":n(a,`brain.aria.home`),children:[k?(0,Y.jsx)(`div`,{className:`brain-drop-overlay`,role:`status`,"data-testid":`brain-drop-overlay`,children:(0,Y.jsxs)(`div`,{className:`brain-drop-overlay-card`,children:[(0,Y.jsx)(`strong`,{children:n(a,`brain.dnd.title`)}),(0,Y.jsx)(`span`,{children:n(a,`brain.dnd.detail`)})]})}):null,(0,Y.jsx)(cr,{language:a,brainState:M,intensity:re,modelName:b,modelReady:x,messages:w.messages,pastConversations:h.pastConversations,historyBusyId:h.historyBusyId,starterPrompts:T,memoryFeedback:s,ingestionStates:C.ingestionStates,emergenceEvents:C.emergenceEvents,proactiveActivities:w.proactiveActivities,draft:w.draft,streaming:w.streaming,imageData:w.imageData,streamRef:w.streamRef,memories:g,graph:_,concepts:v,relationshipCount:Math.max(y.signals.relationshipCount,_.edges.length),readiness:y,proof:S.brainProof,brief:S.brainBrief,uploadingDocument:C.uploadingDocument,onOpenDepth:E,onDraftChange:w.setDraft,onImageDataChange:w.setImageData,onUploadDocument:e=>void C.uploadDocument(e),onPickFolder:()=>void C.pickFolder(),onConnectFolder:e=>void C.connectFolder(e),onIngestNote:e=>void C.ingestNote(e),onIngestWeb:e=>void C.ingestWeb(e),onVerifyModelContinuity:()=>void S.verifyModelContinuity(),onSend:()=>void w.send(),onSendText:e=>void w.sendText(e),onCreateActionItem:e=>void w.createActionItem(e),onProactiveAction:e=>void w.handleProactiveAction(e),onApprovalResolved:w.handleApprovalResolved,onStop:w.stopStreaming,onRegenerate:()=>void w.regenerate(),onNewConversation:j,onResumeConversation:e=>void h.resumeConversation(e,w.streaming),onDeleteConversation:e=>void h.deleteConversation(e),onExploreBrain:()=>E(5),onRequestDetails:S.requestDetails})]})}export{Pr as BrainHome};
@@ -1 +0,0 @@
1
- import{S as e,a as t,d as n,h as r,n as i,o as a,t as o,v as s,w as c,x as l}from"./utils-WgW4V69R.js";import{r as u,t as d}from"./useQuery-BizqBNGw.js";import{t as f}from"./useMutation-DqlFE-Bw.js";import{t as p}from"./circle-check-BFu9lD-3.js";import{t as m}from"./circle-pause-BGMiV8UU.js";import{d as ee,l as h,s as g}from"./index-CWKRRsLW.js";var te=s(`brain-circuit`,[[`path`,{d:`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,key:`l5xja`}],[`path`,{d:`M9 13a4.5 4.5 0 0 0 3-4`,key:`10igwf`}],[`path`,{d:`M6.003 5.125A3 3 0 0 0 6.401 6.5`,key:`105sqy`}],[`path`,{d:`M3.477 10.896a4 4 0 0 1 .585-.396`,key:`ql3yin`}],[`path`,{d:`M6 18a4 4 0 0 1-1.967-.516`,key:`2e4loj`}],[`path`,{d:`M12 13h4`,key:`1ku699`}],[`path`,{d:`M12 18h6a2 2 0 0 1 2 2v1`,key:`105ag5`}],[`path`,{d:`M12 8h8`,key:`1lhi5i`}],[`path`,{d:`M16 8V5a2 2 0 0 1 2-2`,key:`u6izg6`}],[`circle`,{cx:`16`,cy:`13`,r:`.5`,key:`ry7gng`}],[`circle`,{cx:`18`,cy:`3`,r:`.5`,key:`1aiba7`}],[`circle`,{cx:`20`,cy:`21`,r:`.5`,key:`yhc1fs`}],[`circle`,{cx:`20`,cy:`8`,r:`.5`,key:`1e43v0`}]]),_=s(`clock-3`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]]),v=s(`database-backup`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 12a9 3 0 0 0 5 2.69`,key:`1ui2ym`}],[`path`,{d:`M21 9.3V5`,key:`6k6cib`}],[`path`,{d:`M3 5v14a9 3 0 0 0 6.47 2.88`,key:`i62tjy`}],[`path`,{d:`M12 12v4h4`,key:`1bxaet`}],[`path`,{d:`M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16`,key:`1f4ei9`}]]),ne=s(`folder-sync`,[[`path`,{d:`M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5`,key:`1dkoa9`}],[`path`,{d:`M12 10v4h4`,key:`1czhmt`}],[`path`,{d:`m12 14 1.535-1.605a5 5 0 0 1 8 1.5`,key:`lvuxfi`}],[`path`,{d:`M22 22v-4h-4`,key:`1ewp4q`}],[`path`,{d:`m22 18-1.535 1.605a5 5 0 0 1-8-1.5`,key:`14ync0`}]]),y=c(e());function re(e){return o(e).flatMap(e=>{let t=V(e,[`id`,`conversation_id`]);return t?[{id:t,title:V(e,[`title`,`summary`,`last_message`],t).trim(),messageCount:Math.max(0,Math.round(G(e,[`message_count`,`messages`]))),updatedAt:U(e,[`updated_at`,`updatedAt`,`created_at`,`createdAt`])}]:[]}).sort((e,t)=>(t.updatedAt??0)-(e.updatedAt??0))}function ie(e){return o((B(e)?e:{}).messages).flatMap(e=>{let t=V(e,[`role`]),n=typeof e.content==`string`?e.content:``;return t!==`user`&&t!==`assistant`||!n.trim()?[]:[{role:t,content:n}]})}function ae(e,t,n){let i=V(e,[`id`]);if(i){let e=`brain.memoryTier.${i}`,n=r(t,e);if(n!==e)return n}return n}function oe(e,t,n=`ko`){let r=B(e)?e:{},i=(o(r.sources).length?o(r.sources):o(r.tiers)).map((e,t)=>({id:V(e,[`id`,`source`,`label`],`memory-${t}`),title:ae(e,n,V(e,[`title`,`label`,`source`,`path`,`name`],`Workspace memory`)),kind:H(e,[`type`,`source_type`,`kind`,`health`],`Memory`),tags:[],agentGenerated:!1})),a=o(r.recent_memories||r.recentMemories).map((e,t)=>{let n=B(e.metadata)?e.metadata:{},r=W(e,[`tags`]),i=V(e,[`content`,`summary`,`detail`]),a=V(n,[`source`]),o=r.includes(`agent-synthesis`)||a===`agent_runtime`||a===`agent_runtime_synthesis`;return{id:V(e,[`id`],`recent-memory-${t}`),title:i?i.replace(/\s+/g,` `).slice(0,96):H(e,[`kind`],`Memory`),kind:H(e,[`kind`],`Memory`),detail:i,tags:r,agentGenerated:o}}),s=o(t).map((e,t)=>({id:V(e,[`id`,`conversation_id`],`conversation-${t}`),title:V(e,[`title`,`summary`,`id`],`Conversation`),kind:`Conversation`,tags:[],agentGenerated:!1}));return R([...a,...i,...s]).slice(0,12)}function se(e){let t=B(e)?e:{},n=o(t.nodes),r=o(t.edges),a=n.flatMap(e=>{let t=V(e,[`id`,`node_id`,`title`,`label`]);if(!t)return[];let n=B(e.metadata)?e.metadata:{},r=H(e,[`type`,`kind`,`category`],`Concept`),a=V(e,[`title`,`label`,`name`],t.replace(/^[^:]+:/,``)),o=V(e,[`summary`,`description`,`snippet`])||V(n,[`summary`,`description`,`relative_path`,`filename`]),s=i(G(e,[`importance_norm`,`importance`,`score`])||.5,.08,1),c=U(e,[`created_at`,`createdAt`,`added_at`,`addedAt`,`timestamp`,`updated_at`,`updatedAt`])??U(n,[`created_at`,`createdAt`,`added_at`,`addedAt`,`timestamp`,`updated_at`,`updatedAt`]);return[{id:t,label:a,type:r,summary:o,importance:s,...c===void 0?{}:{createdAt:c}}]}).sort((e,t)=>t.importance-e.importance),s=new Set(a.map(e=>e.id));return{nodes:a,edges:r.flatMap((e,t)=>{let n=V(e,[`from`,`source`,`source_id`]),r=V(e,[`to`,`target`,`target_id`]);return!n||!r||!s.has(n)||!s.has(r)?[]:[{id:V(e,[`id`],`edge-${t}`),source:n,target:r,label:H(e,[`type`,`label`,`relationship`],`Relates`),weight:G(e,[`weight`,`score`,`confidence`])||1}]})}}function ce(e){let t=B(e)?e:{},n=[t,t.knowledge_graph,t.ingestion,t.result].filter(B),r=new Set,i=0,a,s;for(let e of n){let t=V(e,[`node_id`,`graph_node`,`graph_node_id`]);t&&r.add(t);for(let t of o(e.indexed_nodes))if(typeof t==`string`&&t.trim())r.add(t.trim());else if(B(t)){let e=V(t,[`node_id`,`graph_node_id`,`id`]);e&&r.add(e)}i=Math.max(i,G(e,[`chunk_count`,`chunks`,`indexed_count`])),typeof e.duplicate==`boolean`&&(a=e.duplicate),s||=V(e,[`provenance_id`])}let c;for(let e of n){let t=le(e);if(t){c=t;break}}return{nodeIds:Array.from(r),chunkCount:i,...a===void 0?{}:{duplicate:a},...s?{provenanceId:s}:{},...c?{extraction:c}:{}}}function le(e){let t=B(e)?e:{},n=B(t.extraction_quality)?t.extraction_quality:null;if(!n)return null;let r=V(n,[`level`]);if(r!==`high`&&r!==`medium`&&r!==`low`)return null;let i=W(t,[`warnings`]).length?W(t,[`warnings`]):W(n,[`warnings`]);return{score:G(n,[`score`]),level:r,reasons:W(n,[`reasons`]),warnings:i}}function ue(e){let t=B(e)?e:{},n=B(t.context_quality)?t.context_quality:null,r=!n&&B(t.trace)&&B(t.trace.context_quality)?t.trace.context_quality:null,i=n||r||(typeof t.mode==`string`&&typeof t.limited==`boolean`?t:null);if(!i)return null;let a=V(i,[`mode`]);if(!a)return null;let o=typeof i.reason==`string`&&i.reason.trim()?i.reason.trim():null;return{mode:a,nodes:Math.max(0,Math.round(G(i,[`nodes`]))),limited:K(i,[`limited`],!1),reason:o}}function de(e){let t=B(e)?e:{},n=(B(t.grounding)?t.grounding:null)||(typeof t.status==`string`&&`label`in t?t:null);if(!n)return null;let r=V(n,[`status`]);return[`supported`,`unsupported`,`no_context`].includes(r)?{status:r,reason:typeof n.reason==`string`&&n.reason.trim()?n.reason.trim():null}:null}function fe(e){if(!B(e))return null;let t=V(e,[`type`]);if(t&&t!==`hybrid_context`)return null;let n=Array.isArray(e.node_ids)||Array.isArray(e.nodeIds);return t!==`hybrid_context`&&!n?null:{nodeIds:W(e,[`node_ids`,`nodeIds`]),keywords:W(e,[`keywords`])}}function pe(e){if(!B(e))return null;let t=V(e,[`type`]);return t&&t!==`hybrid_done`||t!==`hybrid_done`&&!(`answer`in e)&&!(`kg_expansion`in e)&&!(`kgExpansion`in e)?null:{answer:typeof e.answer==`string`?e.answer:``,provider:V(e,[`provider`]),model:V(e,[`model`]),sentNodeIds:W(e,[`sent_node_ids`,`sentNodeIds`]),expansion:me(e.kg_expansion??e.kgExpansion)}}function me(e){if(!B(e))return null;let t=V(e,[`status`]),n=B(e.plan)?e.plan:{},r=B(n.provenance)?n.provenance:{},i=G(e,[`candidate_count`,`candidateCount`]),a=G(r,[`candidate_count`,`candidateCount`]),o=Array.isArray(n.new_nodes)?n.new_nodes.length:0,s=Math.max(0,Math.round(i||a||o)),c=t===`staged`||t===`queued_for_review`||!!e.review_item_id;return{status:t||`staged`,candidateCount:s,stagedForReview:c}}function he(e,t=0){return{provider:e.provider,model:e.model,sentNodeCount:e.sentNodeIds.length||t,expansion:e.expansion}}function b(e){if(!B(e))return null;let t=V(e,[`status`]);if(t!==`ok`&&t!==`pending`&&t!==`failed`)return null;let n=V(e,[`detail`]);return{status:t,...n?{detail:n}:{}}}function x(e){let t=!!e.generation?.repaired,n=new Map;for(let t of e.artifacts||[])t&&typeof t.path==`string`&&n.set(t.path,!!t.previewable);let r=new Map,i=null;if(Array.isArray(e.brain_ingest))for(let t of e.brain_ingest){let e=b(t);e&&B(t)&&typeof t.path==`string`&&r.set(t.path,e)}else i=b(e.brain_ingest);let a=e.created_files||[];return a.map(e=>{let o=r.get(e.path)||(a.length===1?i:null);return{path:e.path,filename:e.filename||e.path.split(`/`).pop()||e.path,bytes:e.bytes||0,repaired:t,...n.has(e.path)?{previewable:n.get(e.path)}:{},...o?{brainIngest:o}:{}}})}function S(e){if(!B(e))return null;let t=V(e,[`phase`]),n=V(e,[`event`]);if(!t||!n)return null;let r=Number(e.step);return{phase:t,event:n,...V(e,[`action`])?{action:V(e,[`action`])}:{},...V(e,[`path`])?{path:V(e,[`path`])}:{},...Number.isFinite(r)?{step:Math.round(r)}:{},...typeof e.ok==`boolean`?{ok:e.ok}:{},...V(e,[`decision`])?{decision:V(e,[`decision`])}:{},...V(e,[`verdict`])?{verdict:V(e,[`verdict`])}:{},...V(e,[`state`])?{state:V(e,[`state`])}:{},...V(e,[`detail`,`error`])?{detail:V(e,[`detail`,`error`])}:{}}}function C(e){return o(e).flatMap(e=>{if(!B(e))return[];let t=V(e,[`action`,`tool`]),n=V(e,[`state`]),r=V(e,[`error`]);if(!t&&!n&&!r)return[];let i=V(B(e.args)?e.args:{},[`path`,`target`,`file`]);return t?[{phase:`execute`,event:`tool`,action:t,...i?{path:i}:{},ok:!r,...r?{detail:r}:{}}]:r?[{phase:`execute`,event:`state`,...n?{state:n}:{},ok:!1,detail:r}]:[{phase:`terminal`,event:`state`,state:n}]})}function w(e){if(!B(e))return null;let t={};if(B(e.repairs))for(let[n,r]of Object.entries(e.repairs)){let e=Number(r);Number.isFinite(e)&&e>0&&(t[n]=Math.round(e))}let n=Math.max(0,Math.round(G(e,[`parse_errors`,`parseErrors`]))),r=Math.max(0,Math.round(G(e,[`parse_recovered`,`parseRecovered`]))),i=Object.values(t).reduce((e,t)=>e+t,0)+r;return i<1?null:{repairs:t,parseErrors:n,parseRecovered:r,total:i}}function T(e,t){if(!B(e))return null;let n=e=>{if(!B(e))return``;let n=e[t];return typeof n==`string`?n:``},r=n(e.headline),i=o(e.details).map(n).filter(Boolean),a=V(e,[`code`]);if(!r&&!i.length)return null;let s=B(e.model_strain)?V(e.model_strain,[`level`]):``,c=s===`light`||s===`moderate`||s===`heavy`?s:`none`,l=e.ok===!0;return l&&!i.length?null:{code:a,ok:l,headline:r,details:i,strainLevel:c}}function E(e){return o((B(e)?e:{}).pending).flatMap(e=>{let t=V(e,[`run_id`,`runId`]);return t?[{runId:t,goal:V(e,[`goal`]),expiresAt:V(e,[`expires_at`,`expiresAt`])}]:[]})}function D(e){let t=B(e)?e:{},n=o(t.watches).flatMap(e=>{if(!B(e))return[];let t=V(e,[`id`]),n=V(e,[`path`]);if(!t&&!n)return[];let r=B(e.last_result)?e.last_result:null,i=o(e.last_errors).flatMap(e=>{if(typeof e==`string`&&e.trim())return[{path:``,detail:e.trim()}];if(!B(e))return[];let t=V(e,[`detail`,`reason`,`error`]),n=V(e,[`path`,`source`,`file`]);return!t&&!n?[]:[{path:n,detail:t}]});return[{id:t||n,path:n,enabled:K(e,[`enabled`],!1),lastScanAt:V(e,[`last_scan_at`,`lastScanAt`]),lastResult:r?{status:V(r,[`status`]),ingested:Math.max(0,Math.round(G(r,[`ingested`]))),failed:Math.max(0,Math.round(G(r,[`failed`])))}:null,trackedFiles:Math.max(0,Math.round(G(e,[`tracked_files`,`trackedFiles`]))),lastErrors:i.slice(0,3)}]});return{enabledCount:Math.max(0,Math.round(G(t,[`enabled_count`,`enabledCount`]))),polling:K(t,[`polling`],!1),intervalSeconds:Math.max(0,Math.round(G(t,[`interval_seconds`,`intervalSeconds`]))),watches:n}}function O(e){let t=B(e)?e:{};return{status:V(t,[`status`],`unavailable`),pendingItems:Math.max(0,Math.round(G(t,[`pending_items`,`pendingItems`]))),totalItems:Math.max(0,Math.round(G(t,[`total_items`,`totalItems`]))),detail:V(t,[`detail`])}}function k(e){return typeof e==`string`?e.trim():B(e)?[V(e,[`source`,`path`,`file`]),V(e,[`detail`,`reason`,`error`])].filter(Boolean).join(` — `):``}function A(e){return o((B(e)?e:{}).jobs).flatMap(e=>{let t=V(e,[`job_id`,`jobId`,`id`]);if(!t)return[];let n=V(e,[`created_at`,`createdAt`]),r=V(e,[`updated_at`,`updatedAt`]);return[{jobId:t,status:V(e,[`status`],`queued`),total:Math.max(0,Math.round(G(e,[`total`]))),processed:Math.max(0,Math.round(G(e,[`processed`]))),failed:Math.max(0,Math.round(G(e,[`failed`]))),errors:o(e.errors).map(k).filter(Boolean).slice(0,10),...n?{createdAt:n}:{},...r?{updatedAt:r}:{}}]})}function j(e,t){for(let n of[`recommended`,`cloud`,`loaded`,`loaded_models`,`models`])for(let r of o(e[n])){if(V(r,[`id`,`model_id`,`name`])!==t)continue;let e=V(r,[`display_name`,`model_name`,`name`]);if(e&&e!==t)return e}return``}function M(e){let n=B(e)?e:{},r=V(n,[`current`,`current_model`,`local_model`]);if(r)return j(n,r)||t(r);let i=o(n.loaded||n.loaded_models).find(e=>e.id||e.name||e.model_id);if(!i)return`local mind`;let a=V(i,[`display_name`,`model_name`,`name`]),s=V(i,[`id`,`model_id`]);return a&&a!==s?a:s?j(n,s)||t(s):`local mind`}function N(e){let t=B(e)?e:{};return V(t,[`current`,`current_model`,`local_model`])?!0:o(t.loaded||t.loaded_models).some(e=>e.id||e.name||e.model_id)}function P(e,t,n){let r=B(e)?e:{},a=B(r.brain_readiness)?r.brain_readiness:{},o=V(a,[`state`]),s=G(a,[`depth`]),c=G(a,[`score`]);if((o===`quiet`||o===`forming`||o===`alive`)&&ve(s)){let e=B(a.signals)?a.signals:{};return{score:i(Math.round(c||0),0,100),state:o,depth:s,titleKey:V(a,[`title_key`,`titleKey`],`brain.readiness.${o}`),actionKey:V(a,[`action_key`,`actionKey`],_e(o)),source:`memory_service`,signals:{memoryCount:G(e,[`memory_count`,`memoryCount`]),conceptCount:G(e,[`concept_count`,`conceptCount`]),relationshipCount:G(e,[`relationship_count`,`relationshipCount`]),healthySources:G(e,[`healthy_sources`,`healthySources`])}}}return ge(t,n)}function F(e,t=``){let n=B(e)&&typeof e.ok==`boolean`&&`data`in e?e:null;if(n&&!n.ok)return I(t);let r=n?n.data:e,i=B(r)?r:{},a=B(i.model_continuity)?i.model_continuity:{},s=B(i.proofs)?i.proofs:{},c=B(i.recall)?i.recall:{},l=B(i.claims)?i.claims:{},u=G(s,[`durable_items`,`durableItems`]);return{status:V(i,[`status`],`quiet`),modelContinuity:{activeModel:V(a,[`active_model`,`activeModel`],t),brainOwner:V(a,[`brain_owner`,`brainOwner`],`lattice_brain`),capability:K(a,[`capability`],!0),survivesModelSwitch:K(a,[`survives_model_switch`,`survivesModelSwitch`],!1),proven:K(a,[`proven`],!1),contextStore:V(a,[`context_store`,`contextStore`],`workspace + conversation + graph + vector`)},proofs:{durableItems:u,hasDurableEvidence:K(s,[`has_durable_evidence`,`hasDurableEvidence`],u>0),workspaceMemories:G(s,[`workspace_memories`,`workspaceMemories`]),conversations:G(s,[`conversations`]),graphConcepts:G(s,[`graph_concepts`,`graphConcepts`]),vectorItems:G(s,[`vector_items`,`vectorItems`]),healthySources:G(s,[`healthy_sources`,`healthySources`])},recall:{query:V(c,[`query`]),count:G(c,[`count`]),items:o(c.items).map((e,t)=>({id:V(e,[`id`],`recall-${t}`),source:H(e,[`source`],`Memory`),title:V(e,[`title`],`Memory`),snippet:V(e,[`snippet`]),score:G(e,[`score`]),matchedTerms:W(e,[`matched_terms`,`matchedTerms`]),confidence:be(e,G(e,[`score`])),locator:V(e,[`locator`]),kind:V(e,[`kind`]),caption:V(e,[`caption`]),thumbnail:ye(e)}))},claims:{canRecallUserContext:K(l,[`can_recall_user_context`,`canRecallUserContext`],!1),keepsContextAcrossModels:K(l,[`keeps_context_across_models`,`keepsContextAcrossModels`],!1),isKnowledgeStore:K(l,[`is_knowledge_store`,`isKnowledgeStore`],!1)}}}function I(e){return{status:`unavailable`,modelContinuity:{activeModel:e,brainOwner:``,capability:!1,survivesModelSwitch:!1,proven:!1,contextStore:``},proofs:{durableItems:0,hasDurableEvidence:!1,workspaceMemories:0,conversations:0,graphConcepts:0,vectorItems:0,healthySources:0},recall:{query:``,count:0,items:[]},claims:{canRecallUserContext:!1,keepsContextAcrossModels:!1,isKnowledgeStore:!1}}}function L(e){let t=B(e)?e:{},n=B(t.focus)?t.focus:{},r=o(t.next_actions||t.nextActions),a=o(t.suggested_questions||t.suggestedQuestions),s=o(t.proactive_actions||t.proactiveActions),c=o(t.evidence),l=r.length?r:[{id:`add_source`,label_key:`brain.brief.action.add`,detail_key:`brain.brief.action.add.detail`,route:`/capture`,priority:10},{id:`ask_brain`,label_key:`brain.brief.action.ask`,detail_key:`brain.brief.action.ask.detail`,route:``,priority:9}],u=c.length?c:[{id:`durable`,label_key:`brain.brief.evidence.durable`,value:0,detail_key:`brain.brief.evidence.durable.detail`},{id:`graph`,label_key:`brain.brief.evidence.graph`,value:0,detail_key:`brain.brief.evidence.graph.detail`},{id:`sources`,label_key:`brain.brief.evidence.sources`,value:0,detail_key:`brain.brief.evidence.sources.detail`}];return{status:V(t,[`status`],`quiet`),score:i(Math.round(G(t,[`score`])),0,100),headlineKey:V(t,[`headline_key`,`headlineKey`],`brain.brief.headline.quiet`),bodyKey:V(t,[`body_key`,`bodyKey`],`brain.brief.body.quiet`),focus:{kind:V(n,[`kind`],`empty`),title:V(n,[`title`]),detail:V(n,[`detail`]),source:H(n,[`source`],`Memory`),score:G(n,[`score`]),empty:K(n,[`empty`],!V(n,[`title`]))},nextActions:l.map(e=>({id:V(e,[`id`],`ask_brain`),labelKey:V(e,[`label_key`,`labelKey`],`brain.brief.action.ask`),detailKey:V(e,[`detail_key`,`detailKey`],`brain.brief.action.ask.detail`),route:V(e,[`route`]),priority:G(e,[`priority`])})),suggestedQuestions:a.map(e=>({id:V(e,[`id`],`suggested-question`),labelKey:V(e,[`label_key`,`labelKey`],`brain.suggestion.focus.label`),detailKey:V(e,[`detail_key`,`detailKey`],`brain.suggestion.focus.detail`),promptKey:V(e,[`prompt_key`,`promptKey`],`brain.suggestion.focus.prompt`),params:z(e.params),priority:G(e,[`priority`])})).sort((e,t)=>t.priority-e.priority),proactiveActions:s.map(e=>({id:V(e,[`id`],`proactive-action`),intent:V(e,[`intent`],`ask`),labelKey:V(e,[`label_key`,`labelKey`],`brain.proactive.evidence.label`),detailKey:V(e,[`detail_key`,`detailKey`],`brain.proactive.evidence.detail`),prompt:V(e,[`prompt`]),route:V(e,[`route`]),priority:G(e,[`priority`]),context:z(e.context)})).sort((e,t)=>t.priority-e.priority),evidence:u.map(e=>({id:V(e,[`id`],`evidence`),labelKey:V(e,[`label_key`,`labelKey`],`brain.brief.evidence.durable`),value:G(e,[`value`]),detailKey:V(e,[`detail_key`,`detailKey`],`brain.brief.evidence.durable.detail`)})),generatedAt:V(t,[`generated_at`,`generatedAt`])}}function R(e){let t=new Set;return e.filter(e=>t.has(e.id)?!1:(t.add(e.id),!0))}function z(e){return B(e)?Object.entries(e).reduce((e,[t,n])=>((typeof n==`string`||typeof n==`number`)&&(e[t]=n),e),{}):{}}function ge(e,t){let n=Math.min(100,Math.round(e*12+t*10));return e<1?{score:Math.max(12,n),state:`quiet`,depth:2,titleKey:`brain.readiness.quiet`,actionKey:`brain.readiness.start`,source:`frontend_fallback`,signals:{memoryCount:e,conceptCount:t,relationshipCount:0,healthySources:0}}:t<3?{score:Math.max(38,n),state:`forming`,depth:3,titleKey:`brain.readiness.forming`,actionKey:`brain.readiness.grow`,source:`frontend_fallback`,signals:{memoryCount:e,conceptCount:t,relationshipCount:0,healthySources:0}}:{score:Math.max(72,n),state:`alive`,depth:5,titleKey:`brain.readiness.alive`,actionKey:`brain.readiness.map`,source:`frontend_fallback`,signals:{memoryCount:e,conceptCount:t,relationshipCount:0,healthySources:0}}}function _e(e){return e===`quiet`?`brain.readiness.start`:e===`forming`?`brain.readiness.grow`:`brain.readiness.map`}function ve(e){return e>=1&&e<=5&&Number.isInteger(e)}var B=a;function V(e,t,n=``){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim())return t;if(typeof t==`number`&&Number.isFinite(t))return String(t)}return n}function H(e,t,n=``){return V(e,t,n).replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function U(e,t){for(let n of t){let t=e[n];if(typeof t==`number`&&Number.isFinite(t))return t<0xe8d4a51000?t*1e3:t;if(typeof t==`string`&&t.trim()){let e=Number(t);if(Number.isFinite(e)&&/^\d+$/.test(t.trim()))return e<0xe8d4a51000?e*1e3:e;let n=Date.parse(t);if(Number.isFinite(n))return n}}}function W(e,t){for(let n of t){let t=e[n];if(Array.isArray(t))return t.filter(e=>typeof e==`string`&&e.trim().length>0)}return[]}function ye(e){let t=e.thumbnail;return typeof t==`string`&&t.startsWith(`data:image/`)?t:``}function be(e,t){let n=e.confidence;return n===`high`||n===`medium`||n===`low`?n:t>=.65?`high`:t>=.3?`medium`:`low`}function G(e,t){for(let n of t){let t=Number(e[n]);if(Number.isFinite(t))return t}return 0}function K(e,t,n){for(let n of t){let t=e[n];if(typeof t==`boolean`)return t}return n}var q=l();function J(){let e=d({queryKey:[`vectorFreshness`],queryFn:n.brainVectorFreshness,staleTime:6e4,refetchOnWindowFocus:!1,retry:!1});return y.useMemo(()=>e.data?.ok?O(e.data.data):null,[e.data])}function xe({language:e}){let t=u(),i=J(),a=f({mutationFn:()=>n.memoryRebuild(),onSuccess:async()=>{await t.invalidateQueries({queryKey:[`vectorFreshness`]})}});if(!i||i.status!==`stale_embedder`)return null;let o=a.isSuccess&&a.data&&!a.data.ok;return(0,q.jsxs)(`div`,{className:`brain-stale-embedder`,role:`status`,"data-testid":`stale-embedder-notice`,children:[(0,q.jsx)(h,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{children:r(e,`brain.freshness.staleEmbedder`)}),(0,q.jsx)(`small`,{children:r(e,`brain.freshness.staleEmbedder.detail`)}),o?(0,q.jsx)(`small`,{className:`is-error`,children:r(e,`brain.freshness.reindex.failed`)}):null]}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`stale-embedder-reindex`,disabled:a.isPending,onClick:()=>a.mutate(),children:r(e,a.isPending?`brain.freshness.reindex.running`:`brain.freshness.reindex`)})]})}function Se({language:e}){let t=J();return!t||t.status!==`pending`||t.pendingItems<1?null:(0,q.jsxs)(`p`,{className:`brain-freshness-chip`,role:`status`,"data-testid":`vector-freshness-chip`,children:[(0,q.jsx)(_,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,q.jsx)(`span`,{children:r(e,`brain.freshness.pending`,{count:t.pendingItems})})]})}var Y=new Set([`queued`,`running`]),X=new Set([`failed`,`partial`]);function Z(e){return Y.has(e.status)}function Ce(e){return e===`queued`||e===`running`||e===`completed`||e===`failed`||e===`partial`?`brain.jobs.status.${e}`:`brain.jobs.status.queued`}var we=new Set([`completed`,`partial`]),Q=3;function Te({language:e,job:t,freshness:n,onDismiss:i}){let a=n&&n.totalItems>0&&(n.status===`ready`||n.status===`pending`)?Math.max(0,Math.min(100,Math.round((n.totalItems-n.pendingItems)/n.totalItems*100))):null,o=t.errors.slice(0,Q);return(0,q.jsxs)(`div`,{className:`brain-jobs-report lattice-success-pulse is-${t.status}`,role:`status`,"data-testid":`ingestion-job-report`,children:[(0,q.jsxs)(`div`,{className:`brain-jobs-report-head`,children:[(0,q.jsx)(p,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,q.jsx)(`strong`,{children:r(e,t.status===`partial`?`brain.jobs.report.titlePartial`:`brain.jobs.report.title`)}),i?(0,q.jsx)(`button`,{type:`button`,className:`brain-jobs-report-dismiss`,"aria-label":r(e,`brain.jobs.report.dismiss`),onClick:i,children:(0,q.jsx)(g,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}):null]}),(0,q.jsxs)(`div`,{className:`brain-jobs-report-stats`,children:[t.processed>0?(0,q.jsx)(`span`,{className:`brain-jobs-report-stat`,children:r(e,`brain.jobs.report.documents`,{count:t.processed})}):null,t.failed>0?(0,q.jsx)(`span`,{className:`brain-jobs-report-stat is-failed`,children:r(e,`brain.jobs.failedCount`,{count:t.failed})}):null,a===null?null:(0,q.jsx)(`span`,{className:`brain-jobs-report-stat`,children:r(e,`brain.jobs.report.vector`,{percent:a})})]}),o.length?(0,q.jsxs)(`div`,{className:`brain-jobs-report-samples`,children:[(0,q.jsx)(`small`,{children:r(e,`brain.jobs.report.skipped`)}),(0,q.jsx)(`ul`,{children:o.map(e=>(0,q.jsx)(`li`,{children:e},e))})]}):null]})}function Ee({language:e}){let t=u(),i=J(),a=d({queryKey:[`ingestionJobs`],queryFn:n.ingestionJobs,refetchOnWindowFocus:!1,retry:!1,refetchInterval:e=>{let t=e.state.data;return t?.ok&&A(t.data).some(Z)?4e3:!1}}),o=f({mutationFn:e=>n.resumeIngestionJob(e),onSettled:()=>void t.invalidateQueries({queryKey:[`ingestionJobs`]})}),s=y.useMemo(()=>a.data?.ok?A(a.data.data):[],[a.data]),c=y.useRef(new Map),[l,p]=y.useState([]);y.useEffect(()=>{let e=c.current,t=[];for(let n of s){let r=e.get(n.jobId);r&&Y.has(r)&&we.has(n.status)&&t.push(n.jobId),e.set(n.jobId,n.status)}t.length&&p(e=>[...t,...e.filter(e=>!t.includes(e))].slice(0,2))},[s]);let m=l.map(e=>s.find(t=>t.jobId===e)).filter(e=>!!e),g=s.filter(e=>Z(e)||X.has(e.status)).slice(0,4);return!g.length&&!m.length?null:(0,q.jsxs)(`section`,{className:`brain-jobs-panel`,"aria-label":r(e,`brain.jobs.aria`),"data-testid":`ingestion-jobs-panel`,children:[m.map(t=>(0,q.jsx)(Te,{language:e,job:t,freshness:i,onDismiss:()=>p(e=>e.filter(e=>e!==t.jobId))},t.jobId)),g.length?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`header`,{className:`brain-jobs-head`,children:(0,q.jsx)(`strong`,{children:r(e,`brain.jobs.title`)})}),(0,q.jsx)(`ul`,{className:`brain-jobs-list`,children:g.map(t=>{let n=Math.max(t.total,t.processed,1),i=Math.min(100,Math.round(t.processed/n*100)),a=X.has(t.status),s=o.isPending&&o.variables===t.jobId;return(0,q.jsxs)(`li`,{className:`brain-jobs-item is-${t.status}`,children:[(0,q.jsxs)(`div`,{className:`brain-jobs-item-row`,children:[(0,q.jsx)(`span`,{className:`brain-jobs-status`,children:r(e,Ce(t.status))}),(0,q.jsx)(`span`,{className:`brain-jobs-counts`,children:r(e,`brain.jobs.progress`,{processed:t.processed,total:t.total})}),t.failed>0?(0,q.jsxs)(`span`,{className:`brain-jobs-failed`,children:[(0,q.jsx)(h,{className:`h-3 w-3`,"aria-hidden":`true`}),r(e,`brain.jobs.failedCount`,{count:t.failed})]}):null]}),(0,q.jsx)(`div`,{className:`brain-jobs-bar`,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":i,"aria-label":r(e,`brain.jobs.progressAria`,{processed:t.processed,total:t.total}),children:(0,q.jsx)(`span`,{className:`brain-jobs-bar-fill`,style:{width:`${i}%`}})}),a?(0,q.jsxs)(`button`,{type:`button`,className:`brain-jobs-resume`,disabled:o.isPending,onClick:()=>o.mutate(t.jobId),children:[(0,q.jsx)(ee,{className:`h-3 w-3`,"aria-hidden":`true`}),s?r(e,`brain.jobs.resuming`):r(e,`brain.jobs.resume`)]}):null]},t.jobId)})})]}):null]})}function $(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}function De(e,t){if(!t)return r(e,`brain.watch.scan.never`);let n=Date.parse(t);if(!Number.isFinite(n))return r(e,`brain.watch.scan.never`);let i=Math.max(0,Date.now()-n),a=Math.floor(i/6e4);if(a<1)return r(e,`brain.watch.scan.now`);if(a<60)return r(e,`brain.watch.scan.minutes`,{count:a});let o=Math.floor(a/60);return o<24?r(e,`brain.watch.scan.hours`,{count:o}):r(e,`brain.watch.scan.days`,{count:Math.floor(o/24)})}var Oe=4;function ke({language:e}){let t=d({queryKey:[`ingestionWatch`],queryFn:n.ingestionWatchStatus,staleTime:3e4,refetchOnWindowFocus:!1,retry:!1}),i=y.useMemo(()=>t.data?.ok?D(t.data.data):null,[t.data]);if(!i||i.enabledCount<1)return null;let a=i.watches.filter(e=>e.enabled).slice(0,Oe);return a.length?(0,q.jsxs)(`section`,{className:`brain-watch-card`,"aria-label":r(e,`brain.watch.aria`),"data-testid":`watch-health-card`,children:[(0,q.jsxs)(`header`,{className:`brain-watch-head`,children:[(0,q.jsx)(ne,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),(0,q.jsx)(`strong`,{children:r(e,`brain.watch.title`)})]}),i.polling?null:(0,q.jsxs)(`p`,{className:`brain-watch-note`,role:`note`,"data-testid":`watch-polling-note`,children:[(0,q.jsx)(m,{className:`h-3 w-3`,"aria-hidden":`true`}),r(e,`brain.watch.notLive`)]}),(0,q.jsx)(`ul`,{className:`brain-watch-list`,children:a.map(t=>(0,q.jsx)(Ae,{language:e,watch:t},t.id))})]}):null}function Ae({language:e,watch:t}){return(0,q.jsxs)(`li`,{className:`brain-watch-item`,children:[(0,q.jsxs)(`div`,{className:`brain-watch-item-row`,children:[(0,q.jsx)(`span`,{className:`brain-watch-path`,title:t.path,children:$(t.path)}),(0,q.jsx)(`small`,{className:`brain-watch-scan`,children:De(e,t.lastScanAt)})]}),(0,q.jsxs)(`div`,{className:`brain-watch-item-row`,children:[t.lastResult&&t.lastResult.ingested>0?(0,q.jsx)(`span`,{className:`brain-watch-stat`,children:r(e,`brain.watch.ingested`,{count:t.lastResult.ingested})}):null,t.lastResult&&t.lastResult.failed>0?(0,q.jsxs)(`span`,{className:`brain-watch-stat is-failed`,children:[(0,q.jsx)(h,{className:`h-3 w-3`,"aria-hidden":`true`}),r(e,`brain.jobs.failedCount`,{count:t.lastResult.failed})]}):null,t.trackedFiles>0?(0,q.jsx)(`small`,{className:`brain-watch-tracked`,children:r(e,`brain.watch.tracked`,{count:t.trackedFiles})}):null]}),t.lastErrors.length?(0,q.jsxs)(`div`,{className:`brain-watch-errors`,children:[(0,q.jsx)(`small`,{children:r(e,`brain.watch.errors`)}),(0,q.jsx)(`ul`,{children:t.lastErrors.slice(0,3).map((e,t)=>(0,q.jsx)(`li`,{children:[e.path?$(e.path):``,e.detail].filter(Boolean).join(` — `)},`${e.path}-${t}`))})]}):null]})}function je(e,t){if(!t)return``;let n=new Date(t);return Number.isNaN(n.getTime())?``:n.toLocaleTimeString(e===`ko`?`ko-KR`:`en-US`,{hour:`2-digit`,minute:`2-digit`})}function Me({language:e,knownRunIds:t}){let i=d({queryKey:[`agentApprovals`],queryFn:n.agentApprovals,staleTime:1/0,refetchOnWindowFocus:!1,retry:!1}),a=y.useMemo(()=>i.data?.ok?E(i.data.data):[],[i.data]),o=y.useMemo(()=>new Set(t),[t]),s=a.filter(e=>!o.has(e.runId));return s.length?(0,q.jsx)(`aside`,{className:`brain-pending-approvals`,role:`note`,"aria-label":r(e,`brain.approval.pendingNotice.aria`),"data-testid":`pending-approvals-notice`,children:s.slice(0,2).map(t=>{let n=je(e,t.expiresAt);return(0,q.jsxs)(`p`,{children:[(0,q.jsx)(`span`,{children:t.goal?r(e,`brain.approval.pendingNotice`,{goal:t.goal}):r(e,`brain.approval.pendingNotice.generic`)}),(0,q.jsx)(`small`,{children:n?r(e,`brain.approval.pendingNotice.expiry`,{time:n}):r(e,`brain.approval.pendingNotice.hint`)})]},t.runId)})}):null}export{pe as C,V as D,T as E,v as O,fe as S,w as T,S as _,ke as a,ie as b,F as c,oe as d,he as f,B as g,N as h,Se as i,te as k,P as l,ce as m,Me as n,x as o,M as p,xe as r,L as s,Ee as t,re as u,C as v,se as w,de as x,ue as y};
@@ -1 +0,0 @@
1
- import{S as e,d as t,h as n,i as r,o as i,t as a,v as o,w as s,x as c,y as l}from"./utils-WgW4V69R.js";import{r as u,t as d}from"./useQuery-BizqBNGw.js";import{t as f}from"./useMutation-DqlFE-Bw.js";import{_ as p,b as m,c as h,g,h as _,i as v,m as y,n as b,p as x,t as S,u as C,v as w,x as T,y as E}from"./primitives-DORg7Z_7.js";import{t as ee}from"./circle-check-BFu9lD-3.js";import{n as D,r as O,t as k}from"./hard-drive-Bu-DTJdB.js";import{t as A}from"./folder-open-Brd6Kvto.js";import{t as j}from"./share-2-BC5FirFv.js";import{d as M,i as N}from"./index-CWKRRsLW.js";import{t as P}from"./button-D6JcpYcf.js";import{t as F}from"./input-CEqsxtil.js";import"./workspace-DSek3jCY.js";var I=o(`clipboard-paste`,[[`path`,{d:`M11 14h10`,key:`1w8e9d`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v1.344`,key:`1e62lh`}],[`path`,{d:`m17 18 4-4-4-4`,key:`z2g111`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113`,key:`bjbb7m`}],[`rect`,{x:`8`,y:`2`,width:`8`,height:`4`,rx:`1`,key:`ublpy`}]]),L=o(`scan-line`,[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`path`,{d:`M7 12h10`,key:`b7w52i`}]]),R=o(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),z=s(e()),B=c();function V(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim())return t.trim()}return``}function H(e,t){let n=Number(e[t]);return Number.isFinite(n)&&n>0?Math.round(n):0}function U(e){let t=i(e)?e:{},n=i(t.vector_freshness_global)?t.vector_freshness_global:{};return{vectorStatus:V(n,[`status`])||`unavailable`,vectorPending:H(n,`pending_items`),folders:a(t.folders).flatMap(e=>{let t=i(e)?e:{},n=V(t,[`id`]);if(!n)return[];let r=i(t.files)?t.files:{},o=t.coverage;return[{id:n,label:V(t,[`label`,`root_path`])||n,status:V(t,[`status`]),watchActive:t.watch_active===!0,total:H(r,`total`),indexed:H(r,`indexed`),failed:H(r,`failed`),coverage:typeof o==`number`&&Number.isFinite(o)?o:null,errors:a(t.recent_errors).flatMap(e=>{let t=i(e)?e:{},n=V(t,[`detail`]);return n?[{path:V(t,[`path`]),detail:n}]:[]})}]})}}function W({language:e}){let r=d({queryKey:[`folderMemoryHealth`],queryFn:()=>t.localFolderHealth(),staleTime:3e4}),i=z.useMemo(()=>r.data?.ok?U(r.data.data):null,[r.data]);return!i||!i.folders.length?null:(0,B.jsxs)(`section`,{className:`folder-memory-health`,"data-testid":`folder-memory-health`,children:[(0,B.jsx)(`h3`,{children:n(e,`capture.folderHealth.title`)}),(0,B.jsx)(`ul`,{children:i.folders.map(t=>(0,B.jsxs)(`li`,{"data-testid":`folder-health-${t.id}`,children:[(0,B.jsxs)(`div`,{className:`folder-memory-head`,children:[(0,B.jsx)(`strong`,{children:t.label}),(0,B.jsx)(`span`,{className:`folder-memory-coverage`,children:t.coverage===null?n(e,`capture.folderHealth.unknown`):n(e,`capture.folderHealth.coverage`,{percent:Math.round(t.coverage*100),indexed:t.indexed,total:t.total})})]}),t.coverage===null?null:(0,B.jsx)(`div`,{className:`folder-memory-bar`,role:`progressbar`,"aria-valuenow":Math.round(t.coverage*100),"aria-valuemin":0,"aria-valuemax":100,children:(0,B.jsx)(`span`,{style:{width:`${Math.round(t.coverage*100)}%`}})}),t.watchActive?(0,B.jsx)(`small`,{children:n(e,`capture.folderHealth.watching`)}):null,t.failed>0?(0,B.jsxs)(`details`,{className:`folder-memory-errors`,children:[(0,B.jsx)(`summary`,{children:n(e,`capture.folderHealth.failed`,{count:t.failed})}),(0,B.jsx)(`ul`,{children:t.errors.map(e=>(0,B.jsxs)(`li`,{children:[(0,B.jsx)(`code`,{children:e.path}),(0,B.jsx)(`span`,{children:e.detail})]},`${t.id}-${e.path}-${e.detail}`))})]}):null]},t.id))}),i.vectorPending>0?(0,B.jsx)(`small`,{className:`folder-memory-vector`,children:n(e,`capture.folderHealth.vectorGlobal`,{count:i.vectorPending})}):null]})}var G=[{id:`files`,labelKey:`capture.method.files`,icon:R,path:`capture`},{id:`local`,labelKey:`capture.method.local`,icon:D,path:`my-computer`},{id:`browser`,labelKey:`capture.method.browser`,icon:O,path:`capture-browser`}];function K(e){return G.some(t=>t.id===e)?e:`files`}function q({initialTab:e}){let t=l(e=>e.language),[r,i]=z.useState(()=>K(e));z.useEffect(()=>{i(K(e))},[e]);let a=e=>{i(e),N(`/`+G.find(t=>t.id===e).path)};return(0,B.jsxs)(`div`,{className:`product-page capture-page space-y-5`,children:[(0,B.jsxs)(`header`,{className:`page-hero`,children:[(0,B.jsxs)(`div`,{className:`page-kicker`,children:[(0,B.jsx)(R,{className:`h-4 w-4`}),` `,n(t,`capture.kicker`)]}),(0,B.jsx)(`h1`,{className:`page-title`,children:n(t,`capture.title`)}),(0,B.jsx)(`p`,{className:`page-copy`,children:n(t,`capture.body`)})]}),(0,B.jsxs)(`section`,{className:`capture-station`,"aria-label":n(t,`capture.station.aria`),children:[(0,B.jsxs)(`div`,{className:`capture-station-head`,children:[(0,B.jsx)(`h2`,{children:n(t,`capture.station.title`)}),(0,B.jsx)(`p`,{children:n(t,`capture.station.detail`)})]}),(0,B.jsx)(`div`,{className:`capture-method-switch`,role:`group`,"aria-label":n(t,`capture.method.aria`),children:G.map(({id:e,labelKey:i,icon:o})=>(0,B.jsxs)(`button`,{type:`button`,"aria-pressed":r===e,className:r===e?`is-active`:``,"data-testid":`capture-method-${e}`,onClick:()=>a(e),children:[(0,B.jsx)(o,{className:`h-4 w-4`,"aria-hidden":`true`}),n(t,i)]},e))}),(0,B.jsxs)(`div`,{className:`capture-station-body`,children:[r===`files`?(0,B.jsx)(J,{}):null,r===`local`?(0,B.jsx)(ce,{}):null,r===`browser`?(0,B.jsx)(le,{}):null]})]}),(0,B.jsxs)(`div`,{className:`capture-secondary`,children:[(0,B.jsx)(de,{}),(0,B.jsx)(te,{})]})]})}function J(){let e=l(e=>e.language),t=u(),[r,i]=z.useState([]),a=f({mutationFn:e=>Y(e,i),onSuccess:()=>{t.invalidateQueries({queryKey:[`documents`]}),t.invalidateQueries({queryKey:[`graphStats`]}),t.invalidateQueries({queryKey:[`memoryManager`]})}}),o=z.useCallback(e=>{let t=Array.from(e);t.length&&a.mutate(t)},[a]);return(0,B.jsxs)(`div`,{className:`space-y-4`,children:[(0,B.jsxs)(`label`,{className:`capture-dropzone`,onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault(),o(e.dataTransfer.files)},children:[(0,B.jsx)(`div`,{className:`capture-dropzone-mark`,children:(0,B.jsx)(R,{className:`h-6 w-6`})}),(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`span`,{className:`text-lg font-semibold block`,children:n(e,`capture.files.drop`)}),(0,B.jsx)(`span`,{className:`max-w-md text-sm text-muted-foreground block`,children:n(e,`capture.files.dropDetail`)})]}),(0,B.jsx)(`input`,{type:`file`,multiple:!0,className:`sr-only`,onChange:e=>e.target.files&&o(e.target.files)})]}),(0,B.jsx)(X,{queue:r,onRetry:e=>o([e])})]})}function te(){let e=l(e=>e.language),r=l(e=>e.mode),i=d({queryKey:[`documents`],queryFn:()=>t.documents(200)}),o=d({queryKey:[`localSources`],queryFn:t.localSources}),s=d({queryKey:[`localAgent`],queryFn:t.localAgent});return(0,B.jsxs)(`div`,{className:`capture-secondary-column space-y-4`,children:[(0,B.jsx)(b,{title:n(e,`capture.files.uploaded`),result:i.data,children:t=>(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(v,{items:t.documents||t,titleKey:`filename`,metaKey:`ingest_state`,limit:12}),(0,B.jsx)(`div`,{className:`rounded-md border border-border bg-background/55 p-3 text-sm text-muted-foreground`,children:n(e,`capture.files.completed`)})]})}),(0,B.jsx)(W,{language:e}),(0,B.jsx)(b,{title:n(e,`capture.local.sources`),result:o.data,children:r=>(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(v,{items:r.sources,titleKey:`path`,metaKey:`status`}),a(r.sources).map(r=>(0,B.jsx)(S,{label:n(e,`capture.local.stop`,{source:String(r.path||r.id||n(e,`capture.local.source`))}),action:()=>t.localWatchStop(String(r.id||r.source_id)),invalidate:[`localSources`]},String(r.id||r.source_id||r.path)))]})}),r===`basic`?null:(0,B.jsx)(b,{title:n(e,`capture.local.access`),result:s.data,children:e=>(0,B.jsx)(C,{value:e})})]})}async function Y(e,n){let r=e.map(e=>({id:`${e.name}-${e.size}-${e.lastModified}-${Date.now()}`,file:e,name:ie(e),size:e.size,status:`queued`}));n(e=>[...r,...e].slice(0,12));let i=[];for(let e of r){n(t=>t.map(t=>t.id===e.id?{...t,status:`uploading`}:t));let r=await t.uploadDocument(e.file);i.push(r),n(t=>t.map(t=>t.id===e.id?{...t,status:r.ok?`done`:`failed`,result:r}:t))}return i}function X({queue:e,onRetry:t}){let r=l(e=>e.language);return e.length?(0,B.jsx)(`div`,{className:`mt-4 space-y-2`,children:e.map(e=>{let i=ne(e,r);return(0,B.jsxs)(`div`,{className:`rounded-md border border-border bg-background/55 p-3 text-sm`,children:[(0,B.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2 font-medium`,children:[e.status===`done`?(0,B.jsx)(ee,{className:`h-4 w-4 text-emerald-400`}):e.status===`failed`?(0,B.jsx)(T,{className:`h-4 w-4 text-amber-400`}):(0,B.jsx)(m,{className:`h-4 w-4 animate-spin text-primary`}),e.name]}),(0,B.jsxs)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:[Math.max(1,Math.round(e.size/1024)),` KB · `,i]})]}),e.status===`failed`?(0,B.jsxs)(P,{size:`sm`,variant:`outline`,onClick:()=>t(e.file),children:[(0,B.jsx)(M,{className:`h-3.5 w-3.5`}),` `,n(r,`capture.retry`)]}):null]}),e.result?(0,B.jsx)(h,{result:e.result,successLabel:n(r,`capture.files.success`)}):null]},e.id)})}):null}function ne(e,t){if(e.status===`queued`)return n(t,`capture.files.queued`);if(e.status===`uploading`)return n(t,`capture.files.uploading`);if(!e.result?.ok)return e.result?.error||n(t,`capture.files.failed`);let r=e.result.data||{},i=String(r.node_id||r.graph_node||r.provenance_id||``);return i?n(t,`capture.files.capturedWithNode`,{node:i}):n(t,`capture.files.captured`)}var re={webkitdirectory:``,directory:``};function ie(e){return e.webkitRelativePath||e.name}function ae(e){return(e[0]?.webkitRelativePath||``).split(`/`).filter(Boolean)[0]||``}function Z(){let e=window;return!!(e.__TAURI__?.core?.invoke||e.latticeDesktop?.selectFolder||e.__TAURI_INTERNALS__&&window.location.protocol===`tauri:`)}function oe(e){return e instanceof DOMException&&e.name===`AbortError`}async function se(e){let t=[];if(typeof e.values==`function`){for await(let n of e.values())t.push(n);return t}if(typeof e.entries==`function`)for await(let[,n]of e.entries())t.push(n);return t}async function Q(e){let t=[];for(let n of await se(e)){if(n.kind===`file`){t.push(await n.getFile());continue}t.push(...await Q(n))}return t}function ce(){let e=l(e=>e.language),r=u(),i=z.useRef(null),[a,o]=z.useState(``),[s,c]=z.useState(null),[d,p]=z.useState(``),[g,_]=z.useState(!1),[v,y]=z.useState([]),b=f({mutationFn:e=>t.connectFolder(e.trim()),onSuccess:()=>{c(null),r.invalidateQueries({queryKey:[`localSources`]}),r.invalidateQueries({queryKey:[`graphStats`]}),r.invalidateQueries({queryKey:[`memoryManager`]})}}),x=f({mutationFn:e=>Y(e,y),onSuccess:()=>{r.invalidateQueries({queryKey:[`documents`]}),r.invalidateQueries({queryKey:[`graphStats`]}),r.invalidateQueries({queryKey:[`memoryManager`]})}}),S=z.useCallback((t,r)=>{if(!t.length){c(n(e,`capture.local.emptyFolder`));return}c(null),p(r||ae(t)||n(e,`capture.local.browserFolder`)),x.mutate(t)},[x,e]),C=z.useCallback(async()=>{if(!g){_(!0),c(null);try{let r=window.showDirectoryPicker;if(!Z()&&typeof r==`function`){let e=await r.call(window);S(await Q(e),e.name);return}if(Z()){let e=await t.selectFolder();if(e){p(``),o(e),b.mutate(e);return}}if(typeof r==`function`){let e=await r.call(window);S(await Q(e),e.name);return}if(i.current){i.current.click();return}c(n(e,`capture.local.pickUnavailable`))}catch(t){oe(t)||c(n(e,`capture.local.pickUnavailable`))}finally{_(!1)}}},[S,g,b,e]),w=z.useCallback(()=>{let e=a.trim();e&&(c(null),p(``),b.mutate(e))},[b,a]),T=(x.data||[]).find(e=>!e.ok)?.error,E=!!(x.error||T);return(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsxs)(`div`,{className:`capture-intake-lead`,children:[(0,B.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`strong`,{children:n(e,`capture.local.title`)}),(0,B.jsx)(`p`,{children:n(e,`capture.local.description`)})]})]}),(0,B.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),w()},children:[(0,B.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,B.jsx)(F,{value:a,onChange:e=>o(e.target.value),placeholder:n(e,`capture.local.placeholder`)}),(0,B.jsxs)(P,{type:`button`,variant:`outline`,disabled:g||b.isPending||x.isPending,onClick:()=>void C(),children:[g?(0,B.jsx)(m,{className:`h-4 w-4 animate-spin`}):(0,B.jsx)(A,{className:`h-4 w-4`}),g?n(e,`capture.local.choosing`):n(e,`capture.local.choose`)]})]}),(0,B.jsx)(`input`,{ref:i,type:`file`,multiple:!0,className:`sr-only`,"aria-hidden":`true`,tabIndex:-1,...re,onChange:e=>{let t=Array.from(e.currentTarget.files||[]);e.currentTarget.value=``,S(t)}}),(0,B.jsxs)(P,{type:`submit`,disabled:!a.trim()||b.isPending,children:[b.isPending?(0,B.jsx)(m,{className:`h-4 w-4 animate-spin`}):(0,B.jsx)(L,{className:`h-4 w-4`}),n(e,`capture.local.connect`)]})]}),s?(0,B.jsx)(h,{result:{ok:!1,status:0,data:{},source:`unavailable`,error:s}}):null,b.data?(0,B.jsx)(h,{result:b.data,successLabel:n(e,`capture.local.success`)}):null,d?(0,B.jsx)(h,{result:{ok:x.isPending||!E,status:E?0:200,data:{folder:d},source:E?`unavailable`:`live`,error:x.error?n(e,`capture.local.browserImportFailed`):T},successLabel:x.isPending?n(e,`capture.local.browserImporting`):n(e,`capture.local.browserImportSuccess`,{folder:d})}):null,(0,B.jsx)(X,{queue:v,onRetry:e=>S([e],d)})]})}function le(){let e=l(e=>e.language),r=u(),[i,a]=z.useState(``),o=f({mutationFn:e=>t.browserReadUrl(e),onSuccess:()=>{r.invalidateQueries({queryKey:[`graphStats`]}),r.invalidateQueries({queryKey:[`memoryManager`]})}}),s=z.useCallback(()=>{let e=$(i);e&&(a(e),o.mutate(e))},[o,i]),c=z.useCallback(async()=>{let e=$(await navigator.clipboard?.readText().catch(()=>``)||``);e&&(a(e),o.mutate(e))},[o]);return(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsxs)(`div`,{className:`capture-intake-lead`,children:[(0,B.jsx)(O,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`strong`,{children:n(e,`capture.browser.title`)}),(0,B.jsx)(`p`,{children:n(e,`capture.browser.description`)})]})]}),(0,B.jsxs)(`form`,{className:`flex flex-col gap-2 sm:flex-row`,onSubmit:e=>{e.preventDefault(),s()},children:[(0,B.jsx)(F,{value:i,onChange:e=>a(e.target.value),placeholder:n(e,`capture.browser.placeholder`),inputMode:`url`}),(0,B.jsxs)(P,{type:`button`,variant:`outline`,disabled:o.isPending,onClick:()=>void c(),children:[(0,B.jsx)(I,{className:`h-4 w-4`}),` `,n(e,`capture.browser.paste`)]}),(0,B.jsxs)(P,{type:`submit`,disabled:!i.trim()||o.isPending,children:[o.isPending?(0,B.jsx)(m,{className:`h-4 w-4 animate-spin`}):(0,B.jsx)(L,{className:`h-4 w-4`}),n(e,`capture.browser.capture`)]})]}),o.data?(0,B.jsx)(h,{result:o.data,successLabel:n(e,`capture.browser.success`)}):null]})}function $(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:/^[\w.-]+\.[a-z]{2,}([/:?#].*)?$/i.test(t)?`https://${t}`:t:``}function ue(e,t,n){let r=i(e)?e:{},a=i(t)?t:{},o=i(n)?n:{};i(a.pipelines)&&a.pipelines;let s=(...e)=>{for(let t of e){if(typeof t==`number`&&Number.isFinite(t)&&t>=0)return Math.round(t);let e=Number(t);if(Number.isFinite(e)&&e>0)return Math.round(e)}},c=s(r.received),l=s(r.extracted),u=s(r.connected),d=s(l,a.total,a.total_items,o.nodes,o.total_nodes)||0,f=s(u,o.edges,o.total_edges)||0,p=s(a.pending,a.pending_items)||0,m=(e,t)=>{let n=r.stages||{};for(let t of e){let e=n[t],r=typeof e==`object`&&e?e.status:e;if(r===`done`||r===`working`||r===`waiting`||r===`error`)return r}return t},h=c===void 0?p?`working`:d?`done`:`waiting`:c>0?`done`:`waiting`,g=l===void 0?d?`done`:`waiting`:l>0?`done`:`waiting`,_=u===void 0?f?`done`:`waiting`:u>0?`done`:`waiting`,v=m([`read`,`received`],h),y=m([`understand`,`extracted`],g),b=m([`connect`,`connected`],_);return{remembered:d,connections:f,waiting:p,received:c??p,extracted:l??d,connected:u??f,steps:[{key:`read`,state:v,count:c??(d||p)},{key:`understand`,state:y,count:l??d},{key:`connect`,state:b,count:u??f}]}}function de(){let e=l(e=>e.language),i=l(e=>e.mode),a=d({queryKey:[`index`],queryFn:t.indexStatus}),o=d({queryKey:[`graphStats`],queryFn:t.graphStats}),s=d({queryKey:[`pipelineStatus`],queryFn:t.pipelineStatus}),c=ue(s.data?.data||s.data,a.data?.data,o.data?.data),u={read:L,understand:E,connect:j},f=!!(c.remembered||c.connections||c.received&&c.received>0);return(0,B.jsxs)(`div`,{className:`capture-secondary-column space-y-4`,children:[(0,B.jsxs)(x,{children:[(0,B.jsxs)(g,{children:[(0,B.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,B.jsx)(L,{className:`h-4 w-4`}),` `,n(e,`capture.pipeline.journey.title`)]}),(0,B.jsx)(_,{children:n(e,`capture.pipeline.journey.detail`)})]}),(0,B.jsxs)(y,{className:`space-y-4`,children:[(0,B.jsx)(`ol`,{className:`capture-journey flex flex-col md:flex-row gap-3 items-stretch`,"aria-label":n(e,`capture.pipeline.journey.aria`),children:c.steps.map(({key:t,state:r,count:i})=>{let a=u[t];return(0,B.jsxs)(`li`,{className:`capture-journey-step is-${r} flex-1 p-3 rounded-lg border border-border/60 bg-muted/20 flex flex-col justify-between`,children:[(0,B.jsxs)(`div`,{className:`capture-journey-step-header flex items-center gap-2`,children:[(0,B.jsx)(`span`,{className:`capture-journey-mark`,"aria-hidden":`true`,children:(0,B.jsx)(a,{className:`h-4 w-4`})}),(0,B.jsxs)(`div`,{className:`capture-journey-copy min-w-0 flex-1`,children:[(0,B.jsx)(`strong`,{className:`block text-sm`,children:n(e,`capture.pipeline.step.${t}`)}),(0,B.jsx)(`small`,{className:`block text-xs text-muted-foreground`,children:n(e,`capture.pipeline.step.${t}.detail`)})]})]}),(0,B.jsxs)(`div`,{className:`capture-journey-step-meta flex items-center justify-between gap-2 mt-3 pt-2 border-t border-border/40 text-xs`,children:[(0,B.jsx)(w,{variant:`muted`,className:`capture-journey-count`,children:n(e,`ui.value.records`,{count:i})}),(0,B.jsx)(`span`,{className:`capture-journey-state`,children:n(e,`capture.pipeline.step.${r}`)})]})]},t)})}),f?(0,B.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-sm pt-2`,children:[(0,B.jsx)(w,{variant:`success`,children:n(e,`capture.pipeline.count.remembered`,{count:r(c.extracted)})}),(0,B.jsx)(w,{variant:`muted`,children:n(e,`capture.pipeline.count.connections`,{count:r(c.connected)})}),(0,B.jsx)(w,{variant:c.waiting?`warning`:`muted`,children:c.waiting?n(e,`capture.pipeline.count.waiting`,{count:r(c.waiting)}):n(e,`capture.pipeline.count.none`)})]}):(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(e,`capture.pipeline.empty`)})]})]}),(0,B.jsxs)(x,{children:[(0,B.jsxs)(g,{children:[(0,B.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,B.jsx)(k,{className:`h-4 w-4`}),` `,n(e,`capture.pipeline.refresh`)]}),(0,B.jsx)(_,{children:n(e,`capture.pipeline.description`)})]}),(0,B.jsx)(y,{children:(0,B.jsx)(S,{label:n(e,`capture.pipeline.rebuild`),action:()=>t.rebuildIndex(),invalidate:[`index`]})})]}),i===`basic`?null:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(b,{title:n(e,`capture.pipeline.status`),result:a.data,children:e=>(0,B.jsx)(C,{value:e})}),(0,B.jsx)(b,{title:n(e,`capture.pipeline.growth`),result:o.data,children:e=>(0,B.jsx)(C,{value:e})})]})]})}export{q as CapturePage};
@@ -1 +0,0 @@
1
- import{S as e,_ as t,d as n,h as r,i,v as a,w as o,x as s,y as c}from"./utils-WgW4V69R.js";import{t as l}from"./useQuery-BizqBNGw.js";import{c as u,o as d,r as f,y as p}from"./primitives-DORg7Z_7.js";import{t as m}from"./link-2-DZ4OA5tJ.js";import{d as h,f as g,i as _}from"./index-CWKRRsLW.js";var v=a(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),y=a(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),b=o(e());t({ko:{"chronicle.kicker":`기억의 연대기`,"chronicle.title":`두뇌가 자라온 시간`,"chronicle.copy":`언제 무엇이 들어왔고 무엇이 달라졌는지, 날짜로 되짚어 봅니다.`,"chronicle.loading":`연대기를 불러오는 중입니다.`,"chronicle.empty.title":`오늘부터 기록이 쌓입니다`,"chronicle.empty.detail":`자료를 넣거나 대화를 나누면, 그날부터 이 자리에 하루하루가 남습니다.`,"chronicle.lane.sources":`자료`,"chronicle.lane.entities":`개념`,"chronicle.lane.connections":`연결`,"chronicle.lane.conversations":`대화`,"chronicle.growth.title":`쌓인 기억`,"chronicle.growth.hint":`손잡이를 좌우로 옮기면 그 시점으로 돌아갑니다. 방향키로도 하루씩 움직일 수 있어요.`,"chronicle.growth.aria":`시점 고르기`,"chronicle.growth.valueText":`{date} · 자료 {sources} · 개념 {entities} · 연결 {connections} · 대화 {conversations}`,"chronicle.growth.first":`처음`,"chronicle.growth.latest":`지금`,"chronicle.heatmap.title":`활동 달력`,"chronicle.heatmap.hint":`진한 칸일수록 그날 많이 쌓였다는 뜻이에요. 칸을 누르면 그날 이야기가 아래에 열립니다.`,"chronicle.heatmap.aria":`날짜별 활동`,"chronicle.heatmap.cell":`{date}, {count}가지`,"chronicle.heatmap.cellEmpty":`{date}, 쌓인 것 없음`,"chronicle.heatmap.less":`적음`,"chronicle.heatmap.more":`많음`,"chronicle.weekday.sun":`일`,"chronicle.weekday.mon":`월`,"chronicle.weekday.tue":`화`,"chronicle.weekday.wed":`수`,"chronicle.weekday.thu":`목`,"chronicle.weekday.fri":`금`,"chronicle.weekday.sat":`토`,"chronicle.day.title":`그날의 이야기`,"chronicle.day.loading":`그날 이야기를 불러오는 중입니다.`,"chronicle.day.quiet":`이 날은 조용했습니다. 남은 기록이 없어요.`,"chronicle.group.sources":`자료`,"chronicle.group.entities":`새로 생긴 개념`,"chronicle.group.conversations":`나눈 대화`,"chronicle.group.changes":`달라진 사실`,"chronicle.group.count":`{count}개`,"chronicle.group.empty":`이 날은 없어요.`,"chronicle.group.more":`이 밖에 {count}개가 더 있어요.`,"chronicle.open.source":`기억에서 찾아보기`,"chronicle.open.entity":`지도에서 보기`,"chronicle.open.conversation":`대화로 가기`,"chronicle.open.change":`지도에서 보기`,"chronicle.sourceType.upload":`올린 파일`,"chronicle.sourceType.note":`메모`,"chronicle.sourceType.web_url":`웹 페이지`,"chronicle.sourceType.conversation":`대화`,"chronicle.sourceType.local_file":`내 컴퓨터 파일`,"chronicle.sourceType.image":`그림`,"chronicle.sourceType.other":`자료`,"chronicle.entityType.other":`개념`,"chronicle.conversation.untitled":`제목 없는 대화`,"chronicle.conversation.messages":`{count}번 주고받음`,"chronicle.change.fact_superseded":`새 내용으로 바뀐 사실`,"chronicle.change.fact_retired":`더 이상 사실이 아닌 것`,"chronicle.change.connection_superseded":`다시 이어진 관계`,"chronicle.change.connection_ended":`끊어진 관계`,"chronicle.change.other":`달라진 것`,"chronicle.rewind.title":`그때의 두뇌`,"chronicle.rewind.subtitle":`{date}에 두뇌가 알고 있던 것`,"chronicle.rewind.loading":`그때 모습을 불러오는 중입니다.`,"chronicle.rewind.entities":`기억 조각`,"chronicle.rewind.connections":`이어진 관계`,"chronicle.rewind.note":`여기 두 숫자는 그때 저장돼 있던 모든 것을 셉니다. 위 곡선의 ‘개념’과는 세는 방식이 달라요.`,"chronicle.rewind.top":`그때 중요했던 개념`,"chronicle.rewind.topEmpty":`그때는 아직 눈에 띄는 개념이 없었어요.`,"chronicle.rewind.reset":`지금으로 돌아오기`},en:{"chronicle.kicker":`Brain Chronicle`,"chronicle.title":`How your Brain grew`,"chronicle.copy":`Walk back through what arrived, and what changed, one day at a time.`,"chronicle.loading":`Loading the chronicle.`,"chronicle.empty.title":`The record starts today`,"chronicle.empty.detail":`Add something or have a conversation, and that day will show up right here.`,"chronicle.lane.sources":`Sources`,"chronicle.lane.entities":`Ideas`,"chronicle.lane.connections":`Links`,"chronicle.lane.conversations":`Chats`,"chronicle.growth.title":`What has piled up`,"chronicle.growth.hint":`Drag the handle to travel back to that moment. Arrow keys move a day at a time.`,"chronicle.growth.aria":`Pick a moment`,"chronicle.growth.valueText":`{date} · {sources} sources · {entities} ideas · {connections} links · {conversations} chats`,"chronicle.growth.first":`First`,"chronicle.growth.latest":`Now`,"chronicle.heatmap.title":`Activity calendar`,"chronicle.heatmap.hint":`A darker square means more arrived that day. Pick one and its story opens below.`,"chronicle.heatmap.aria":`Activity by day`,"chronicle.heatmap.cell":`{date}, {count} things`,"chronicle.heatmap.cellEmpty":`{date}, nothing arrived`,"chronicle.heatmap.less":`Less`,"chronicle.heatmap.more":`More`,"chronicle.weekday.sun":`Sun`,"chronicle.weekday.mon":`Mon`,"chronicle.weekday.tue":`Tue`,"chronicle.weekday.wed":`Wed`,"chronicle.weekday.thu":`Thu`,"chronicle.weekday.fri":`Fri`,"chronicle.weekday.sat":`Sat`,"chronicle.day.title":`That day's story`,"chronicle.day.loading":`Loading that day.`,"chronicle.day.quiet":`A quiet day — nothing was recorded.`,"chronicle.group.sources":`Sources`,"chronicle.group.entities":`New ideas`,"chronicle.group.conversations":`Conversations`,"chronicle.group.changes":`What changed`,"chronicle.group.count":`{count}`,"chronicle.group.empty":`Nothing this day.`,"chronicle.group.more":`And {count} more.`,"chronicle.open.source":`Find it in memory`,"chronicle.open.entity":`See it on the map`,"chronicle.open.conversation":`Go to conversations`,"chronicle.open.change":`See it on the map`,"chronicle.sourceType.upload":`Uploaded file`,"chronicle.sourceType.note":`Note`,"chronicle.sourceType.web_url":`Web page`,"chronicle.sourceType.conversation":`Conversation`,"chronicle.sourceType.local_file":`File on this computer`,"chronicle.sourceType.image":`Picture`,"chronicle.sourceType.other":`Source`,"chronicle.entityType.other":`Idea`,"chronicle.conversation.untitled":`Untitled conversation`,"chronicle.conversation.messages":`{count} messages`,"chronicle.change.fact_superseded":`Replaced by newer wording`,"chronicle.change.fact_retired":`No longer true`,"chronicle.change.connection_superseded":`Relinked a different way`,"chronicle.change.connection_ended":`Link ended`,"chronicle.change.other":`Changed`,"chronicle.rewind.title":`Your Brain back then`,"chronicle.rewind.subtitle":`What it knew on {date}`,"chronicle.rewind.loading":`Loading how it looked then.`,"chronicle.rewind.entities":`Pieces of memory`,"chronicle.rewind.connections":`Links between them`,"chronicle.rewind.note":`These two count everything stored at that moment. That is a different measure from the “ideas” line in the curve above.`,"chronicle.rewind.top":`What mattered most then`,"chronicle.rewind.topEmpty":`Nothing stood out yet at that point.`,"chronicle.rewind.reset":`Back to now`}});var x=s(),S=[`chronicle.weekday.sun`,`chronicle.weekday.mon`,`chronicle.weekday.tue`,`chronicle.weekday.wed`,`chronicle.weekday.thu`,`chronicle.weekday.fri`,`chronicle.weekday.sat`];function ee({weeks:e,selectedDate:t,onSelect:n,language:a}){return(0,x.jsxs)(`section`,{className:`chronicle-panel chronicle-heatmap`,"data-testid":`chronicle-heatmap`,children:[(0,x.jsxs)(`header`,{className:`chronicle-panel-head`,children:[(0,x.jsx)(`h2`,{className:`chronicle-panel-title`,children:r(a,`chronicle.heatmap.title`)}),(0,x.jsx)(`p`,{className:`chronicle-panel-hint`,children:r(a,`chronicle.heatmap.hint`)})]}),(0,x.jsxs)(`div`,{className:`chronicle-heatmap-scroll`,children:[(0,x.jsx)(`div`,{className:`chronicle-heatmap-weekdays`,"aria-hidden":`true`,children:S.map(e=>(0,x.jsx)(`span`,{children:r(a,e)},e))}),(0,x.jsx)(`div`,{className:`chronicle-heatmap-grid`,role:`group`,"aria-label":r(a,`chronicle.heatmap.aria`),children:e.map(e=>(0,x.jsx)(`div`,{className:`chronicle-heatmap-week`,children:e.cells.map((o,s)=>o?(0,x.jsx)(`button`,{type:`button`,className:`chronicle-heatmap-cell`,"data-level":o.level,"data-testid":`chronicle-heatmap-cell`,"aria-pressed":o.date===t,"aria-label":r(a,o.daily>0?`chronicle.heatmap.cell`:`chronicle.heatmap.cellEmpty`,{date:o.date,count:i(o.daily)}),onClick:()=>n(o.date)},o.date):(0,x.jsx)(`span`,{className:`chronicle-heatmap-cell is-blank`,"aria-hidden":`true`},`${e.key}-${s}`))},e.key))})]}),(0,x.jsxs)(`p`,{className:`chronicle-heatmap-legend`,children:[(0,x.jsx)(`span`,{children:r(a,`chronicle.heatmap.less`)}),(0,x.jsx)(`span`,{className:`chronicle-heatmap-swatches`,"aria-hidden":`true`,children:[0,1,2,3,4].map(e=>(0,x.jsx)(`span`,{className:`chronicle-heatmap-cell`,"data-level":e},e))}),(0,x.jsx)(`span`,{children:r(a,`chronicle.heatmap.more`)})]})]})}var C=864e5,w=/^(\d{4})-(\d{2})-(\d{2})$/;function T(e){let t=w.exec(e);if(!t)return null;let n=Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3]));return E(n)===e?n:null}function E(e){return new Date(e).toISOString().slice(0,10)}function D(e){let t=T(e);return t===null?0:new Date(t).getUTCDay()}function O(e){let t=new Map;for(let n of e){let e=T(n.date);e!==null&&t.set(E(e),n)}let n=[...t.keys()].sort();if(!n.length)return[];let r=T(n[0]),i=T(n[n.length-1]),a=[],o=0,s=0,c=0,l=0;for(let e=r;e<=i;e+=C){let n=E(e),r=t.get(n),i=r?k(r.sources)+k(r.entities)+k(r.connections)+k(r.conversations):0;r&&(o+=k(r.sources),s+=k(r.entities),c+=k(r.connections),l+=k(r.conversations)),a.push({date:n,sources:o,entities:s,connections:c,conversations:l,total:o+s+c+l,daily:i})}return a}function k(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function A(e,t){if(e<=0)return 0;if(t<=0)return 1;let n=e/t;return n>.66?4:n>.33?3:n>.12?2:1}function j(e){if(!e.length)return[];let t=e.reduce((e,t)=>Math.max(e,t.daily),0),n=T(e[0].date),r=T(e[e.length-1].date),i=n-D(e[0].date)*C,a=r+(6-D(e[e.length-1].date))*C,o=new Map(e.map(e=>[e.date,e.daily])),s=[];for(let e=i;e<=a;e+=7*C){let n=[];for(let r=0;r<7;r+=1){let i=E(e+r*C),a=o.get(i);n.push(a===void 0?null:{date:i,daily:a,level:A(a,t)})}s.push({key:E(e),cells:n})}return s}function M(e,t,n){if(!e.length)return{area:``,line:``};let r=e[e.length-1].total,i=Math.max(e.length-1,1),a=e.map((e,a)=>({x:a/i*t,y:n-(r>0?e.total/r*n:0)})),o=[`M ${N(a[0].x)} ${N(a[0].y)}`];for(let e=1;e<a.length;e+=1)o.push(`L ${N(a[e].x)} ${N(a[e-1].y)}`),o.push(`L ${N(a[e].x)} ${N(a[e].y)}`);let s=o.join(` `);return{area:`${s} ${`L ${N(a[a.length-1].x)} ${n} L ${N(a[0].x)} ${n} Z`}`,line:s}}function N(e){return Math.round(e*100)/100}function P(e){return`${e}T23:59:59`}var F=8,I=`/hybrid-search`,L=`/knowledge-graph`,R=`/brain`;function z({day:e,loading:t,language:n}){let i=(0,x.jsxs)(`header`,{className:`chronicle-panel-head`,children:[(0,x.jsx)(`h2`,{className:`chronicle-panel-title`,children:r(n,`chronicle.day.title`)}),(0,x.jsx)(`p`,{className:`chronicle-panel-hint`,"data-testid":`chronicle-day-date`,children:e?e.date:``})]});return t||!e?(0,x.jsxs)(`section`,{className:`chronicle-panel chronicle-day`,"data-testid":`chronicle-day`,children:[i,(0,x.jsx)(`p`,{className:`chronicle-note`,role:`status`,children:r(n,`chronicle.day.loading`)})]}):(0,x.jsxs)(`section`,{className:`chronicle-panel chronicle-day`,"data-testid":`chronicle-day`,children:[i,e.counts.sources+e.counts.entities+e.counts.conversations+e.counts.changes===0?(0,x.jsx)(`p`,{className:`chronicle-note`,"data-testid":`chronicle-day-quiet`,children:r(n,`chronicle.day.quiet`)}):(0,x.jsxs)(`div`,{className:`chronicle-day-groups`,children:[(0,x.jsx)(B,{titleKey:`chronicle.group.sources`,icon:(0,x.jsx)(v,{"aria-hidden":`true`}),count:e.counts.sources,items:V(e,n),language:n}),(0,x.jsx)(B,{titleKey:`chronicle.group.entities`,icon:(0,x.jsx)(p,{"aria-hidden":`true`}),count:e.counts.entities,items:H(e,n),language:n}),(0,x.jsx)(B,{titleKey:`chronicle.group.conversations`,icon:(0,x.jsx)(y,{"aria-hidden":`true`}),count:e.counts.conversations,items:U(e,n),language:n}),(0,x.jsx)(B,{titleKey:`chronicle.group.changes`,icon:(0,x.jsx)(m,{"aria-hidden":`true`}),count:e.counts.changes,items:W(e,n),language:n})]})]})}function B({titleKey:e,icon:t,count:n,items:a,language:o}){let s=a.slice(0,F),c=Math.max(n-s.length,0);return(0,x.jsxs)(`article`,{className:`chronicle-group`,"data-testid":`chronicle-group`,children:[(0,x.jsxs)(`h3`,{className:`chronicle-group-title`,children:[(0,x.jsx)(`span`,{className:`chronicle-group-icon`,children:t}),r(o,e),(0,x.jsx)(`span`,{className:`chronicle-group-count`,children:r(o,`chronicle.group.count`,{count:i(n)})})]}),s.length===0?(0,x.jsx)(`p`,{className:`chronicle-group-empty`,children:r(o,`chronicle.group.empty`)}):(0,x.jsx)(`ul`,{className:`chronicle-group-list`,children:s.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`button`,{type:`button`,className:`chronicle-item`,"aria-label":`${e.title} — ${e.openLabel}`,onClick:()=>_(e.target),children:[(0,x.jsx)(`span`,{className:`chronicle-item-title`,children:e.title}),(0,x.jsx)(`span`,{className:`chronicle-item-meta`,children:e.meta})]})},e.key))}),c>0?(0,x.jsx)(`p`,{className:`chronicle-group-more`,children:r(o,`chronicle.group.more`,{count:i(c)})}):null]})}function V(e,t){let n=r(t,`chronicle.open.source`);return e.groups.sources.map(e=>({key:e.id,title:e.title,meta:K(e.source_type,t),target:I,openLabel:n}))}function H(e,t){let n=r(t,`chronicle.open.entity`);return e.groups.entities.map(e=>({key:e.id,title:e.label,meta:q(e.type,t),target:L,openLabel:n}))}function U(e,t){let n=r(t,`chronicle.open.conversation`);return e.groups.conversations.map((e,a)=>({key:e.conversation_id||`loose-${a}`,title:e.preview||r(t,`chronicle.conversation.untitled`),meta:r(t,`chronicle.conversation.messages`,{count:i(e.messages)}),target:R,openLabel:n}))}function W(e,t){let n=r(t,`chronicle.open.change`);return e.groups.changes.map((e,r)=>({key:`${e.node_id}-${r}`,title:e.label,meta:Y(e.kind,t),target:L,openLabel:n}))}var G={upload:`chronicle.sourceType.upload`,note:`chronicle.sourceType.note`,web_url:`chronicle.sourceType.web_url`,conversation:`chronicle.sourceType.conversation`,local_file:`chronicle.sourceType.local_file`,image:`chronicle.sourceType.image`};function K(e,t){return r(t,G[e]||`chronicle.sourceType.other`)}function q(e,t){let n=`ui.entity.${e}`,i=r(t,n);return i===n?r(t,`chronicle.entityType.other`):i}var J={fact_superseded:`chronicle.change.fact_superseded`,fact_retired:`chronicle.change.fact_retired`,connection_superseded:`chronicle.change.connection_superseded`,connection_ended:`chronicle.change.connection_ended`};function Y(e,t){return r(t,J[e]||`chronicle.change.other`)}var X=1e3,Z=220,Q=7;function te({timeline:e,index:t,onIndexChange:n,language:a}){let[o,s]=b.useState(null),c=Math.max(e.length-1,0),l=e[t],u=b.useMemo(()=>M(e,X,Z),[e]),d=c>0?t/c*100:100,f=b.useCallback((e,t)=>{let r=t.getBoundingClientRect();if(r.width<=0)return;let i=(e-r.left)/r.width;n(Math.round(Math.min(Math.max(i,0),1)*c))},[c,n]);b.useEffect(()=>{if(!o)return;let e=e=>f(e.clientX,o),t=()=>s(null);return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),window.addEventListener(`pointercancel`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t),window.removeEventListener(`pointercancel`,t)}},[o,f]);let p=e=>{let r=ne(e.key,t,c);r!==null&&(e.preventDefault(),n(r))},m=l?r(a,`chronicle.growth.valueText`,{date:l.date,sources:i(l.sources),entities:i(l.entities),connections:i(l.connections),conversations:i(l.conversations)}):r(a,`chronicle.growth.aria`);return(0,x.jsxs)(`section`,{className:`chronicle-panel chronicle-growth`,"data-testid":`chronicle-growth`,children:[(0,x.jsxs)(`header`,{className:`chronicle-panel-head`,children:[(0,x.jsx)(`h2`,{className:`chronicle-panel-title`,children:r(a,`chronicle.growth.title`)}),(0,x.jsx)(`p`,{className:`chronicle-panel-hint`,children:r(a,`chronicle.growth.hint`)})]}),(0,x.jsxs)(`div`,{className:`chronicle-growth-plot`,children:[(0,x.jsxs)(`svg`,{className:`chronicle-growth-chart`,viewBox:`0 0 ${X} ${Z}`,preserveAspectRatio:`none`,"aria-hidden":`true`,children:[(0,x.jsx)(`path`,{className:`chronicle-growth-area`,d:u.area}),(0,x.jsx)(`path`,{className:`chronicle-growth-line`,d:u.line,vectorEffect:`non-scaling-stroke`})]}),(0,x.jsxs)(`div`,{className:`chronicle-growth-track${o?` is-dragging`:``}`,"data-testid":`chronicle-scrubber`,role:`slider`,tabIndex:0,"aria-label":r(a,`chronicle.growth.aria`),"aria-valuemin":0,"aria-valuemax":c,"aria-valuenow":t,"aria-valuetext":m,onKeyDown:p,onPointerDown:e=>{s(e.currentTarget),f(e.clientX,e.currentTarget)},children:[(0,x.jsx)(`span`,{className:`chronicle-growth-marker`,style:{left:`${d}%`},"aria-hidden":`true`}),(0,x.jsx)(`span`,{className:`chronicle-growth-handle`,style:{left:`${d}%`},"aria-hidden":`true`})]})]}),(0,x.jsxs)(`div`,{className:`chronicle-growth-axis`,children:[(0,x.jsx)(`span`,{children:r(a,`chronicle.growth.first`)}),(0,x.jsx)(`strong`,{"data-testid":`chronicle-scrubber-date`,children:l?l.date:r(a,`chronicle.growth.latest`)}),(0,x.jsx)(`span`,{children:r(a,`chronicle.growth.latest`)})]}),(0,x.jsxs)(`dl`,{className:`chronicle-lane-row`,children:[(0,x.jsx)($,{labelKey:`chronicle.lane.sources`,value:l?.sources,language:a}),(0,x.jsx)($,{labelKey:`chronicle.lane.entities`,value:l?.entities,language:a}),(0,x.jsx)($,{labelKey:`chronicle.lane.connections`,value:l?.connections,language:a}),(0,x.jsx)($,{labelKey:`chronicle.lane.conversations`,value:l?.conversations,language:a})]})]})}function $({labelKey:e,value:t,language:n}){return(0,x.jsxs)(`div`,{className:`chronicle-lane`,children:[(0,x.jsx)(`dt`,{children:r(n,e)}),(0,x.jsx)(`dd`,{children:i(t)})]})}function ne(e,t,n){let r={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1,PageDown:-7,PageUp:Q};if(e===`Home`)return 0;if(e===`End`)return n;let i=r[e];return i===void 0?null:Math.min(Math.max(t+i,0),n)}function re({asOf:e,date:t,loading:n,onReset:a,language:o}){return(0,x.jsxs)(`section`,{className:`chronicle-panel chronicle-rewind`,"data-testid":`chronicle-rewind`,children:[(0,x.jsxs)(`header`,{className:`chronicle-panel-head`,children:[(0,x.jsx)(`h2`,{className:`chronicle-panel-title`,children:r(o,`chronicle.rewind.title`)}),(0,x.jsx)(`p`,{className:`chronicle-panel-hint`,children:r(o,`chronicle.rewind.subtitle`,{date:t})}),(0,x.jsxs)(`button`,{type:`button`,className:`chronicle-reset`,onClick:a,children:[(0,x.jsx)(h,{"aria-hidden":`true`}),r(o,`chronicle.rewind.reset`)]})]}),n||!e?(0,x.jsx)(`p`,{className:`chronicle-note`,role:`status`,children:r(o,`chronicle.rewind.loading`)}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`dl`,{className:`chronicle-lane-row chronicle-rewind-stats`,children:[(0,x.jsxs)(`div`,{className:`chronicle-lane`,children:[(0,x.jsx)(`dt`,{children:r(o,`chronicle.rewind.entities`)}),(0,x.jsx)(`dd`,{"data-testid":`chronicle-rewind-entities`,children:i(e.stats.entities)})]}),(0,x.jsxs)(`div`,{className:`chronicle-lane`,children:[(0,x.jsx)(`dt`,{children:r(o,`chronicle.rewind.connections`)}),(0,x.jsx)(`dd`,{children:i(e.stats.connections)})]})]}),(0,x.jsx)(`p`,{className:`chronicle-note chronicle-rewind-note`,children:r(o,`chronicle.rewind.note`)}),(0,x.jsx)(`h3`,{className:`chronicle-group-title`,children:r(o,`chronicle.rewind.top`)}),e.top_entities.length===0?(0,x.jsx)(`p`,{className:`chronicle-group-empty`,children:r(o,`chronicle.rewind.topEmpty`)}):(0,x.jsx)(`ul`,{className:`chronicle-group-list chronicle-rewind-list`,children:e.top_entities.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`button`,{type:`button`,className:`chronicle-item`,"aria-label":`${e.label} — ${r(o,`chronicle.open.entity`)}`,onClick:()=>_(`/knowledge-graph`),children:[(0,x.jsx)(`span`,{className:`chronicle-item-title`,children:e.label}),(0,x.jsx)(`span`,{className:`chronicle-item-meta`,children:q(e.type,o)})]})},e.id))})]})]})}function ie(){let e=c(e=>e.language),t=l({queryKey:[`chronicleOverview`],queryFn:n.chronicleOverview}),i=t.data,a=i?.data,o=b.useMemo(()=>O(a?.series??[]),[a]),s=b.useMemo(()=>j(o),[o]),[p,m]=b.useState(null),h=Math.max(o.length-1,0),_=p===null?-1:o.findIndex(e=>e.date===p),v=_>=0?_:h,y=o[v],S=y?y.date:``,C=!!y&&v<h,w=l({queryKey:[`chronicleDay`,S],queryFn:()=>n.chronicleDay(S),enabled:S!==``}),T=l({queryKey:[`chronicleAsOf`,S],queryFn:()=>n.chronicleAsOf(P(S)),enabled:C});return(0,x.jsxs)(`div`,{className:`product-page chronicle-page`,"data-testid":`page-chronicle`,children:[(0,x.jsxs)(`header`,{className:`page-hero`,children:[(0,x.jsxs)(`div`,{className:`page-kicker`,children:[(0,x.jsx)(g,{className:`h-4 w-4`}),` `,r(e,`chronicle.kicker`)]}),(0,x.jsx)(`h1`,{className:`page-title`,children:r(e,`chronicle.title`)}),(0,x.jsx)(`p`,{className:`page-copy`,children:r(e,`chronicle.copy`)})]}),t.isLoading?(0,x.jsx)(d,{title:r(e,`chronicle.loading`)}):i&&!i.ok?(0,x.jsx)(u,{result:i}):o.length===0?(0,x.jsx)(f,{title:r(e,`chronicle.empty.title`),detail:r(e,`chronicle.empty.detail`)}):(0,x.jsxs)(`div`,{className:`chronicle-stack`,children:[(0,x.jsx)(te,{timeline:o,index:v,onIndexChange:e=>m(o[e].date),language:e}),(0,x.jsx)(ee,{weeks:s,selectedDate:S,onSelect:m,language:e}),C?(0,x.jsx)(re,{asOf:T.data?.data??null,date:S,loading:T.isPending,onReset:()=>m(null),language:e}):null,(0,x.jsx)(z,{day:w.data?.data??null,loading:w.isPending,language:e})]})]})}export{ie as ChroniclePage};
@@ -1 +0,0 @@
1
- import{S as e,d as t,h as n,t as r,v as i,w as a,x as o}from"./utils-WgW4V69R.js";import{t as s}from"./useQuery-BizqBNGw.js";import{t as c}from"./bot-Bc3Q27YR.js";import{t as l}from"./search-0NQ21wXe.js";import{n as u,t as d}from"./useFocusTrap-HRemcWId.js";import{h as f,i as p,o as m,p as h}from"./index-CWKRRsLW.js";var g=i(`command`,[[`path`,{d:`M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3`,key:`11bfej`}]]),_=i(`corner-down-left`,[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]),v=i(`message-circle`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}]]),y=a(e()),b=o(),x=m.map(e=>{let t=e.icon;return{...e,icon:(0,b.jsx)(t,{className:`h-4 w-4`})}});function S(e,t){let[n,r]=y.useState(e);return y.useEffect(()=>{let n=window.setTimeout(()=>r(e),t);return()=>window.clearTimeout(n)},[e,t]),n}function C({language:e,initialOpen:i=!1}){let[a,o]=y.useState(i),[m,C]=y.useState(``),[w,T]=y.useState(0),E=y.useRef(null),D=S(m.trim(),220);y.useEffect(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),o(e=>!e))},t=()=>o(!0);return window.addEventListener(`keydown`,e),window.addEventListener(`lattice:open-command`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`lattice:open-command`,t)}},[]),y.useEffect(()=>{a&&(C(``),T(0),window.setTimeout(()=>E.current?.focus(),0))},[a]);let O=s({queryKey:[`commandSearch`,D],queryFn:()=>t.commandSearch(D),enabled:a&&D.length>0}),k=s({queryKey:[`commandBriefing`],queryFn:t.commandBriefing,enabled:a,staleTime:6e4}),A=y.useMemo(()=>{let t=m.trim().toLowerCase(),i=[];if(!t&&k.data?.ok){let t=(k.data.data||{}).sections||{},r=t.review||{},a=t.suggestions||{},o=Number(a.count??0)||0,s=Number(r.pending??0)||0;i.push({id:`proactive-briefing`,group:`proactive`,title:n(e,`command.proactive.briefing`),detail:o>0?n(e,`command.proactive.suggestions`,{count:o}):void 0,icon:(0,b.jsx)(u,{className:`h-4 w-4`}),target:`/brain`,action:`open-briefing`}),i.push({id:`proactive-review`,group:`proactive`,title:n(e,`command.proactive.review`),detail:s>0?n(e,`command.proactive.pending`,{count:s}):void 0,icon:(0,b.jsx)(h,{className:`h-4 w-4`}),target:`/act/review`}),i.push({id:`proactive-ask`,group:`proactive`,title:n(e,`briefing.action.askBrain`),icon:(0,b.jsx)(v,{className:`h-4 w-4`}),target:`/brain`})}let a=x.map(t=>({id:t.id,group:`pages`,title:n(e,t.labelKey),icon:t.icon,target:t.target})).filter(e=>!t||e.title.toLowerCase().includes(t)),o=r(O.data?.data?.groups),s=[];for(let t of o)for(let i of r(t.items))t.kind===`knowledge`?s.push({id:`kg-${String(i.id??s.length)}`,group:`knowledge`,title:String(i.title||i.id||``),detail:String(i.summary||i.type||``),icon:(0,b.jsx)(f,{className:`h-4 w-4`}),target:`/brain/graph`}):t.kind===`conversation`?s.push({id:`conv-${String(i.conversation_id??s.length)}`,group:`conversation`,title:String(i.snippet||``),detail:String(i.timestamp||``).slice(0,10),icon:(0,b.jsx)(v,{className:`h-4 w-4`}),target:`/brain`}):t.kind===`automation`&&s.push({id:`wf-${String(i.id??s.length)}`,group:`automation`,title:String(i.name||``),detail:i.enabled?n(e,`command.automation.enabled`):n(e,`command.automation.draft`),icon:(0,b.jsx)(c,{className:`h-4 w-4`}),target:`/act/workflows`});return[...i,...s,...a]},[e,m,O.data,k.data]);y.useEffect(()=>{T(0)},[A.length,D]);let j=y.useCallback(()=>o(!1),[]),M=d(j,a),N=y.useCallback(e=>{e&&(j(),p(e.target),e.action===`open-briefing`&&window.dispatchEvent(new Event(`lattice:open-briefing`)))},[j]),P=e=>{e.key===`Escape`?(e.preventDefault(),j()):e.key===`ArrowDown`?(e.preventDefault(),T(e=>Math.min(e+1,Math.max(A.length-1,0)))):e.key===`ArrowUp`?(e.preventDefault(),T(e=>Math.max(e-1,0))):e.key===`Enter`&&(e.preventDefault(),N(A[w]))};if(!a)return null;let F={proactive:n(e,`command.proactive.title`),pages:n(e,`command.group.pages`),knowledge:n(e,`command.group.knowledge`),conversation:n(e,`command.group.conversation`),automation:n(e,`command.group.automation`)},I=null;return(0,b.jsx)(`div`,{className:`command-palette-backdrop`,role:`presentation`,onMouseDown:e=>{e.target===e.currentTarget&&j()},children:(0,b.jsxs)(`div`,{ref:M,className:`command-palette`,role:`dialog`,"aria-modal":`true`,"aria-label":n(e,`command.title`),"data-testid":`command-palette`,children:[(0,b.jsxs)(`div`,{className:`command-palette-input`,children:[(0,b.jsx)(l,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,b.jsx)(`input`,{ref:E,value:m,onChange:e=>C(e.target.value),onKeyDown:P,placeholder:n(e,`command.placeholder`),"aria-label":n(e,`command.title`),autoComplete:`off`,spellCheck:!1}),(0,b.jsxs)(`span`,{className:`command-palette-hint`,"aria-hidden":`true`,children:[(0,b.jsx)(g,{className:`h-3 w-3`}),n(e,`command.shortcutKey`)]})]}),(0,b.jsxs)(`div`,{className:`command-palette-results`,role:`listbox`,"aria-label":n(e,`command.results`),children:[O.isFetching?(0,b.jsx)(`p`,{className:`command-palette-note`,children:n(e,`command.searching`)}):null,A.length===0&&!O.isFetching?(0,b.jsx)(`p`,{className:`command-palette-note`,children:n(e,`command.empty`)}):null,A.map((e,t)=>{let n=e.group===I?null:(0,b.jsx)(`p`,{className:`command-palette-group`,children:F[e.group]},`h-${e.group}`);return I=e.group,(0,b.jsxs)(y.Fragment,{children:[n,(0,b.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t===w,className:`command-palette-item ${t===w?`is-active`:``}`,onMouseEnter:()=>T(t),onClick:()=>N(e),children:[e.icon,(0,b.jsx)(`span`,{className:`command-palette-item-title`,children:e.title}),e.detail?(0,b.jsx)(`span`,{className:`command-palette-item-detail`,children:e.detail}):null,t===w?(0,b.jsx)(_,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}):null]})]},e.id)})]}),(0,b.jsx)(`p`,{className:`command-palette-footer`,children:n(e,`command.footer`)})]})})}export{C as CommandPalette};
@@ -1 +0,0 @@
1
- import{S as e,a as t,d as n,h as r,t as i,v as a,w as o,x as s,y as c}from"./utils-WgW4V69R.js";import{r as l,t as u}from"./useQuery-BizqBNGw.js";import{t as d}from"./useMutation-DqlFE-Bw.js";import{_ as f,b as p,c as m,d as h,f 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,t as T,u as E,v as D}from"./primitives-DORg7Z_7.js";import{t as O}from"./circle-check-BFu9lD-3.js";import{t as k}from"./circle-play-DoanLHnd.js";import{t as A}from"./cpu-DwzNf82m.js";import{t as j}from"./download-Ddw49yCV.js";import{t as M}from"./shield-alert-DUbR2W2s.js";import{i as N}from"./index-CWKRRsLW.js";import{t as P}from"./button-D6JcpYcf.js";import{t as F}from"./input-CEqsxtil.js";import"./workspace-DSek3jCY.js";var I=a(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),L=a(`package-plus`,[[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`path`,{d:`M16 17h6`,key:`1ook5g`}],[`path`,{d:`M19 14v6`,key:`1ckrd5`}],[`path`,{d:`M21 10.535V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l1.675-.955`,key:`28k6lz`}],[`path`,{d:`M3.29 7 12 12l8.71-5`,key:`19ckod`}],[`path`,{d:`m7.5 4.27 8.997 5.148`,key:`9yrvtv`}]]),R=a(`plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`,key:`1xoxul`}],[`path`,{d:`M9 8V2`,key:`14iosj`}]]),z=o(e()),B=s();function V(e,t){let n=String(e||``).toLowerCase();return n===`production`?r(t,`library.embedding.state.production`):n===`fallback`||n===`hash`||n===`local`?r(t,`library.embedding.state.fallback`):r(t,`library.embedding.state.unknown`)}function H(e,t){let n=String(e?.os||``).toLowerCase(),i=String(e?.arch||``).toLowerCase();return n?n===`darwin`&&i.startsWith(`arm`)?r(t,`library.runtime.appleSilicon`):n===`darwin`?`Mac`:n===`win32`||n.startsWith(`win`)?`Windows`:n===`linux`?`Linux`:r(t,`library.runtime.thisComputer`):r(t,`library.value.detected`)}function ee(e){return/[ㄱ-힝]/u.test(e)?!1:e.trim().split(/\s+/).length>=6}var te=new Set([`loaded`,`ready`,`download_required`,`unavailable`,`unsupported`]),U=[{id:`models`,labelKey:`library.tab.models`},{id:`skills`,labelKey:`library.tab.skills`},{id:`mcp`,labelKey:`library.tab.mcp`},{id:`marketplace`,labelKey:`library.tab.marketplace`}];function W({initialTab:e}){let t=c(e=>e.mode),n=c(e=>e.language),[i,a]=z.useState(e||`models`);z.useEffect(()=>{U.some(t=>t.id===e)&&a(e)},[e]);let o=(t===`basic`?U.filter(e=>e.id===`models`):U).map(e=>({id:e.id,label:r(n,e.labelKey)})),s=e=>{a(e),N(`/`+e)};return(0,B.jsxs)(`div`,{className:`product-page library-page space-y-5`,children:[(0,B.jsxs)(`header`,{className:`page-hero`,children:[(0,B.jsxs)(`div`,{className:`page-kicker`,children:[(0,B.jsx)(I,{className:`h-4 w-4`}),` `,r(n,`library.kicker`)]}),(0,B.jsx)(`h1`,{className:`page-title`,children:r(n,`library.title`)}),(0,B.jsx)(`p`,{className:`page-copy`,children:r(n,`library.body`)})]}),(0,B.jsx)(G,{}),(0,B.jsx)(h,{tabs:o,value:i,onChange:e=>s(e)}),i===`models`?(0,B.jsx)(K,{}):null,i===`skills`?(0,B.jsx)(J,{}):null,i===`mcp`?(0,B.jsx)(Y,{}):null,i===`marketplace`?(0,B.jsx)(X,{}):null]})}function G(){let e=l(),a=c(e=>e.language),o=u({queryKey:[`models`],queryFn:n.models}),[s,d]=z.useState(null),[f,m]=z.useState(null),h=o.data?.data||{},g=i(h.loaded),_=String(h.current||g[0]||``),v=[...i(h.catalog),...i(h.recommended),...i(h.models)],y=e=>String(e.id||e.model_id||``),b=_?v.find(e=>y(e)===_):void 0,x=String(b?.name||``)||(_?t(_):``),S=v.filter(e=>{let t=y(e);return!t||t===_||g.includes(t)||e.download_required||q(e.runtime_compatibility).supported===!1||e.load_status===`unsupported`?!1:!!e.load_available||e.load_status===`ready`}).slice(0,3);async function C(t){let i=y(t);d(i),m(null);let o=String(t.recommended_engine||t.engine||``)||void 0,s=await n.loadModel(String(t.recommended_load_id||i),o,!1);d(null),s.ok||m(s.error||r(a,`library.active.switchFailed`)),await e.invalidateQueries({queryKey:[`models`]})}let w=!!(o.data&&!o.data.ok);return(0,B.jsxs)(`section`,{className:`library-active`,"aria-label":r(a,`library.active.title`),"data-testid":`library-active-model`,children:[(0,B.jsxs)(`div`,{className:`library-active-main`,children:[(0,B.jsx)(`span`,{className:`library-active-mark`,"aria-hidden":`true`,children:x&&!w?(0,B.jsx)(k,{className:`h-5 w-5`}):(0,B.jsx)(A,{className:`h-5 w-5`})}),(0,B.jsxs)(`div`,{className:`library-active-copy`,children:[(0,B.jsx)(`span`,{className:`library-active-kicker`,children:r(a,`library.active.title`)}),w?(0,B.jsx)(`strong`,{children:r(a,`library.active.unknown`)}):x?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`strong`,{children:x}),(0,B.jsx)(`small`,{children:r(a,`library.active.ready`)})]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`strong`,{children:r(a,`library.active.none`)}),(0,B.jsx)(`small`,{children:r(a,`library.active.noneHint`)})]})]}),x&&!w?(0,B.jsx)(D,{variant:`success`,children:r(a,`library.model.loaded`)}):null]}),S.length&&!w?(0,B.jsxs)(`div`,{className:`library-active-switch`,children:[(0,B.jsxs)(`span`,{className:`library-active-switch-label`,children:[r(a,`library.active.switchTitle`),(0,B.jsx)(`small`,{children:r(a,`library.active.switchHint`)})]}),(0,B.jsx)(`div`,{className:`library-active-switch-options`,children:S.map(e=>{let n=y(e),i=String(e.name||``)||t(n);return(0,B.jsxs)(`button`,{type:`button`,disabled:!!s,"data-testid":`library-switch-${n}`,onClick:()=>void C(e),children:[s===n?(0,B.jsx)(p,{className:`h-3.5 w-3.5 animate-spin`,"aria-hidden":`true`}):(0,B.jsx)(O,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),s===n?r(a,`library.active.switching`):i]},n)})})]}):null,f?(0,B.jsx)(`p`,{className:`library-active-error`,role:`status`,children:f}):null]})}function K(){let e=l(),t=c(e=>e.mode),a=c(e=>e.language),o=u({queryKey:[`models`],queryFn:n.models}),s=u({queryKey:[`modelRecommendations`,`local_mlx`],queryFn:()=>n.modelRecommendations(`local_mlx`)}),d=u({queryKey:[`embeddings`],queryFn:n.embeddingsStatus}),[f,p]=z.useState(!1),[m,h]=z.useState(null),[_,v]=z.useState([]),[b,x]=z.useState(null),[C,N]=z.useState(null),[F,I]=z.useState(!1),R=z.useRef(!1),H=i(o.data?.data?.loaded),U=String(o.data?.data?.current||``),W=e=>{let t=String(e.id||e.model_id||``);return t&&(H.includes(t)||t===U)?0:e.load_available||e.load_status===`ready`?1:e.pulled?2:3},G=[...i(o.data?.data?.catalog),...i(o.data?.data?.recommended)].map((e,t)=>({model:e,index:t})).sort((e,t)=>W(e.model)-W(t.model)||e.index-t.index).map(e=>e.model),K=i(s.data?.data?.recommendations?.models),J=new Map(K.map(e=>[String(e.id),e])),Y=G.find(e=>{let t=String(e.id||``);return!!t&&(H.includes(t)||t===U)}),X=s.data?.data?.recommendations?.top_pick||null,Z=_[_.length-1]||null,Q=z.useCallback((e,n=`library.model.notReady`)=>{let i=String(e);if(a===`ko`&&ee(i))return r(a,n);if(t!==`basic`)return i;let o=i.replace(/gemma4_unified/gi,r(a,`library.model.localFormat`)).replace(/mlx[-_ ]?vlm|mlx[-_ ]?lm|local_mlx|\bmlx\b|\bgguf\b|\bollama\b|hugging face/gi,r(a,`library.model.localSupport`)).replace(/runtime/gi,r(a,`library.model.support`)).replace(/model_type/gi,r(a,`library.model.format`));return a===`en`?o.replace(/this local model format local model support format/gi,r(a,`library.model.localFormat`)).replace(/local model support model support/gi,r(a,`library.model.localSupport`)):o},[a,t]);async function $(t,r,i){I(!0),h(t),v([]),x(null),N(null),R.current=!1;let a=await n.streamModelPrepare({model:t,engine:r||`local_mlx`,allow_download:i},{onProgress:e=>v(t=>[...t.slice(-8),e]),onDone:e=>x(e),onError:e=>{R.current=!0,N(e)}});I(!1),await e.invalidateQueries({queryKey:[`models`]}),await e.invalidateQueries({queryKey:[`modelRecommendations`,`local_mlx`]}),!a.ok&&!R.current&&N(a.data)}return(0,B.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,B.jsxs)(`div`,{className:`space-y-4`,children:[(0,B.jsx)(S,{title:r(a,`library.models.setup.title`),description:r(a,`library.models.setup.desc`),result:s.data,children:i=>{let o=i.recommendations,s=i.profile;return(0,B.jsxs)(`div`,{className:`space-y-4`,children:[(0,B.jsx)(re,{language:a,mode:t,profile:s||{},recommendation:o||{},current:Y,currentId:U,latestProgress:Z,lastResult:b,onReload:()=>{if(Y){let e=Y.recommended_load_id||Y.id;$(String(e||U),String(Y.recommended_engine||Y.engine||`local_mlx`),f)}},onUnload:()=>{U&&n.unloadModel(U).then(()=>e.invalidateQueries({queryKey:[`models`]}))}}),(0,B.jsx)(`ol`,{className:`library-setup-track`,"aria-label":r(a,`library.steps.aria`),children:[[r(a,`library.step.environment`),!0,A],[r(a,`library.step.recommend`),!!(X||G.length),O],[r(a,`library.step.install`),!!(Y||Z?.stage===`engine`),L],[r(a,`library.step.download`),!!(Y||Z?.stage===`download`),j],[r(a,`library.step.validate`),!!(Y||Z?.stage===`smoke_test`),M],[r(a,`library.step.ready`),!!(Y||b),k]].map(([e,t,n])=>(0,B.jsxs)(`li`,{className:t?`is-done`:``,children:[(0,B.jsx)(`span`,{className:`library-setup-mark`,"aria-hidden":`true`,children:z.createElement(n,{className:`h-3.5 w-3.5`})}),(0,B.jsx)(`span`,{className:`library-setup-label`,children:String(e)}),(0,B.jsx)(`span`,{className:`library-setup-state`,children:t?r(a,`library.step.done`):r(a,`library.step.pending`)})]},String(e)))}),(0,B.jsxs)(`label`,{className:`flex items-start gap-2 rounded-lg border border-border bg-background/55 p-3 text-sm leading-6`,children:[(0,B.jsx)(`input`,{className:`mt-1`,type:`checkbox`,checked:f,onChange:e=>p(e.target.checked)}),(0,B.jsx)(`span`,{children:r(a,`library.consent`)})]}),Z?(0,B.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/55 p-3 text-sm`,children:[(0,B.jsx)(`div`,{className:`font-medium`,children:String(Z.message||r(a,`library.preparing`))}),(0,B.jsx)(`div`,{className:`mt-2 h-2 overflow-hidden rounded-full bg-muted`,children:(0,B.jsx)(`div`,{className:`h-full bg-primary`,style:{width:`${Number(Z.percent||8)}%`}})}),Z.detail?(0,B.jsx)(`div`,{className:`mt-2 text-xs text-muted-foreground`,children:String(Z.detail)}):null]}):null,C?(0,B.jsx)(ie,{error:C}):null]})}}),(0,B.jsx)(S,{title:t===`basic`?r(a,`library.panel.recommended.basic`):r(a,`library.panel.recommended.other`),result:o.data,children:e=>(0,B.jsxs)(`div`,{className:`grid gap-2`,children:[(G.length?G:i(e.loaded)).slice(0,t===`basic`?3:14).map((o,s)=>{let c=String(o.id||o.model_id||o.name||s),l=i(e.loaded).includes(c)||e.current===c||o.state===`loaded`,u=String(o.recommended_load_id||c),d=String(o.recommended_engine||o.engine||``),p=J.get(c)||J.get(u)||{},h=q(o.verification),g=q(p.verification),_=q(o.hardware),v=q(p.hardware),y=!!o.download_required,b=_.recommended_ram_gb||v.recommended_ram_gb,x=b?r(a,`library.model.ramRecommended`,{ram:String(b)}):t===`basic`?``:String(_.notes||v.notes||``),S=o.safety_notes||p.safety_notes,C=o.license||p.license,w=o.runtime_compatibility||p.runtime_compatibility||{},E=String(w.status||``)===`fallback_available`,O=o.load_status===`unsupported`||w.supported===!1,k=(!!o.load_available||l)&&!O,A=String(o.load_status||(l?`loaded`:`unavailable`)),j=y?r(a,`library.model.needsDownloadFirst`):Q(o.unavailable_reason||r(a,`library.model.notReady`)),M=String(o.runtime_label||w.preferred_runtime||d||`local_mlx`),N=String(w.action||A.replace(/_/g,` `)),I=te.has(A)?r(a,`library.model.status.${A}`):r(a,`library.model.status.unknown`),L=O&&t===`basic`?r(a,`library.model.needsAttention`):I,R=k||y,z=o.download_size||o.estimated_size||p.download_size||p.estimated_size||o.size||p.size,V=o.provider||p.provider||o.organization||p.organization;return(0,B.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 rounded-lg border border-border bg-background/55 p-4`,children:[(0,B.jsxs)(`div`,{className:`min-w-0`,children:[(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,B.jsx)(`div`,{className:`text-base font-semibold`,children:String(o.name||c)}),X?.id===c||o.recommended_default?(0,B.jsx)(D,{variant:`success`,children:r(a,`library.model.recommended`)}):null,String(o.modality||p.modality||``).includes(`multi`)||String(o.modality||``)===`multimodal`?(0,B.jsx)(D,{variant:`muted`,children:r(a,`library.model.multimodal`)}):null,h.verified||g.verified?(0,B.jsx)(D,{variant:`success`,title:r(a,`library.model.hfVerified`),children:r(a,`library.model.sourceVerified`)}):null]}),(0,B.jsx)(`div`,{className:`mt-1 text-sm text-muted-foreground`,children:t===`basic`?[Q(o.family||p.family||r(a,`library.model.local`)),/mlx|gguf|ollama/i.test(String(o.size||p.size||``))?``:o.size||p.size].filter(Boolean).map(String).join(` · `):[o.family||p.family||r(a,`library.value.local`),o.size||p.size].filter(Boolean).map(String).join(` · `)}),o.hardware||p.hardware?(0,B.jsx)(`div`,{className:`mt-1 text-[11px] text-muted-foreground/80`,children:String(x)}):null,(0,B.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1 text-[11px] text-muted-foreground`,children:[(0,B.jsx)(D,{variant:`muted`,children:y?r(a,`library.model.downloadSize`,{size:String(z||r(a,`library.model.downloadRequired`))}):r(a,`library.model.noDownload`)}),(0,B.jsx)(D,{variant:`muted`,children:y?r(a,`library.model.internetDuringDownload`):r(a,`library.model.runsLocally`)}),V?(0,B.jsx)(D,{variant:`muted`,children:String(V)}):null]}),O?(0,B.jsxs)(`div`,{className:`mt-3 rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-sm`,children:[(0,B.jsx)(`div`,{className:`font-medium`,children:t===`basic`?r(a,`library.model.attentionBeforeLoad`):N}),(0,B.jsx)(`div`,{className:`text-muted-foreground`,children:Q(w.user_message||j,`library.model.unsupportedHere`)})]}):E?(0,B.jsxs)(`div`,{className:`mt-3 rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-sm`,children:[(0,B.jsx)(`div`,{className:`font-medium`,children:t===`basic`?r(a,`library.model.compatiblePath`):r(a,`library.model.runtimeFallback`)}),(0,B.jsx)(`div`,{className:`text-muted-foreground`,children:Q(w.user_message||r(a,`library.model.compatibilityFallback`),`library.model.compatibilityFallback`)})]}):!l&&!k?(0,B.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:j}):null,t===`basic`?null:(0,B.jsxs)(`div`,{className:`mt-2 space-y-1 text-xs text-muted-foreground`,children:[(0,B.jsxs)(`div`,{children:[M,` · `,u,o.load_strategy||p.load_strategy?` · ${String(o.load_strategy||p.load_strategy)}`:``,h.notes?` · ${String(h.notes).slice(0,60)}`:``]}),S||C?(0,B.jsx)(`div`,{children:[C?r(a,`library.model.license`,{license:String(C)}):``,S?String(S):``].filter(Boolean).join(` · `)}):null]}),O||E?(0,B.jsx)(ne,{compatibility:w}):null]}),(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 md:justify-end`,children:[(0,B.jsx)(D,{variant:l?`success`:k?`muted`:`warning`,children:l?r(a,`library.model.loaded`):L}),l?(0,B.jsx)(T,{label:r(a,`library.runtime.unload`),action:()=>n.unloadModel(u),invalidate:[`models`]}):(0,B.jsx)(P,{variant:`outline`,disabled:F||O||!R||y&&!f,title:O?r(a,`library.model.status.unsupported`):y&&!f?r(a,`library.btn.needsConsent`):R?void 0:j,onClick:()=>$(u,d,f),children:m===u&&F?r(a,`library.btn.preparing`):y?r(a,`library.btn.installLoad`):r(a,`library.btn.validateLoad`)})]})]},c)}),t===`basic`&&G.length>3?(0,B.jsx)(`div`,{className:`rounded-lg border border-border bg-background/55 p-3 text-sm text-muted-foreground`,children:r(a,`library.model.shortListHint`)}):null]})})]}),(0,B.jsxs)(`div`,{className:`space-y-4`,children:[(0,B.jsx)(S,{title:t===`basic`?r(a,`library.models.embedding.basic`):r(a,`library.models.embedding.advanced`),result:d.data,children:e=>(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(g,{value:V(e.state,a)}),t===`basic`?null:(0,B.jsx)(E,{value:e})]})}),(0,B.jsx)(S,{title:t===`basic`?r(a,`library.models.validation`):r(a,`library.models.validationAdvanced`),result:o.data,children:e=>{let n=i(e.compat_profiles);return n.length?(0,B.jsx)(y,{items:n.map(e=>({...e,name:t===`basic`?e.name||e.display_name||r(a,`library.model.loadedName`):e.name||e.display_name||e.model_id,status:e.quality_status||e.load_status||r(a,`library.model.checked`)})),titleKey:`name`,metaKey:`status`,limit:6}):(0,B.jsx)(w,{title:r(a,`library.model.noneChecked`),detail:r(a,`library.model.noneCheckedHint`)})}})]})]})}function ne({compatibility:e}){let t=c(e=>e.mode),n=c(e=>e.language),a=i(e.alternatives);return a.length?(0,B.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:a.slice(0,3).map(e=>(0,B.jsx)(D,{variant:`muted`,children:t===`basic`&&/mlx|gguf|ollama|lm studio/i.test(String(e.name||e.id))?r(n,`library.model.compatibleAlternative`):String(e.name||e.id)},String(e.id||e.name)))}):null}function re({language:e=`en`,mode:n=`advanced`,profile:i,recommendation:a,current:o,currentId:s,latestProgress:c,lastResult:l,onReload:u,onUnload:d}){let f=String(o?.id||s||``),p=String(o?.name||``)||(f?t(f):``),m=String(o?.engine||o?.recommended_engine||c?.engine||`local_mlx`),h=String(o?.local_path||o?.storage_location||a.cache_path||a.storage_location||`~/.cache/huggingface / ~/.latticeai/models`),g=String(c?.stage||l?.stage||(p?r(e,`library.value.ready`):r(e,`library.value.idle`))),_=n===`basic`;return(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(b,{stats:_?[{label:r(e,`library.runtime.computer`),value:H(i,e)},{label:r(e,`library.runtime.loaded`),value:p||r(e,`library.runtime.noneShort`)}]:[{label:r(e,`library.runtime.computer`),value:H(i,e)},{label:r(e,`library.runtime.engine`),value:m},{label:r(e,`library.runtime.loaded`),value:p||r(e,`library.runtime.noLoaded`)},{label:r(e,`library.runtime.state`),value:g}]}),(0,B.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/55 p-3 text-sm`,children:[(0,B.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`font-medium`,children:p?r(e,`library.models.runtime.available`):r(e,`library.models.runtime.none`)}),_?null:(0,B.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:r(e,`library.runtime.cacheStorage`,{path:h})})]}),(0,B.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,B.jsx)(P,{variant:`outline`,size:`sm`,disabled:!p,onClick:u,children:r(e,`library.runtime.reload`)}),(0,B.jsx)(P,{variant:`outline`,size:`sm`,disabled:!p,onClick:d,children:r(e,`library.runtime.unload`)})]})]}),c?(0,B.jsxs)(`div`,{className:`mt-3`,children:[(0,B.jsxs)(`div`,{className:`flex justify-between text-xs text-muted-foreground`,children:[(0,B.jsx)(`span`,{children:String(c.message||r(e,`library.preparing`))}),(0,B.jsxs)(`span`,{children:[Number(c.percent||0),`%`]})]}),(0,B.jsx)(`div`,{className:`mt-1 h-2 overflow-hidden rounded-full bg-muted`,children:(0,B.jsx)(`div`,{className:`h-full bg-primary`,style:{width:`${Number(c.percent||8)}%`}})})]}):null]})]})}function ie({error:e}){let t=c(e=>e.language),n=i(e.recovery_guidance);return(0,B.jsxs)(`div`,{className:`rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-sm`,children:[(0,B.jsx)(`div`,{className:`font-medium`,children:String(e.user_message||r(t,`library.model.setupAttention`))}),n.length?(0,B.jsx)(`ul`,{className:`mt-2 list-inside list-disc text-muted-foreground`,children:n.slice(0,3).map(e=>(0,B.jsx)(`li`,{children:e},e))}):null]})}function q(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function J(){let e=l(),t=c(e=>e.language),a=u({queryKey:[`skills`],queryFn:n.skills}),o=u({queryKey:[`skillsMarketplace`],queryFn:n.skillsMarketplace}),s=d({mutationFn:e=>n.skillInstall(String(e.name||e.id),String(e.plugin||``)),onSuccess:()=>e.invalidateQueries({queryKey:[`skills`]})});return(0,B.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,B.jsx)(S,{title:r(t,`library.skills.installed`),result:a.data,children:e=>(0,B.jsx)(`div`,{className:`flex flex-col gap-2`,children:i(e.skills).map(e=>(0,B.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border border-border p-3`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`font-medium`,children:String(e.name||e.id)}),(0,B.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:String(e.plugin||e.description||``)})]}),(0,B.jsx)(T,{label:r(t,e.enabled?`library.skills.disable`:`library.skills.enable`),action:()=>n.skillToggle(String(e.name||e.id),!!e.enabled),invalidate:[`skills`]})]},String(e.name||e.id)))})}),(0,B.jsx)(S,{title:r(t,`library.skills.marketplace`),result:o.data,children:e=>(0,B.jsx)(`div`,{className:`flex flex-col gap-2`,children:i(e.skills).slice(0,10).map(e=>(0,B.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border border-border p-3`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`font-medium`,children:String(e.name||e.id)}),(0,B.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:String(e.description||e.category||``)})]}),(0,B.jsx)(P,{variant:`outline`,disabled:s.isPending,onClick:()=>s.mutate(e),children:r(t,`library.skills.install`)})]},String(e.name||e.id)))})})]})}function Y(){let e=c(e=>e.mode),t=c(e=>e.language),[i,a]=z.useState(`github`),o=u({queryKey:[`mcpTools`],queryFn:n.mcpTools}),s=d({mutationFn:()=>n.mcpRecommend(i)});return(0,B.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,B.jsx)(S,{title:r(t,e===`basic`?`library.connector.connections`:`library.connector.mcpTools`),result:o.data,children:e=>(0,B.jsx)(y,{items:e.tools||e.installed_mcps,titleKey:`name`,metaKey:`status`})}),(0,B.jsxs)(C,{children:[(0,B.jsxs)(_,{children:[(0,B.jsxs)(f,{className:`flex items-center gap-2`,children:[(0,B.jsx)(R,{className:`h-4 w-4`}),` `,r(t,`library.connector.recommend`)]}),(0,B.jsx)(v,{children:r(t,`library.connector.recommendHint`)})]}),(0,B.jsxs)(x,{className:`space-y-3`,children:[(0,B.jsxs)(`div`,{className:`flex gap-2`,children:[(0,B.jsx)(F,{value:i,onChange:e=>a(e.target.value)}),(0,B.jsx)(P,{onClick:()=>s.mutate(),disabled:!i.trim()||s.isPending,children:r(t,`library.connector.recommendAction`)})]}),s.data?(0,B.jsx)(m,{result:s.data,successLabel:r(t,`library.connector.recommendDone`)}):null]})]})]})}function X(){let e=c(e=>e.language),t=u({queryKey:[`templates`],queryFn:n.templates}),a=u({queryKey:[`plugins`],queryFn:n.pluginsRegistry}),o=u({queryKey:[`pluginsDirectory`],queryFn:n.pluginsDirectory});return(0,B.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,B.jsx)(S,{title:r(e,`library.market.templates`),result:t.data,children:e=>(0,B.jsx)(y,{items:e.templates,titleKey:`name`,metaKey:`kind`})}),(0,B.jsx)(S,{title:r(e,`library.market.installedPlugins`),result:a.data,children:e=>(0,B.jsx)(y,{items:e.plugins,titleKey:`name`,metaKey:`status`})}),(0,B.jsx)(S,{title:r(e,`library.market.pluginDirectory`),result:o.data,children:e=>(0,B.jsx)(y,{items:e.plugins,titleKey:`name`,metaKey:`category`})}),(0,B.jsxs)(C,{className:`xl:col-span-3`,children:[(0,B.jsxs)(_,{children:[(0,B.jsxs)(f,{className:`flex items-center gap-2`,children:[(0,B.jsx)(L,{className:`h-4 w-4`}),` `,r(e,`library.market.templateInstall`)]}),(0,B.jsx)(v,{children:r(e,`library.market.templateInstallHint`)})]}),(0,B.jsx)(x,{children:i(t.data?.data?.templates).length?(0,B.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:i(t.data?.data?.templates).slice(0,6).map(t=>(0,B.jsx)(T,{label:r(e,`library.market.installTemplate`,{name:String(t.name||t.id)}),action:()=>n.installTemplate(t)},String(t.id||t.name)))}):(0,B.jsx)(y,{items:[]})})]})]})}export{W as LibraryPage};