chatlab-cli 0.35.0 → 0.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +7 -7
  2. package/dist/{chat-command-24RYGJAS.mjs → chat-command-XPJ43KSW.mjs} +11 -11
  3. package/dist/chat-command-XPJ43KSW.mjs.map +1 -0
  4. package/dist/{chunk-7IGBPZMI.mjs → chunk-2JPFBIAG.mjs} +268 -76
  5. package/dist/chunk-2JPFBIAG.mjs.map +1 -0
  6. package/dist/{chunk-GQMCDWZQ.mjs → chunk-5MJO4AJB.mjs} +2 -2
  7. package/dist/{chunk-QKEARRFH.mjs → chunk-67HNPYZJ.mjs} +3 -3
  8. package/dist/{chunk-U36TQMAF.mjs → chunk-6QP47LID.mjs} +2 -2
  9. package/dist/{chunk-4GWWKHWA.mjs → chunk-FJOGBUXU.mjs} +892 -6990
  10. package/dist/chunk-FJOGBUXU.mjs.map +1 -0
  11. package/dist/{chunk-KIMJXKZO.mjs → chunk-JOVL7OTW.mjs} +2 -2
  12. package/dist/{chunk-ZBPPLXM4.mjs → chunk-L7TIIVAY.mjs} +63 -63
  13. package/dist/chunk-L7TIIVAY.mjs.map +1 -0
  14. package/dist/{chunk-DC7IUDNV.mjs → chunk-NFTCEJBJ.mjs} +27 -9
  15. package/dist/chunk-NFTCEJBJ.mjs.map +1 -0
  16. package/dist/{chunk-KXDJ7N6N.mjs → chunk-NQHZPSW2.mjs} +2 -2
  17. package/dist/chunk-Q3NEL2KK.mjs +19126 -0
  18. package/dist/chunk-Q3NEL2KK.mjs.map +1 -0
  19. package/dist/{chunk-DEFEU567.mjs → chunk-R73XMAB2.mjs} +13 -11
  20. package/dist/chunk-R73XMAB2.mjs.map +1 -0
  21. package/dist/{chunk-BRZ6YIBR.mjs → chunk-X2QBH24F.mjs} +8 -3
  22. package/dist/chunk-X2QBH24F.mjs.map +1 -0
  23. package/dist/chunk-YKMQLAVP.mjs +25 -0
  24. package/dist/chunk-YKMQLAVP.mjs.map +1 -0
  25. package/dist/cli.mjs +10 -10
  26. package/dist/contacts-worker.mjs +2 -2
  27. package/dist/global-insight-worker.mjs +136 -4
  28. package/dist/global-insight-worker.mjs.map +1 -1
  29. package/dist/{http-3K4YMWDE.mjs → http-5RVY5J5U.mjs} +13 -13
  30. package/dist/{import-D4LV565A.mjs → import-ILTWVHKU.mjs} +8 -8
  31. package/dist/index.mjs +13 -13
  32. package/dist/{mcp-KL22FKQ2.mjs → mcp-Y2YXOFB4.mjs} +9 -9
  33. package/dist/people-relationships-worker.mjs +2 -2
  34. package/dist/semantic-index-worker.mjs +1 -1
  35. package/dist/{service-KZTHBDQ5.mjs → service-ZAHXRSFD.mjs} +6 -6
  36. package/dist/service-ZAHXRSFD.mjs.map +1 -0
  37. package/dist/{src-COIB6Z4P.mjs → src-OV5ZNE3Z.mjs} +124 -98
  38. package/dist/{stream-import-FSXCFG4M.mjs → stream-import-XOUM3Z5W.mjs} +8 -8
  39. package/dist/{undici-MU5I3L6Q.mjs → undici-UGXDRJLV.mjs} +193 -193
  40. package/dist/undici-UGXDRJLV.mjs.map +1 -0
  41. package/dist/{update-checker-3N7HQEP2.mjs → update-checker-UL2FBLXH.mjs} +3 -5
  42. package/dist/{update-checker-3N7HQEP2.mjs.map → update-checker-UL2FBLXH.mjs.map} +1 -1
  43. package/dist/{worker-runtime-DPS2LURI.mjs → worker-runtime-JNGURHDM.mjs} +6 -6
  44. package/dist-cli-web/assets/AISettingsTab-vvjijrc5.js +1 -0
  45. package/dist-cli-web/assets/{AboutTab-DMPziKjj.js → AboutTab-CxI8zJNz.js} +1 -1
  46. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-w0hHEodr.js +110 -0
  47. package/dist-cli-web/assets/Alert-_MYcI_E2.js +1 -0
  48. package/dist-cli-web/assets/ApiSettingsTab-CK7U6dVA.js +2 -0
  49. package/dist-cli-web/assets/BatchManageTab-1WnEqqpB.js +1 -0
  50. package/dist-cli-web/assets/{BufferResource-BXSJADxx.js → BufferResource-i64DlwQT.js} +1 -1
  51. package/dist-cli-web/assets/{CanvasRenderer-Cq--8UQ_.js → CanvasRenderer-B76mEt9A.js} +1 -1
  52. package/dist-cli-web/assets/ChatRecordDrawer-Bp6OSCrz.js +1 -0
  53. package/dist-cli-web/assets/ChatRecordWorkspace-CyfPIlIy.js +11 -0
  54. package/dist-cli-web/assets/ChatRecordWorkspace-D_oJMtqh.css +1 -0
  55. package/dist-cli-web/assets/Checkbox-Ci7IeRw1.js +1 -0
  56. package/dist-cli-web/assets/DataDirCleanupNotice-Dh63pOLt.js +1 -0
  57. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-DqNBNa1D.js +1 -0
  58. package/dist-cli-web/assets/DebugToolsPanel-CbNsD9co.js +1 -0
  59. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-YeqmodwE.js +1 -0
  60. package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-C3pZmq0v.js +1 -0
  61. package/dist-cli-web/assets/EChartLine.vue_vue_type_script_setup_true_lang-Co6olfwv.js +1 -0
  62. package/dist-cli-web/assets/{EChartWordcloud-KV0MdsDE.js → EChartWordcloud-rDusZwSq.js} +1 -1
  63. package/dist-cli-web/assets/{Filter-DVaqcFmI.js → Filter-yxkeHO78.js} +1 -1
  64. package/dist-cli-web/assets/GlobalTaskBar-BlZ-fFiq.js +1 -0
  65. package/dist-cli-web/assets/GroupRelationshipGalaxyView-BXQBX0zJ.js +1 -0
  66. package/dist-cli-web/assets/Label-CFAZFBQX.js +1 -0
  67. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js +1 -0
  68. package/dist-cli-web/assets/MessageExportModal-DU71grc7.js +1 -0
  69. package/dist-cli-web/assets/PageHeader-BDPf4NuI.js +1 -0
  70. package/dist-cli-web/assets/PageTabs.vue_vue_type_script_setup_true_lang-_j82asQU.js +1 -0
  71. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-6EamagxG.js → RelationshipGalaxyCanvas-BODk18aA.js} +14 -14
  72. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-BJyuRiC-.js +4168 -0
  73. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-CCasBcBQ.css +1 -0
  74. package/dist-cli-web/assets/{RenderTargetSystem-mYuj4uBS.js → RenderTargetSystem-CVMvAUSv.js} +1 -1
  75. package/dist-cli-web/assets/RovingFocusItem-DC_06OmN.js +1 -0
  76. package/dist-cli-web/assets/ScreenCaptureModal-DrBFDOtC.js +1 -0
  77. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-C-Zj2biH.js +1 -0
  78. package/dist-cli-web/assets/Select-DLK2LYhO.js +1 -0
  79. package/dist-cli-web/assets/SettingsModal-BFkxzo0Y.css +1 -0
  80. package/dist-cli-web/assets/SettingsModal-DqaR4Dx5.js +2 -0
  81. package/dist-cli-web/assets/StorageTab-B0ebN0f8.js +1 -0
  82. package/dist-cli-web/assets/Switch-CokhQWxm.js +1 -0
  83. package/dist-cli-web/assets/Tabs-D1UiZNaZ.js +1 -0
  84. package/dist-cli-web/assets/Tabs-N3Q-Mpqi.js +1 -0
  85. package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-DPIvbq75.js → ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js} +1 -1
  86. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-Ccunouyf.js +1 -0
  87. package/dist-cli-web/assets/{VisuallyHiddenInput-BOdkR_GC.js → VisuallyHiddenInput-OAJEt_Y5.js} +1 -1
  88. package/dist-cli-web/assets/{WebGLRenderer-BB8ukBI_.js → WebGLRenderer-DuUeftYD.js} +1 -1
  89. package/dist-cli-web/assets/{WebGPURenderer-DDOzF1Kc.js → WebGPURenderer-DoWQxiWZ.js} +1 -1
  90. package/dist-cli-web/assets/aiChat-CdADfRnU.js +8 -0
  91. package/dist-cli-web/assets/{browserAll-BRqlnNxq.js → browserAll-Cb-mtR2y.js} +1 -1
  92. package/dist-cli-web/assets/{cli-web-ClAJ6Tao.js → cli-web-BHQCZLLg.js} +1 -1
  93. package/dist-cli-web/assets/{fetch-LY-yerw1.js → fetch-AvsnJLWJ.js} +1 -1
  94. package/dist-cli-web/assets/{fetch-Dy38lkAa.js → fetch-B-6tyYWu.js} +1 -1
  95. package/dist-cli-web/assets/{fetch-Bcy2T8Fe.js → fetch-B4PYy5JS.js} +1 -1
  96. package/dist-cli-web/assets/{fetch-DWAIk_6_.js → fetch-BbcFaCRB.js} +1 -1
  97. package/dist-cli-web/assets/fetch-BkA_so1e.js +1 -0
  98. package/dist-cli-web/assets/{fetch-q480XYZQ.js → fetch-BzXuAaT3.js} +8 -5
  99. package/dist-cli-web/assets/fetch-CW2fKvGp.js +1 -0
  100. package/dist-cli-web/assets/{fetch-DijSOvop.js → fetch-DEub4tOo.js} +1 -1
  101. package/dist-cli-web/assets/{fetch-CGu53cxT.js → fetch-DLTlYnDB.js} +1 -1
  102. package/dist-cli-web/assets/fetch-Qs38Hx1V.js +1 -0
  103. package/dist-cli-web/assets/{fetch-CP1afnT0.js → fetch-sYDJ-Zs8.js} +1 -1
  104. package/dist-cli-web/assets/{fetch-DzKlTaLz.js → fetch-ul8-uQIb.js} +1 -1
  105. package/dist-cli-web/assets/host-B6SQ6OGo.js +1 -0
  106. package/dist-cli-web/assets/host-DYIkQqvY.js +1 -0
  107. package/dist-cli-web/assets/{index-Di6FmCdk.js → index--IEkRjKe.js} +10 -10
  108. package/dist-cli-web/assets/index-9iaY_EWG.js +1 -0
  109. package/dist-cli-web/assets/index-B4J99zv3.css +1 -0
  110. package/dist-cli-web/assets/index-BBeqtL8d.css +1 -0
  111. package/dist-cli-web/assets/index-BnaLj2dx.css +1 -0
  112. package/dist-cli-web/assets/index-C7omDgiJ.js +2 -0
  113. package/dist-cli-web/assets/index-CHsM84U1.js +2 -0
  114. package/dist-cli-web/assets/index-CL8u01Pf.js +137 -0
  115. package/dist-cli-web/assets/{index-CNzv7aBW.js → index-CShh95fU.js} +1 -1
  116. package/dist-cli-web/assets/index-C_OS8Y8W.js +1 -0
  117. package/dist-cli-web/assets/{index-BRV_D8dv.js → index-D64XYYts.js} +1 -1
  118. package/dist-cli-web/assets/index-DrCc8p_I.css +1 -0
  119. package/dist-cli-web/assets/index-Dz_ddyZS.css +1 -0
  120. package/dist-cli-web/assets/index-UpTe1KzQ.js +1 -0
  121. package/dist-cli-web/assets/index-a8Hw6eD8.js +1 -0
  122. package/dist-cli-web/assets/index-jwjzZNKm.js +1 -0
  123. package/dist-cli-web/assets/index-pkxlF8Ee.js +1 -0
  124. package/dist-cli-web/assets/index-sWxuTsa7.js +36 -0
  125. package/dist-cli-web/assets/{people-page-header-Bh3KXD4g.js → people-page-header-0jvXFFnh.js} +1 -1
  126. package/dist-cli-web/assets/{prompt-DcAcgQiB.js → prompt-BPYj29Vq.js} +1 -1
  127. package/dist-cli-web/assets/{semantic-index-config-builder-CK6v64Y1.js → semantic-index-config-builder-vO37z355.js} +1 -1
  128. package/dist-cli-web/assets/service-CVoA9yNf.js +1 -0
  129. package/dist-cli-web/assets/{service-YZnJyEMq.js → service-D29Vftq9.js} +1 -1
  130. package/dist-cli-web/assets/service-DMysyLCa.js +1 -0
  131. package/dist-cli-web/assets/{useFormControl-B-aXrJZN.js → useFormControl-DVawP2DO.js} +1 -1
  132. package/dist-cli-web/assets/useTable-Bv3R_Hux.js +1 -0
  133. package/dist-cli-web/assets/useToast-BA0EwImD.js +1 -0
  134. package/dist-cli-web/assets/{vendor-echarts-DfAMQxdr.js → vendor-echarts-hTLhTs52.js} +5 -5
  135. package/dist-cli-web/assets/{vendor-echarts-wordcloud-BsaEJTPY.js → vendor-echarts-wordcloud-B8CF_NgP.js} +1 -1
  136. package/dist-cli-web/assets/{vendor-zrender-PFmZe1EY.js → vendor-zrender-D8psf1AA.js} +2 -2
  137. package/dist-cli-web/assets/{webworkerAll-Dwqmy_YO.js → webworkerAll-ZPE_yGnC.js} +1 -1
  138. package/dist-cli-web/index.html +2 -2
  139. package/package.json +4 -4
  140. package/dist/chat-command-24RYGJAS.mjs.map +0 -1
  141. package/dist/chunk-22YJOBA3.mjs +0 -9826
  142. package/dist/chunk-22YJOBA3.mjs.map +0 -1
  143. package/dist/chunk-4GWWKHWA.mjs.map +0 -1
  144. package/dist/chunk-7IGBPZMI.mjs.map +0 -1
  145. package/dist/chunk-BRZ6YIBR.mjs.map +0 -1
  146. package/dist/chunk-DC7IUDNV.mjs.map +0 -1
  147. package/dist/chunk-DEFEU567.mjs.map +0 -1
  148. package/dist/chunk-QZCNVAH6.mjs +0 -14
  149. package/dist/chunk-QZCNVAH6.mjs.map +0 -1
  150. package/dist/chunk-ZBPPLXM4.mjs.map +0 -1
  151. package/dist/service-KZTHBDQ5.mjs.map +0 -1
  152. package/dist/undici-MU5I3L6Q.mjs.map +0 -1
  153. package/dist-cli-web/assets/AISettingsTab-rQC2ocFH.js +0 -1
  154. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-CnRLt_1j.js +0 -110
  155. package/dist-cli-web/assets/Alert--bTQXRcZ.js +0 -1
  156. package/dist-cli-web/assets/ApiSettingsTab-CtXl4I28.js +0 -2
  157. package/dist-cli-web/assets/BatchManageTab-1KaCPweN.js +0 -1
  158. package/dist-cli-web/assets/ChatRecordDrawer-BC0F7ok1.js +0 -11
  159. package/dist-cli-web/assets/ChatRecordDrawer-Tt6UduRC.css +0 -1
  160. package/dist-cli-web/assets/Checkbox-CwajNPGF.js +0 -1
  161. package/dist-cli-web/assets/DataDirCleanupNotice-D0Oruka2.js +0 -1
  162. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-C4CsoIlq.js +0 -1
  163. package/dist-cli-web/assets/DebugToolsPanel-DVDwS-wz.js +0 -1
  164. package/dist-cli-web/assets/GlobalTaskBar-DpPMX0jx.js +0 -1
  165. package/dist-cli-web/assets/GroupRelationshipGalaxyView-CLnO3phW.js +0 -1
  166. package/dist-cli-web/assets/Label-Bt2U4lGy.js +0 -1
  167. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js +0 -1
  168. package/dist-cli-web/assets/MessageExportModal-BozaR9UZ.js +0 -1
  169. package/dist-cli-web/assets/PageHeader-CEe0xTl3.js +0 -1
  170. package/dist-cli-web/assets/PageTabs.vue_vue_type_script_setup_true_lang-D2DZrrnv.js +0 -1
  171. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-B6GB4PWS.js +0 -4108
  172. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-TYGOUDiv.css +0 -1
  173. package/dist-cli-web/assets/RovingFocusItem-B2y6BG1a.js +0 -1
  174. package/dist-cli-web/assets/ScreenCaptureModal-BvAtSNNR.js +0 -1
  175. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-ueEF4zHE.js +0 -1
  176. package/dist-cli-web/assets/Select-Cm4I8u9n.js +0 -1
  177. package/dist-cli-web/assets/SettingsModal-CjVax3I6.css +0 -1
  178. package/dist-cli-web/assets/SettingsModal-Cwshzj7i.js +0 -2
  179. package/dist-cli-web/assets/StorageTab-D7HzH16Y.js +0 -1
  180. package/dist-cli-web/assets/Switch-BVw4e_19.js +0 -1
  181. package/dist-cli-web/assets/Tabs-Dqwkh3Ea.js +0 -1
  182. package/dist-cli-web/assets/Tabs-OrJkANIA.js +0 -1
  183. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-dEdo6CqM.js +0 -1
  184. package/dist-cli-web/assets/aiChat-CzFSFuOJ.js +0 -8
  185. package/dist-cli-web/assets/annual-summary-time-range-CmrAqcuj.js +0 -1
  186. package/dist-cli-web/assets/base-CawUl6ET.js +0 -1
  187. package/dist-cli-web/assets/dateFormat-DXuDxIye.js +0 -1
  188. package/dist-cli-web/assets/fetch-3_xX8Yi8.js +0 -1
  189. package/dist-cli-web/assets/index-0dp58uL4.css +0 -1
  190. package/dist-cli-web/assets/index-1X7zdLgJ.css +0 -1
  191. package/dist-cli-web/assets/index-4enwdBcq.css +0 -1
  192. package/dist-cli-web/assets/index-AudHHbMs.js +0 -1
  193. package/dist-cli-web/assets/index-CF4DTbvD.js +0 -1
  194. package/dist-cli-web/assets/index-CMLoht5R.js +0 -1
  195. package/dist-cli-web/assets/index-CMPHZH6B.css +0 -1
  196. package/dist-cli-web/assets/index-CXUTiy-V.js +0 -1
  197. package/dist-cli-web/assets/index-D5m0P4ss.js +0 -36
  198. package/dist-cli-web/assets/index-DkOrt7_X.js +0 -2
  199. package/dist-cli-web/assets/index-Dlb6fC68.js +0 -1
  200. package/dist-cli-web/assets/index-IA7YUjQX.js +0 -2
  201. package/dist-cli-web/assets/index-ZsZwPLWy.css +0 -1
  202. package/dist-cli-web/assets/index-kzU381y1.js +0 -1
  203. package/dist-cli-web/assets/index-z8Vogc-b.js +0 -137
  204. package/dist-cli-web/assets/lazy-overlay-visibility-Bd9ZFOgR.js +0 -1
  205. package/dist-cli-web/assets/member-select-utils-BXZ3oHct.js +0 -1
  206. package/dist-cli-web/assets/useTable-DPEMaGby.js +0 -1
  207. package/dist-cli-web/assets/useToast-B36MzFFy.js +0 -1
  208. /package/dist/{chunk-GQMCDWZQ.mjs.map → chunk-5MJO4AJB.mjs.map} +0 -0
  209. /package/dist/{chunk-QKEARRFH.mjs.map → chunk-67HNPYZJ.mjs.map} +0 -0
  210. /package/dist/{chunk-U36TQMAF.mjs.map → chunk-6QP47LID.mjs.map} +0 -0
  211. /package/dist/{chunk-KIMJXKZO.mjs.map → chunk-JOVL7OTW.mjs.map} +0 -0
  212. /package/dist/{chunk-KXDJ7N6N.mjs.map → chunk-NQHZPSW2.mjs.map} +0 -0
  213. /package/dist/{http-3K4YMWDE.mjs.map → http-5RVY5J5U.mjs.map} +0 -0
  214. /package/dist/{import-D4LV565A.mjs.map → import-ILTWVHKU.mjs.map} +0 -0
  215. /package/dist/{mcp-KL22FKQ2.mjs.map → mcp-Y2YXOFB4.mjs.map} +0 -0
  216. /package/dist/{src-COIB6Z4P.mjs.map → src-OV5ZNE3Z.mjs.map} +0 -0
  217. /package/dist/{stream-import-FSXCFG4M.mjs.map → stream-import-XOUM3Z5W.mjs.map} +0 -0
  218. /package/dist/{worker-runtime-DPS2LURI.mjs.map → worker-runtime-JNGURHDM.mjs.map} +0 -0
@@ -1 +0,0 @@
1
- import{a as ke,a0 as be,c as re,b as T,au as Tt,o as c,i as f,l as a,v as o,f as r,D as y,F as q,q as he,s as E,a2 as _e,a3 as J,g as u,_ as Se,ad as De,ac as Lt,a1 as $t,b4 as It,w as O,B as Ft,C as Pt,r as b,ag as Mt,Y as zt,an as Z,n as U,b5 as At,ao as Nt,H as Be,bf as Et}from"./index-D5m0P4ss.js";import{_ as Bt}from"./Tabs-OrJkANIA.js";import{u as Vt}from"./useToast-B36MzFFy.js";import{_ as jt}from"./ThemeCard.vue_vue_type_script_setup_true_lang-DPIvbq75.js";import{_ as Dt}from"./LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js";import{_ as Gt}from"./SectionTabs.vue_vue_type_script_setup_true_lang-ueEF4zHE.js";import{u as Ot}from"./people-page-header-Bh3KXD4g.js";import"./vendor-snapdom--nZvo8Sg.js";import"./RovingFocusItem-B2y6BG1a.js";const Ut={key:0,class:"flex h-full w-[420px] max-w-[80vw] shrink-0 flex-col border-l border-gray-200 bg-white dark:border-gray-800 dark:bg-page-dark",style:{"-webkit-app-region":"no-drag"}},qt={class:"flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-800"},Rt={class:"text-base font-semibold text-gray-900 dark:text-white"},Ht={key:0,class:"flex min-h-0 flex-1 items-center justify-center gap-2 text-sm text-gray-400 dark:text-gray-500"},Kt={key:1,class:"min-h-0 flex-1 overflow-y-auto"},Yt={class:"px-5 py-5"},Qt={class:"flex items-start gap-4"},Wt={class:"relative shrink-0"},Xt=["src","alt"],Zt={key:1,class:"flex h-16 w-16 items-center justify-center rounded-2xl bg-gradient-to-br from-gray-155 to-gray-200 text-lg font-bold text-gray-700 dark:from-gray-800 dark:to-page-dark dark:text-gray-200"},Jt={class:"min-w-0 flex-1 pt-1"},ea={class:"truncate text-lg font-bold tracking-tight text-gray-900 dark:text-white"},ta={class:"mt-1 truncate font-mono text-xs text-gray-400 dark:text-gray-500"},aa={key:0,class:"mt-2 flex flex-wrap gap-1.5"},na={key:1,class:"mt-3 flex flex-wrap items-center gap-2"},sa={class:"border-t border-gray-100 px-5 py-4 dark:border-white/5"},oa={class:"mb-3 text-[10px] font-bold uppercase tracking-wider text-gray-400 dark:text-gray-500"},ra={class:"space-y-2.5"},ia={class:"flex items-center justify-between gap-2"},la={class:"truncate text-xs font-semibold text-gray-700 dark:text-gray-300"},ca={class:"flex items-center gap-1 text-[10px] font-bold text-gray-400 transition group-hover/item:text-pink-500 dark:text-gray-500"},da={class:"mt-1.5 truncate text-[11px] font-medium text-gray-400 dark:text-gray-500"},ua={class:"mt-2 flex flex-wrap gap-1.5"},fa=ke({__name:"ContactDetailPanel",props:{selectedKey:{},contact:{},isLoading:{type:Boolean},isFriendActionLoading:{type:Boolean}},emits:["clear","openSource","viewSourceRecords","markFriend","unmarkFriend"],setup(n,{emit:s}){const h=n,S=s,{t:C}=be(),A=u(()=>{const p=h.contact;if(!p)return[];const v=new Set([p.displayName.trim().toLowerCase(),p.platformId.trim().toLowerCase()]);return p.aliases.filter(w=>!v.has(w.trim().toLowerCase()))}),I=u(()=>h.contact?.pool==="non_friend"),F=u(()=>h.contact?.friendSource==="manual"),B=u(()=>I.value||F.value);function P(p){return p.displayName.trim().slice(0,1).toUpperCase()||"?"}return(p,v)=>{const w=_e,R=Se;return c(),re(Tt,{name:"contact-detail-panel"},{default:T(()=>[n.selectedKey?(c(),f("aside",Ut,[a("div",qt,[a("h3",Rt,o(r(C)("contacts.detail.title")),1),y(w,{"aria-label":r(C)("contacts.actions.clearSelection"),icon:"i-heroicons-x-mark",color:"neutral",variant:"ghost",size:"sm",onClick:v[0]||(v[0]=x=>S("clear"))},null,8,["aria-label"])]),n.isLoading?(c(),f("div",Ht,[y(R,{name:"i-lucide-loader-2",class:"h-4 w-4 animate-spin"}),a("span",null,o(r(C)("common.loading")),1)])):n.contact?(c(),f("div",Kt,[a("section",Yt,[a("div",Qt,[a("div",Wt,[n.contact.avatar?(c(),f("img",{key:0,src:n.contact.avatar,alt:n.contact.displayName,loading:"lazy",decoding:"async",class:"h-16 w-16 rounded-2xl object-cover shadow-sm ring-2 ring-white dark:ring-page-dark"},null,8,Xt)):(c(),f("div",Zt,o(P(n.contact)),1))]),a("div",Jt,[a("h2",ea,o(n.contact.displayName),1),a("p",ta,o(n.contact.platform)+" · "+o(n.contact.platformId),1),A.value.length>0?(c(),f("div",aa,[(c(!0),f(q,null,he(A.value.slice(0,4),x=>(c(),f("span",{key:x,class:"max-w-full truncate rounded-md bg-gray-100 px-2 py-0.5 text-[11px] font-medium text-gray-500 dark:bg-white/5 dark:text-gray-400"},o(x),1))),128))])):E("",!0),B.value?(c(),f("div",na,[I.value?(c(),re(w,{key:0,icon:"i-lucide-user-plus",color:"primary",variant:"soft",size:"xs",loading:n.isFriendActionLoading,onClick:v[1]||(v[1]=x=>S("markFriend"))},{default:T(()=>[J(o(r(C)("contacts.actions.markFriend")),1)]),_:1},8,["loading"])):F.value?(c(),re(w,{key:1,icon:"i-lucide-user-minus",color:"neutral",variant:"soft",size:"xs",loading:n.isFriendActionLoading,onClick:v[2]||(v[2]=x=>S("unmarkFriend"))},{default:T(()=>[J(o(r(C)("contacts.actions.unmarkFriend")),1)]),_:1},8,["loading"])):E("",!0)])):E("",!0)])])]),a("section",sa,[a("h3",oa,o(r(C)("contacts.detail.sources")),1),a("div",ra,[(c(!0),f(q,null,he(n.contact.sourceSessions,x=>(c(),f("div",{key:x.id,class:"w-full rounded-2xl border border-gray-100 bg-white/40 px-3.5 py-3 text-left transition duration-300 hover:border-gray-200 dark:border-white/5 dark:bg-page-dark/10 dark:hover:border-white/10"},[a("div",ia,[a("span",la,o(x.name),1),a("span",ca,o(x.type==="private"?r(C)("contacts.detail.sourceType.private"):r(C)("contacts.detail.sourceType.group")),1)]),a("div",da,o(x.privateMessageCount!=null?r(C)("contacts.metrics.privateMessages",{count:x.privateMessageCount}):r(C)("contacts.metrics.groupSignals",{count:x.coOccurrenceCount??0})),1),a("div",ua,[y(w,{icon:"i-lucide-arrow-up-right",color:"primary",variant:"soft",size:"xs",onClick:V=>S("openSource",x)},{default:T(()=>[J(o(r(C)("contacts.actions.openSourceSession")),1)]),_:1},8,["onClick"]),y(w,{icon:"i-lucide-messages-square",color:"primary",variant:"soft",size:"xs",onClick:V=>S("viewSourceRecords",x)},{default:T(()=>[J(o(r(C)("contacts.actions.viewSourceRecords")),1)]),_:1},8,["onClick"])])]))),128))])])])):E("",!0)])):E("",!0)]),_:1})}}}),ma=De(fa,[["__scopeId","data-v-4df1b50a"]]),pa={key:0,class:"flex items-center gap-3.5 rounded-2xl border border-amber-200/60 bg-amber-50/40 p-4 text-sm text-amber-800 backdrop-blur-sm dark:border-amber-900/40 dark:bg-amber-950/10 dark:text-amber-200"},ga={class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-amber-100/80 dark:bg-amber-950/50"},va={class:"font-medium"},xa={key:1,class:"flex flex-col gap-4 rounded-2xl border border-zinc-200/80 bg-zinc-50/60 p-4 text-sm text-zinc-700 backdrop-blur-sm dark:border-zinc-800/80 dark:bg-page-dark/40 dark:text-zinc-300 sm:flex-row sm:items-center sm:justify-between"},ya={class:"flex items-center gap-3.5"},ha={class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-zinc-100 dark:bg-zinc-800/80"},ka={class:"font-medium"},ba={class:"flex items-center shrink-0 self-end sm:self-center"},_a={key:2,class:"flex flex-col gap-4 rounded-2xl border border-red-200/60 bg-red-50/40 p-4 text-sm text-red-700 backdrop-blur-sm dark:border-red-900/40 dark:bg-red-950/10 dark:text-red-300 sm:flex-row sm:items-center sm:justify-between"},Sa={class:"flex min-w-0 items-center gap-3.5"},wa={class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-red-100/80 dark:bg-red-950/50"},Ca={class:"truncate font-medium"},Ta={class:"flex items-center shrink-0 self-end sm:self-center"},La=ke({__name:"ContactsStatusBlocks",props:{showDisabledNotice:{type:Boolean},activePrivateSessionCount:{},cacheStatus:{},taskFailed:{type:Boolean},taskLastError:{},isTaskRunning:{type:Boolean},isRecomputing:{type:Boolean}},emits:["recompute"],setup(n,{emit:s}){const h=s,{t:S}=be();return(C,A)=>{const I=Se,F=_e;return c(),f(q,null,[n.showDisabledNotice?(c(),f("div",pa,[a("div",ga,[y(I,{name:"i-lucide-alert-triangle",class:"h-5 w-5 text-amber-500"})]),a("span",va,o(r(S)("contacts.disabled",{count:n.activePrivateSessionCount})),1)])):E("",!0),n.cacheStatus==="stale"&&!n.isTaskRunning?(c(),f("div",xa,[a("div",ya,[a("div",ha,[y(I,{name:"i-lucide-history",class:"h-5 w-5 text-zinc-500 dark:text-zinc-400"})]),a("span",ka,o(r(S)("contacts.stale.inline")),1)]),a("div",ba,[y(F,{size:"sm",color:"primary",variant:"soft",class:"rounded-xl px-4 font-medium",loading:n.isRecomputing||n.isTaskRunning,disabled:n.isTaskRunning,onClick:A[0]||(A[0]=B=>h("recompute"))},{default:T(()=>[J(o(r(S)("contacts.actions.recompute")),1)]),_:1},8,["loading","disabled"])])])):E("",!0),n.taskFailed?(c(),f("div",_a,[a("div",Sa,[a("div",wa,[y(I,{name:"i-lucide-alert-circle",class:"h-5 w-5 text-red-500"})]),a("span",Ca,o(n.taskLastError||r(S)("contacts.task.failed")),1)]),a("div",Ta,[y(F,{size:"sm",color:"error",variant:"soft",class:"rounded-xl px-4 font-medium",onClick:A[1]||(A[1]=B=>h("recompute"))},{default:T(()=>[J(o(r(S)("contacts.task.retry")),1)]),_:1})])])):E("",!0)],64)}}});function $a(n){return!!n.diagnostics&&!n.showLoadingState&&!n.diagnostics.contactsEnabled}function Ia(n){return n.previousScrollTop}function Ve(n){return n!=="friend"}function Fa(n){return n.friendInitialLoading||n.groupmateInitialLoading}function Pa(n){return n.activeSection==="non_friend"||n.friendSectionReady}function Ma(n){return n.friendInitialLoading||n.groupmateInitialLoading||n.completionProgressVisible===!0||n.activeTaskStatus==="running"||n.friendTaskStatus==="running"||n.groupmateTaskStatus==="running"}function za(n){return n.previousStatus==="running"&&n.nextStatus==="succeeded"&&n.nextTotalSessions>0&&n.nextProcessedSessions>=n.nextTotalSessions&&n.previousProcessedSessions<n.nextTotalSessions}function Aa(n){return n.friendTaskStatus==="running"||n.groupmateTaskStatus==="running"?["friend","non_friend"]:[n.activePool]}function Na(n){const s=[{type:"section",key:"section:friend",pool:"friend"}];return s.push(...n.friends.map(h=>({type:"contact",key:h.key,pool:"friend",contact:h}))),n.friendLoadingMore&&s.push({type:"loading",key:"loading:friend",pool:"friend"}),n.showGroupSection&&(s.push({type:"section",key:"section:non_friend",pool:"non_friend"}),s.push(...n.groupmates.map(h=>({type:"contact",key:h.key,pool:"non_friend",contact:h}))),n.groupmateLoadingMore&&s.push({type:"loading",key:"loading:non_friend",pool:"non_friend"})),s}const Ea={class:"flex min-h-0 flex-1 flex-col text-gray-900 dark:bg-page-dark dark:text-gray-100"},Ba={class:"flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2 py-1.5 xl:py-0"},Va={class:"flex min-h-0 flex-1 overflow-hidden"},ja={class:"min-h-0 min-w-0 flex-1 overflow-hidden"},Da={class:"flex h-full min-h-0 w-full flex-col gap-6 px-6 pb-3 pt-4"},Ga={class:"flex min-h-0 flex-1 flex-col gap-4"},Oa={key:1,class:"rounded-2xl border border-red-200 bg-red-50/50 p-4 text-sm text-red-700 dark:border-red-900/30 dark:bg-red-950/20 dark:text-red-300"},Ua={key:2,class:"min-h-0 flex-1"},qa={key:0,class:"flex flex-col items-center justify-center rounded-3xl border border-dashed border-gray-250 p-16 text-center dark:border-white/5"},Ra={class:"flex h-12 w-12 items-center justify-center rounded-2xl bg-gray-50 text-gray-400 dark:bg-white/5 dark:text-gray-500"},Ha={class:"mt-4 text-sm font-medium text-gray-400 dark:text-gray-500"},Ka={class:"shrink-0 overflow-hidden border-b border-gray-100 bg-white dark:border-white/5 dark:bg-[#202024]"},Ya={class:"flex min-w-0 items-center justify-end gap-1 text-right"},Qa={class:"truncate"},Wa={class:"max-w-[280px] whitespace-normal break-words text-left text-xs leading-5"},Xa={class:"flex min-w-0 items-center justify-end gap-1 text-right"},Za={class:"truncate"},Ja={class:"max-w-[280px] whitespace-normal break-words text-left text-xs leading-5"},en=["aria-label","onClick"],tn={class:"group flex min-w-0 w-full items-center gap-3"},an={class:"relative shrink-0 overflow-hidden rounded-lg"},nn=["src","alt"],sn={key:1,class:"flex h-10 w-10 items-center justify-center bg-gradient-to-br from-gray-50 to-gray-100 text-sm font-bold text-gray-500 transition-transform duration-300 group-hover:scale-105 dark:from-gray-800 dark:to-gray-800/60 dark:text-gray-400"},on={class:"min-w-0 flex-1"},rn={class:"flex min-w-0 items-center gap-1"},ln={class:"mt-1 inline-flex items-center rounded bg-gray-50 px-1.5 py-0.5 font-mono text-[9px] font-semibold uppercase tracking-wider text-gray-400 dark:bg-white/5 dark:text-gray-500"},cn={class:"contact-table-value"},dn={class:"contact-table-value"},un={class:"contact-table-value"},fn={class:"contact-table-value"},mn=100,je=69,pn=20,gn=ke({__name:"index",setup(n){const{t:s}=be(),h=Vt(),S=Lt(),C=$t(),A=Nt(),I=b(!1),F=b(""),B=b(""),P=b("1y"),p=b("friend"),v=b(null),w=b(null),R=b(!1),x=b(!1),V=b(null),fe=b(!1),H=b(null),ee=b(null),te=b(null),M=b(null),ae={friend:null,non_friend:null},K=b(!1),Y=b(null),we=b(0),ne=b({});function me(){return{items:[],response:null,page:0,total:0,hasMore:!1,isLoadingInitial:!1,isLoadingMore:!1,error:"",requestId:0,scrollOffset:0}}const j=b({friend:me(),non_friend:me()}),ie=u(()=>j.value[p.value]),k=u(()=>j.value.friend),m=u(()=>j.value.non_friend),Ce=u(()=>!!k.value.response&&!k.value.hasMore&&!k.value.isLoadingInitial),pe=u(()=>Pa({activeSection:p.value,friendSectionReady:Ce.value,groupmateHasItems:m.value.items.length>0,groupmateLoading:m.value.isLoadingInitial||m.value.isLoadingMore})),N=u(()=>Na({friends:k.value.items,groupmates:m.value.items,showGroupSection:pe.value,friendLoadingMore:k.value.isLoadingMore,groupmateLoadingMore:m.value.isLoadingInitial||m.value.isLoadingMore})),le=u(()=>ie.value.response??k.value.response??m.value.response),ge=u(()=>[ie.value.response,k.value.response,m.value.response].find(e=>e?.task?.status==="running")??le.value),Ge=u(()=>k.value.items.length+m.value.items.length>0),Oe=u(()=>!Ge.value&&!!k.value.response&&!!m.value.response&&!k.value.hasMore&&!m.value.hasMore&&!k.value.isLoadingInitial&&!m.value.isLoadingInitial),Te=u(()=>k.value.error||m.value.error),ve=u(()=>le.value?.diagnostics),z=u(()=>ge.value?.task),ce=u(()=>H.value??z.value),Q=u(()=>z.value?.status==="running"),Ue=u(()=>z.value?.status==="failed"),Le=u(()=>Ma({activeTaskStatus:ie.value.response?.task?.status,friendTaskStatus:k.value.response?.task?.status,groupmateTaskStatus:m.value.response?.task?.status,friendInitialLoading:k.value.isLoadingInitial,groupmateInitialLoading:m.value.isLoadingInitial,completionProgressVisible:H.value!==null})),qe=u(()=>H.value?s("contacts.task.running",{current:ce.value?.processedSessions??0,total:ce.value?.totalSessions??0}):ge.value?.cache.status==="stale"&&Q.value?s("contacts.task.updating"):ge.value?.cache.status==="missing"&&Q.value?s("contacts.task.running",{current:ce.value?.processedSessions??0,total:ce.value?.totalSessions??0}):s("common.loading")),Re=u(()=>$a({diagnostics:ve.value,showLoadingState:Le.value})),se=u(()=>{const e=le.value?.stats,t=e?.friendsTotal??0,i=e?.nonFriendsTotal??0;return{total:t+i,friends:t,nonFriends:i}}),He=u(()=>[{id:"friend",label:`${s("contacts.tabs.friends")} ${se.value.friends.toLocaleString()}`,icon:"i-heroicons-user"},{id:"non_friend",label:`${s("contacts.tabs.groupContacts")} ${se.value.nonFriends.toLocaleString()}`,icon:"i-heroicons-user-group"}]),Ke=u(()=>Et.map(e=>({label:s(`contacts.timeRange.${e}`),value:e}))),de=It(u(()=>({count:N.value.length,getScrollElement:()=>Y.value,estimateSize:e=>Je(N.value[e]),overscan:10,getItemKey:e=>N.value[e]?.key??e}))),xe=u(()=>de.value.getVirtualItems()),Ye=u(()=>de.value.getTotalSize());O(F,e=>{te.value&&clearTimeout(te.value),te.value=setTimeout(()=>{B.value=e.trim()},300)}),O(()=>z.value?.status,()=>Pe()),O(()=>({status:z.value?.status,processedSessions:z.value?.processedSessions??0,totalSessions:z.value?.totalSessions??0}),(e,t)=>{e.status==="running"&&ue(),z.value&&za({previousStatus:t?.status,nextStatus:e.status,previousProcessedSessions:t?.processedSessions??0,nextProcessedSessions:e.processedSessions,nextTotalSessions:e.totalSessions})&&rt(z.value)}),O([B,P],()=>{nt(),$e()}),O(()=>N.value.length,()=>{de.value.measure()}),O(xe,()=>{Ze()},{flush:"post"}),O(N,()=>{v.value&&(k.value.items.some(e=>e.key===v.value)||m.value.items.some(e=>e.key===v.value)||oe())}),Ft(()=>{$e()}),Pt(()=>{Me(),ue(),te.value&&clearTimeout(te.value),M.value&&clearTimeout(M.value)});async function D(e,t){const i=W(e,1,{...t,replace:!0});ae[e]=i;try{await i}finally{ae[e]===i&&(ae[e]=null)}}async function $e(){await Promise.all([D("friend"),D("non_friend")])}async function Ie(e){const t=j.value[e];!t.hasMore||t.isLoadingInitial||t.isLoadingMore||await W(e,t.page+1,{acceptStale:!0,replace:!1})}async function W(e,t,i){const d=j.value[e],_=i?.replace!==!1,L=d.requestId+1;d.requestId=L,d.error="",i?.silent||(_?d.isLoadingInitial=d.items.length===0:d.isLoadingMore=!0);try{const $={acceptStale:i?.acceptStale,timeRangePreset:P.value,pool:e,page:t,pageSize:mn,query:B.value||void 0},l=i?.force?await S.recomputeContacts($):await S.getContacts($);if(d.requestId!==L)return;We(d,l,_,{preserveExisting:i?.preserveExisting}),Pe()}catch($){if(d.requestId===L&&(d.error=String($)),i?.throwOnError)throw $}finally{d.requestId===L&&(d.isLoadingInitial=!1,d.isLoadingMore=!1)}}async function Fe(){I.value=!0;try{await W(p.value,1,{acceptStale:!0,force:!0,replace:!0,throwOnError:!0}),h.success(s("contacts.toast.recomputeStarted"))}catch(e){h.fail(s("contacts.toast.recomputeFailed"),{description:String(e)})}finally{I.value=!1}}const Qe=u(()=>({title:s("layout.relationships"),description:s("contacts.subtitle",{count:ve.value?.privateSessionCount??0}),icon:"i-lucide-users",iconClass:"bg-primary-600 text-white dark:bg-primary-500 dark:text-white shadow-sm",action:{label:s("contacts.actions.recompute"),icon:"i-lucide-refresh-cw",loading:I.value,disabled:Q.value,class:"border border-pink-100 hover:border-pink-200 dark:border-pink-950/30 dark:hover:border-pink-900/50",onClick:Fe},stats:[{id:"total",label:s("contacts.stats.total"),value:se.value.total.toLocaleString()},{id:"friends",label:s("contacts.stats.friends"),value:se.value.friends.toLocaleString()},{id:"nonFriends",label:s("contacts.stats.nonFriends"),value:se.value.nonFriends.toLocaleString(),dividerBefore:!0}]}));Ot(Qe);function We(e,t,i,d){const _=e.response?.cache.signature,L=t.cache.signature,$=!!_&&!!L&&_!==L;if(e.response=t,e.total=t.pagination.total,d?.preserveExisting&&!$&&e.items.length>0){e.hasMore=e.items.length<t.pagination.total;return}e.page=t.pagination.page,e.hasMore=t.pagination.hasMore,e.items=i||$?t.contacts:Xe(e.items,t.contacts),$&&oe()}function Xe(e,t){const i=new Set(e.map(_=>_.key)),d=[...e];for(const _ of t)i.has(_.key)||(i.add(_.key),d.push(_));return d}function Ze(){const t=xe.value.at(-1);if(!t||t.index<N.value.length-pn)return;if(G(t.index).pool==="friend"){if(k.value.hasMore){Ie("friend");return}Ce.value&&!m.value.response&&!m.value.isLoadingInitial&&D("non_friend");return}if(!m.value.response&&!m.value.isLoadingInitial){D("non_friend");return}m.value.hasMore&&Ie("non_friend")}function G(e){return N.value[e]}function g(e){return G(e)}function Je(e){return e?.type==="section"?e.pool==="non_friend"?42:1:e?.type==="loading"?44:je}async function et(e){const t=e==="non_friend"?"non_friend":"friend";p.value=t,K.value=!0,M.value&&clearTimeout(M.value),t==="non_friend"&&await tt(),await Be();const i=N.value.findIndex(d=>d.type==="section"&&d.pool===t);if(i>=0){const d=t==="non_friend"?Math.min(i+1,N.value.length-1):i;de.value.scrollToIndex(d,{align:"start"})}M.value=setTimeout(()=>{K.value=!1,p.value=t},350)}async function tt(){!m.value.response&&!m.value.isLoadingInitial&&await D("non_friend",{acceptStale:!0}),await at()}async function at(e){if(!Fa({friendInitialLoading:k.value.isLoadingInitial,groupmateInitialLoading:m.value.isLoadingInitial}))return;const t=[ae.friend,ae.non_friend].filter(i=>!!i);t.length!==0&&await Promise.allSettled(t)}function nt(){K.value=!1,M.value&&clearTimeout(M.value),ue();for(const e of["friend","non_friend"])j.value[e].requestId++,j.value[e]=me();oe(),ne.value={},Y.value&&(Y.value.scrollTop=0)}function Pe(){Q.value?st():Me()}function st(){V.value||(V.value=setInterval(()=>{ot()},1500))}async function ot(){if(!fe.value){fe.value=!0;try{const e=Aa({activePool:p.value,friendTaskStatus:k.value.response?.task?.status,groupmateTaskStatus:m.value.response?.task?.status});await Promise.all(e.map(t=>W(t,1,{acceptStale:!0,replace:!0,preserveExisting:!0,silent:!0})))}finally{fe.value=!1}}}function Me(){V.value&&(clearInterval(V.value),V.value=null)}function rt(e){ue(),H.value={...e,processedSessions:e.totalSessions},ee.value=setTimeout(()=>{H.value=null,ee.value=null},450)}function ue(){ee.value&&(clearTimeout(ee.value),ee.value=null),H.value=null}async function it(e){v.value=e.key,await ze(e.key)}async function ze(e,t){const i=`${P.value}:${e}`,d=ne.value[i];if(d&&!t?.skipCache){w.value=d;return}w.value=null,R.value=!0;try{const _=await S.getContactDetail(e,{acceptStale:!0,timeRangePreset:P.value});if(v.value!==e)return;w.value=_.contact,_.contact&&(ne.value={...ne.value,[i]:_.contact})}catch(_){h.fail(s("contacts.toast.recomputeFailed"),{description:String(_)})}finally{v.value===e&&(R.value=!1)}}async function lt(){const e=w.value?.key;if(!(!e||x.value)){x.value=!0;try{await S.markContactAsFriend(e,{timeRangePreset:P.value}),h.success(s("contacts.toast.markFriendSucceeded")),await Ae(e)}catch(t){h.fail(s("contacts.toast.markFriendFailed"),{description:String(t)})}finally{x.value=!1}}}async function ct(){const e=w.value?.key;if(!(!e||x.value)){x.value=!0;try{await S.unmarkContactAsFriend(e,{timeRangePreset:P.value}),h.success(s("contacts.toast.unmarkFriendSucceeded")),await Ae(e)}catch(t){h.fail(s("contacts.toast.unmarkFriendFailed"),{description:String(t)})}finally{x.value=!1}}}async function Ae(e){const t=p.value,i=Y.value?.scrollTop??0,d=w.value?.pool??t;if(ne.value={},d==="non_friend"){dt(e),oe(),await Ee(t,i),await ut();return}await Promise.all([D("friend",{acceptStale:!0}),D("non_friend",{acceptStale:!0})]),v.value=e,await ze(e,{skipCache:!0}),await Ee(t,i)}function dt(e){const t=m.value,i=t.items.filter(d=>d.key!==e);i.length!==t.items.length&&(t.items=i,t.total=Math.max(0,t.total-1),t.hasMore=t.items.length<t.total)}async function ut(){await Promise.all([W("friend",1,{acceptStale:!0,replace:!0,preserveExisting:Ve("friend"),silent:!0}),W("non_friend",1,{acceptStale:!0,replace:!0,preserveExisting:Ve("non_friend"),silent:!0})])}function oe(){v.value=null,w.value=null,R.value=!1}function ft(e){return e.friendSource==="manual"?s("contacts.pool.manualFriend"):e.pool==="friend"?s("contacts.pool.friend"):s("contacts.pool.nonFriend")}function mt(e){return e.friendSource==="manual"?"bg-indigo-50 text-indigo-600 dark:bg-indigo-500/10 dark:text-indigo-400 border border-indigo-100/50 dark:border-indigo-500/20":e.pool==="friend"?"bg-sky-50 text-sky-600 dark:bg-sky-500/10 dark:text-sky-400 border border-sky-100/50 dark:border-sky-500/20":"bg-emerald-50 text-emerald-600 dark:bg-emerald-500/10 dark:text-emerald-400 border border-emerald-100/50 dark:border-emerald-500/20"}function ye(e){return e==="friend"?"contact-table-grid--friends":"contact-table-grid--group-contacts"}function pt(e,t){return X(e==="friend"?t.scoreBreakdown.privateMessageCount:t.scoreBreakdown.commonGroupCount)}function gt(e,t){return X(e==="friend"?t.scoreBreakdown.activePrivateMonths:t.scoreBreakdown.coOccurrenceCount)}function vt(e,t){return X(e==="friend"?t.scoreBreakdown.commonGroupCount:t.scoreBreakdown.replyInteractionCount)}function xt(e){return(e.displayName||e.platformId||"?").slice(0,1)}function yt(e){return Math.round(e*100).toString()}function ht(e){return e.friendSource==="manual"?"-":yt(e.score)}function X(e){return String(e??0)}function kt(e){return e?new Date(e*1e3).toLocaleDateString():s("contacts.emptyValue")}function bt(e){A.push({name:e.type==="private"?"private-chat":"group-chat",params:{id:e.id}})}function _t(e){C.openChatRecordDrawer({sessionId:e.id})}function St(e){const t=e.target;if(ie.value.scrollOffset=t.scrollTop,we.value=t.scrollLeft,K.value)return;const i=wt(t);p.value!==i&&(p.value=i)}function wt(e){return pe.value&&e.scrollTop>=Ne()?"non_friend":"friend"}function Ne(){return 1+k.value.items.length*je+(k.value.isLoadingMore?44:0)}async function Ee(e,t){p.value=e,await Be();const i=Y.value;i&&(K.value=!0,M.value&&clearTimeout(M.value),i.scrollTop=Ia({previousScrollTop:t,groupSectionScrollTop:Ct()}),M.value=setTimeout(()=>{K.value=!1,p.value=e},150))}function Ct(){return pe.value?Ne():null}return(e,t)=>{const i=Bt,d=_e,_=Mt,L=Se,$=At;return c(),f("div",Ea,[y(r(Gt),{modelValue:p.value,"onUpdate:modelValue":t[3]||(t[3]=l=>p.value=l),items:He.value,"persist-key":"contactsTab",onChange:et},{right:T(()=>[a("div",Ba,[y(i,{modelValue:P.value,"onUpdate:modelValue":t[0]||(t[0]=l=>P.value=l),items:Ke.value,content:!1,size:"xs",class:"min-w-max gap-0 bg-transparent dark:bg-transparent shadow-none",disabled:Q.value},null,8,["modelValue","items","disabled"]),y(_,{modelValue:F.value,"onUpdate:modelValue":t[2]||(t[2]=l=>F.value=l),icon:"i-lucide-search",placeholder:r(s)("contacts.search"),size:"sm",class:"w-full sm:w-36"},zt({_:2},[F.value?{name:"trailing",fn:T(()=>[y(d,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":r(s)("contacts.actions.clearSearch"),onClick:t[1]||(t[1]=l=>F.value="")},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"])])]),_:1},8,["modelValue","items"]),a("div",Va,[a("main",ja,[a("div",Da,[y(La,{"show-disabled-notice":Re.value,"active-private-session-count":ve.value?.activePrivateSessionCount??0,"cache-status":le.value?.cache.status,"task-failed":Ue.value,"task-last-error":z.value?.lastError,"is-task-running":Q.value,"is-recomputing":I.value,onRecompute:Fe},null,8,["show-disabled-notice","active-private-session-count","cache-status","task-failed","task-last-error","is-task-running","is-recomputing"]),a("section",Ga,[Le.value?(c(),re(r(Dt),{key:0,text:qe.value,height:"py-16"},null,8,["text"])):Te.value?(c(),f("div",Oa,o(Te.value),1)):(c(),f("div",Ua,[Oe.value?(c(),f("div",qa,[a("div",Ra,[y(L,{name:"i-lucide-users-2",class:"h-6 w-6"})]),a("p",Ha,o(r(s)("contacts.empty")),1)])):(c(),re(r(jt),{key:1,shadow:!1,class:"flex h-full min-w-0 flex-col"},{default:T(()=>[a("div",Ka,[a("div",{class:U(["contact-table-grid min-w-[720px] px-4 py-3 text-[11px] font-bold uppercase tracking-wider text-gray-400 dark:text-gray-500",ye(p.value)]),style:Z({transform:`translateX(-${we.value}px)`})},[a("span",null,o(r(s)("contacts.table.contact")),1),a("span",null,o(r(s)("contacts.table.status")),1),p.value==="friend"?(c(),f(q,{key:0},[a("span",null,o(r(s)("contacts.metrics.privateMessagesLabel")),1),a("span",null,o(r(s)("contacts.metrics.activeMonths")),1),a("span",null,o(r(s)("contacts.metrics.commonGroups")),1)],64)):(c(),f(q,{key:1},[a("span",null,o(r(s)("contacts.metrics.commonGroups")),1),a("span",null,o(r(s)("contacts.metrics.coOccurrence")),1),a("span",null,o(r(s)("contacts.metrics.replies")),1)],64)),a("span",null,o(r(s)("contacts.metrics.lastInteractionShort")),1),a("span",Ya,[a("span",Qa,o(r(s)("contacts.detail.score")),1),y($,{content:{side:"top"},ui:{content:"h-auto"}},{content:T(()=>[a("div",Wa,o(r(s)("contacts.detail.scoreHelp")),1)]),default:T(()=>[y(L,{name:"i-lucide-circle-help",class:"h-3.5 w-3.5 shrink-0 text-gray-350 transition-colors hover:text-primary-500 dark:text-gray-600 dark:hover:text-primary-400"})]),_:1})])],6)]),a("div",{ref_key:"scrollContainerRef",ref:Y,class:"min-h-0 flex-1 overflow-auto scrollbar-hide",onScroll:St},[a("div",{class:"relative min-w-[720px]",style:Z({height:`${Ye.value}px`})},[(c(!0),f(q,null,he(xe.value,l=>(c(),f(q,{key:String(l.key)},[G(l.index).type==="section"&&G(l.index).pool==="friend"?(c(),f("div",{key:0,class:"absolute left-0 top-0 h-px w-full",style:Z({transform:`translateY(${l.start}px)`}),"aria-hidden":"true"},null,4)):G(l.index).type==="section"?(c(),f("div",{key:1,class:U(["contact-table-grid absolute left-0 top-0 w-full border-b border-gray-100 bg-white px-4 py-3 text-[11px] font-bold uppercase tracking-wider text-gray-400 dark:border-white/5 dark:bg-[#202024] dark:text-gray-500",ye(G(l.index).pool)]),style:Z({transform:`translateY(${l.start}px)`})},[a("span",null,o(r(s)("contacts.table.contact")),1),a("span",null,o(r(s)("contacts.table.status")),1),a("span",null,o(r(s)("contacts.metrics.commonGroups")),1),a("span",null,o(r(s)("contacts.metrics.coOccurrence")),1),a("span",null,o(r(s)("contacts.metrics.replies")),1),a("span",null,o(r(s)("contacts.metrics.lastInteractionShort")),1),a("span",Xa,[a("span",Za,o(r(s)("contacts.detail.score")),1),y($,{content:{side:"top"},ui:{content:"h-auto"}},{content:T(()=>[a("div",Ja,o(r(s)("contacts.detail.scoreHelp")),1)]),default:T(()=>[y(L,{name:"i-lucide-circle-help",class:"h-3.5 w-3.5 shrink-0 text-gray-350 transition-colors hover:text-primary-500 dark:text-gray-600 dark:hover:text-primary-400"})]),_:1})])],6)):G(l.index).type==="contact"?(c(),f("button",{key:2,type:"button",class:U(["contact-table-grid absolute left-0 top-0 w-full px-4 py-3.5 text-left outline-none transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",[ye(g(l.index).pool),v.value===g(l.index).contact.key?"border-b border-primary-500/20 bg-primary-500/[0.03] dark:bg-primary-500/[0.04]":"border-b border-gray-100/50 bg-transparent hover:bg-gray-50/50 dark:border-white/5 dark:hover:bg-gray-800/20"]]),style:Z({transform:`translateY(${l.start}px)`}),"aria-label":r(s)("contacts.actions.viewDetail",{name:g(l.index).contact.displayName}),onClick:vn=>it(g(l.index).contact)},[a("div",{class:U(["absolute left-0 top-1/4 h-1/2 w-1 rounded-r-full bg-primary-500 transition-all duration-300",v.value===g(l.index).contact.key?"scale-100 opacity-100":"scale-75 opacity-0"])},null,2),a("div",tn,[a("div",an,[g(l.index).contact.avatar?(c(),f("img",{key:0,src:g(l.index).contact.avatar??"",alt:g(l.index).contact.displayName,loading:"lazy",decoding:"async",class:"h-10 w-10 object-cover transition-transform duration-300 group-hover:scale-105"},null,8,nn)):(c(),f("div",sn,o(xt(g(l.index).contact)),1))]),a("div",on,[a("div",rn,[a("span",{class:U(["truncate text-sm font-semibold leading-tight tracking-tight text-gray-800 transition-colors group-hover:text-primary-600 group-focus-visible:text-primary-600 dark:text-gray-200 dark:group-hover:text-primary-400 dark:group-focus-visible:text-primary-400",v.value===g(l.index).contact.key?"text-primary-600 dark:text-primary-400":""])},o(g(l.index).contact.displayName),3)]),a("span",ln,o(g(l.index).contact.platform),1)])]),a("span",{class:U(["inline-flex w-fit justify-self-start rounded-lg px-2.5 py-1 text-xs font-semibold",mt(g(l.index).contact)])},o(ft(g(l.index).contact)),3),a("span",cn,o(pt(g(l.index).pool,g(l.index).contact)),1),a("span",dn,o(gt(g(l.index).pool,g(l.index).contact)),1),a("span",un,o(vt(g(l.index).pool,g(l.index).contact)),1),a("span",fn,o(kt(g(l.index).contact.lastInteractionTs)),1),a("span",{class:U(["inline-flex h-7 w-12 items-center justify-center justify-self-end rounded-lg font-mono text-xs font-bold tabular-nums transition-colors duration-200",v.value===g(l.index).contact.key?"bg-primary-500 text-white":"bg-primary-50 text-primary-600 dark:bg-primary-500/10 dark:text-primary-400"])},o(ht(g(l.index).contact)),3)],14,en)):(c(),f("div",{key:3,class:"absolute left-0 top-0 flex h-11 w-full items-center justify-center gap-2 border-b border-gray-100/50 text-xs font-semibold text-gray-500 dark:border-white/5 dark:text-gray-400",style:Z({transform:`translateY(${l.start}px)`})},[y(L,{name:"i-lucide-loader-2",class:"h-4 w-4 animate-spin"}),a("span",null,o(r(s)("common.loading")),1)],4))],64))),128))],4)],544)]),_:1}))]))])])]),y(ma,{"selected-key":v.value,contact:w.value,"is-loading":R.value,"is-friend-action-loading":x.value,onClear:oe,onOpenSource:bt,onViewSourceRecords:_t,onMarkFriend:lt,onUnmarkFriend:ct},null,8,["selected-key","contact","is-loading","is-friend-action-loading"])])])}}}),Tn=De(gn,[["__scopeId","data-v-30c675a1"]]);export{Tn as default};
@@ -1 +0,0 @@
1
- import{a as v,a0 as _,i as b,D as t,b as i,f as e,o as r,Y as y,c,av as k,au as x,x as w,aw as S,g as u,at as V,ad as R}from"./index-D5m0P4ss.js";import{P as C}from"./PageHeader-CEe0xTl3.js";import{_ as I}from"./TimeSelect.vue_vue_type_script_setup_true_lang-dEdo6CqM.js";import{_ as B}from"./PageTabs.vue_vue_type_script_setup_true_lang-D2DZrrnv.js";import{p as D}from"./annual-summary-time-range-CmrAqcuj.js";import"./vendor-snapdom--nZvo8Sg.js";import"./Select-Cm4I8u9n.js";import"./useFormControl-B-aXrJZN.js";import"./clamp-jFYhBC76.js";import"./dateFormat-DXuDxIye.js";import"./Tabs-Dqwkh3Ea.js";import"./Tabs-OrJkANIA.js";import"./RovingFocusItem-B2y6BG1a.js";import"./DatePicker.vue_vue_type_script_setup_true_lang-C4CsoIlq.js";const P={class:"flex h-full flex-col text-gray-900 dark:bg-page-dark dark:text-gray-100",style:{"padding-top":"var(--titlebar-area-height)"}},T=v({__name:"index",setup($){const{t:a}=_(),l=V(),d=D(),{modelValue:n,componentKey:p,initialState:g,rangeSource:h}=d,s=u(()=>l.name==="insight-time-investment"?"time-investment":l.name==="insight-relationship-changes"?"relationship-changes":"annual-summary"),f=u(()=>[{id:"annual-summary",label:a("insight.tabs.annualSummary"),icon:"i-lucide-calendar-range",to:{name:"insight-annual-summary"}},{id:"time-investment",label:a("insight.tabs.timeInvestment"),icon:"i-lucide-clock-3",to:{name:"insight-time-investment"}},{id:"relationship-changes",label:a("insight.tabs.relationshipChanges"),icon:"i-lucide-git-compare-arrows",to:{name:"insight-relationship-changes"}}]);return(z,m)=>(r(),b("div",P,[t(C,{title:e(a)("insight.title"),icon:"i-heroicons-presentation-chart-bar","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",size:"compact"},{default:i(()=>[t(e(B),{class:"mt-3 pb-1.5","model-value":s.value,items:f.value,"aria-label":e(a)("insight.tabs.nav")},y({_:2},[s.value==="annual-summary"?{name:"right",fn:i(()=>[(r(),c(I,{key:e(p),modelValue:e(n),"onUpdate:modelValue":m[0]||(m[0]=o=>k(n)?n.value=o:null),"range-source":e(h),"allowed-modes":["recent","year"],"allowed-recent-days":[365],"initial-state":e(g)},null,8,["modelValue","range-source","initial-state"]))]),key:"0"}:void 0]),1032,["model-value","items","aria-label"])]),_:1},8,["title"]),t(e(S),null,{default:i(({Component:o})=>[t(x,{name:"insight-tab-slide",mode:"out-in"},{default:i(()=>[(r(),c(w(o),{key:s.value}))]),_:2},1024)]),_:1})]))}}),O=R(T,[["__scopeId","data-v-a94720f4"]]);export{O as default};
@@ -1 +0,0 @@
1
- import{a,a0 as n,i as c,l as e,D as o,v as r,f as i,o as _,_ as m}from"./index-D5m0P4ss.js";import"./vendor-snapdom--nZvo8Sg.js";const l={class:"flex min-h-0 flex-1 items-center justify-center px-6 py-12"},p={class:"text-center text-sm text-gray-500 dark:text-gray-400"},k=a({__name:"index",setup(x){const{t}=n();return(d,f)=>{const s=m;return _(),c("main",l,[e("div",p,[o(s,{name:"i-lucide-clock-3",class:"mx-auto mb-3 h-8 w-8 text-pink-500"}),e("p",null,r(i(t)("insight.reserved")),1)])])}}});export{k as default};