chatlab-cli 0.36.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 (193) hide show
  1. package/README.md +7 -7
  2. package/dist/{chat-command-SXW67RF7.mjs → chat-command-XPJ43KSW.mjs} +10 -10
  3. package/dist/chat-command-XPJ43KSW.mjs.map +1 -0
  4. package/dist/{chunk-BSGLH6G3.mjs → chunk-2JPFBIAG.mjs} +144 -79
  5. package/dist/chunk-2JPFBIAG.mjs.map +1 -0
  6. package/dist/{chunk-VDWI4A4U.mjs → chunk-5MJO4AJB.mjs} +2 -2
  7. package/dist/{chunk-GVW3BDGZ.mjs → chunk-67HNPYZJ.mjs} +3 -3
  8. package/dist/{chunk-UNIKQFI5.mjs → chunk-6QP47LID.mjs} +2 -2
  9. package/dist/{chunk-4YPNYQSP.mjs → chunk-FJOGBUXU.mjs} +390 -96
  10. package/dist/chunk-FJOGBUXU.mjs.map +1 -0
  11. package/dist/{chunk-XDF6PMVZ.mjs → chunk-JOVL7OTW.mjs} +2 -2
  12. package/dist/{chunk-CNEWMCGX.mjs → chunk-L7TIIVAY.mjs} +57 -57
  13. package/dist/chunk-L7TIIVAY.mjs.map +1 -0
  14. package/dist/{chunk-U2NXHIJK.mjs → chunk-NFTCEJBJ.mjs} +3 -3
  15. package/dist/{chunk-AAGDVTP2.mjs → chunk-NQHZPSW2.mjs} +2 -2
  16. package/dist/{chunk-OWOEWZIC.mjs → chunk-Q3NEL2KK.mjs} +82 -28
  17. package/dist/chunk-Q3NEL2KK.mjs.map +1 -0
  18. package/dist/{chunk-LZGOIRLV.mjs → chunk-R73XMAB2.mjs} +9 -5
  19. package/dist/chunk-R73XMAB2.mjs.map +1 -0
  20. package/dist/{chunk-JHON5FN7.mjs → chunk-X2QBH24F.mjs} +8 -3
  21. package/dist/chunk-X2QBH24F.mjs.map +1 -0
  22. package/dist/cli.mjs +9 -9
  23. package/dist/contacts-worker.mjs +2 -2
  24. package/dist/global-insight-worker.mjs +1 -1
  25. package/dist/{http-LVOGJFDL.mjs → http-5RVY5J5U.mjs} +12 -12
  26. package/dist/{import-7OU57ZHM.mjs → import-ILTWVHKU.mjs} +7 -7
  27. package/dist/index.mjs +12 -12
  28. package/dist/{mcp-CUKHTTII.mjs → mcp-Y2YXOFB4.mjs} +8 -8
  29. package/dist/people-relationships-worker.mjs +2 -2
  30. package/dist/semantic-index-worker.mjs +1 -1
  31. package/dist/{service-KZTHBDQ5.mjs → service-ZAHXRSFD.mjs} +6 -6
  32. package/dist/service-ZAHXRSFD.mjs.map +1 -0
  33. package/dist/{src-LORFXAUE.mjs → src-OV5ZNE3Z.mjs} +10 -6
  34. package/dist/{stream-import-7YUWIAD6.mjs → stream-import-XOUM3Z5W.mjs} +7 -7
  35. package/dist/{undici-MU5I3L6Q.mjs → undici-UGXDRJLV.mjs} +193 -193
  36. package/dist/undici-UGXDRJLV.mjs.map +1 -0
  37. package/dist/{update-checker-3N7HQEP2.mjs → update-checker-UL2FBLXH.mjs} +3 -5
  38. package/dist/{update-checker-3N7HQEP2.mjs.map → update-checker-UL2FBLXH.mjs.map} +1 -1
  39. package/dist/{worker-runtime-GQ5SY7E3.mjs → worker-runtime-JNGURHDM.mjs} +5 -5
  40. package/dist-cli-web/assets/AISettingsTab-vvjijrc5.js +1 -0
  41. package/dist-cli-web/assets/AboutTab-CxI8zJNz.js +1 -0
  42. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-w0hHEodr.js +110 -0
  43. package/dist-cli-web/assets/{Alert-DJzXKcec.js → Alert-_MYcI_E2.js} +1 -1
  44. package/dist-cli-web/assets/ApiSettingsTab-CK7U6dVA.js +2 -0
  45. package/dist-cli-web/assets/BatchManageTab-1WnEqqpB.js +1 -0
  46. package/dist-cli-web/assets/{BufferResource-DY3P-dGs.js → BufferResource-i64DlwQT.js} +1 -1
  47. package/dist-cli-web/assets/{CanvasRenderer-As2MJTWZ.js → CanvasRenderer-B76mEt9A.js} +1 -1
  48. package/dist-cli-web/assets/ChatRecordDrawer-Bp6OSCrz.js +1 -0
  49. package/dist-cli-web/assets/{ChatRecordWorkspace-CVDPBmcl.js → ChatRecordWorkspace-CyfPIlIy.js} +1 -1
  50. package/dist-cli-web/assets/{Checkbox-4F1WAuVF.js → Checkbox-Ci7IeRw1.js} +1 -1
  51. package/dist-cli-web/assets/DataDirCleanupNotice-Dh63pOLt.js +1 -0
  52. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-DqNBNa1D.js +1 -0
  53. package/dist-cli-web/assets/{DebugToolsPanel-BLU6SY8a.js → DebugToolsPanel-CbNsD9co.js} +1 -1
  54. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-YeqmodwE.js +1 -0
  55. package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-C3pZmq0v.js +1 -0
  56. package/dist-cli-web/assets/{EChartLine.vue_vue_type_script_setup_true_lang-BYhukELX.js → EChartLine.vue_vue_type_script_setup_true_lang-Co6olfwv.js} +1 -1
  57. package/dist-cli-web/assets/{EChartWordcloud-C16xh7Tx.js → EChartWordcloud-rDusZwSq.js} +1 -1
  58. package/dist-cli-web/assets/{Filter-BEtPORqF.js → Filter-yxkeHO78.js} +1 -1
  59. package/dist-cli-web/assets/GlobalTaskBar-BlZ-fFiq.js +1 -0
  60. package/dist-cli-web/assets/GroupRelationshipGalaxyView-BXQBX0zJ.js +1 -0
  61. package/dist-cli-web/assets/{Label-Dgl3ghzT.js → Label-CFAZFBQX.js} +1 -1
  62. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js +1 -0
  63. package/dist-cli-web/assets/MessageExportModal-DU71grc7.js +1 -0
  64. package/dist-cli-web/assets/{PageHeader-CL9AFfvl.js → PageHeader-BDPf4NuI.js} +1 -1
  65. package/dist-cli-web/assets/{PageTabs.vue_vue_type_script_setup_true_lang-C22kOxIK.js → PageTabs.vue_vue_type_script_setup_true_lang-_j82asQU.js} +1 -1
  66. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-BnkcrIpk.js → RelationshipGalaxyCanvas-BODk18aA.js} +14 -14
  67. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-BJyuRiC-.js +4168 -0
  68. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-CCasBcBQ.css +1 -0
  69. package/dist-cli-web/assets/{RenderTargetSystem-CPwnC2X3.js → RenderTargetSystem-CVMvAUSv.js} +1 -1
  70. package/dist-cli-web/assets/RovingFocusItem-DC_06OmN.js +1 -0
  71. package/dist-cli-web/assets/{ScreenCaptureModal-ByKxzNQe.js → ScreenCaptureModal-DrBFDOtC.js} +1 -1
  72. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-C-Zj2biH.js +1 -0
  73. package/dist-cli-web/assets/{Select-jVtfc_xc.js → Select-DLK2LYhO.js} +1 -1
  74. package/dist-cli-web/assets/SettingsModal-BFkxzo0Y.css +1 -0
  75. package/dist-cli-web/assets/SettingsModal-DqaR4Dx5.js +2 -0
  76. package/dist-cli-web/assets/{StorageTab-QdcDqA6Q.js → StorageTab-B0ebN0f8.js} +1 -1
  77. package/dist-cli-web/assets/{Switch-DYHM64k9.js → Switch-CokhQWxm.js} +1 -1
  78. package/dist-cli-web/assets/{Tabs-B6Nzq2NQ.js → Tabs-D1UiZNaZ.js} +1 -1
  79. package/dist-cli-web/assets/Tabs-N3Q-Mpqi.js +1 -0
  80. package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-Bsq7gpC0.js → ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js} +1 -1
  81. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-Ccunouyf.js +1 -0
  82. package/dist-cli-web/assets/{VisuallyHiddenInput-IQpmK9yR.js → VisuallyHiddenInput-OAJEt_Y5.js} +1 -1
  83. package/dist-cli-web/assets/{WebGLRenderer-8JHbnkTc.js → WebGLRenderer-DuUeftYD.js} +1 -1
  84. package/dist-cli-web/assets/{WebGPURenderer-CLWfB4CC.js → WebGPURenderer-DoWQxiWZ.js} +1 -1
  85. package/dist-cli-web/assets/aiChat-CdADfRnU.js +8 -0
  86. package/dist-cli-web/assets/{browserAll-Cin6ghNg.js → browserAll-Cb-mtR2y.js} +1 -1
  87. package/dist-cli-web/assets/{cli-web-D7IBc3AX.js → cli-web-BHQCZLLg.js} +1 -1
  88. package/dist-cli-web/assets/{fetch-B7kuohCt.js → fetch-AvsnJLWJ.js} +1 -1
  89. package/dist-cli-web/assets/{fetch-BR71C0K9.js → fetch-B-6tyYWu.js} +1 -1
  90. package/dist-cli-web/assets/{fetch-OnnCjzee.js → fetch-B4PYy5JS.js} +1 -1
  91. package/dist-cli-web/assets/{fetch-_CN1EVMt.js → fetch-BbcFaCRB.js} +1 -1
  92. package/dist-cli-web/assets/{fetch-C8tTTsCm.js → fetch-BkA_so1e.js} +1 -1
  93. package/dist-cli-web/assets/{fetch-2QEQPA9q.js → fetch-BzXuAaT3.js} +1 -1
  94. package/dist-cli-web/assets/fetch-CW2fKvGp.js +1 -0
  95. package/dist-cli-web/assets/{fetch-CuUeyk0N.js → fetch-DEub4tOo.js} +1 -1
  96. package/dist-cli-web/assets/{fetch-1NiXh-_B.js → fetch-DLTlYnDB.js} +1 -1
  97. package/dist-cli-web/assets/{fetch-B2agy1hy.js → fetch-Qs38Hx1V.js} +1 -1
  98. package/dist-cli-web/assets/{fetch-Bk-7vxHV.js → fetch-sYDJ-Zs8.js} +1 -1
  99. package/dist-cli-web/assets/{fetch-DPRDSI39.js → fetch-ul8-uQIb.js} +1 -1
  100. package/dist-cli-web/assets/host-B6SQ6OGo.js +1 -0
  101. package/dist-cli-web/assets/host-DYIkQqvY.js +1 -0
  102. package/dist-cli-web/assets/{index-BCEk6ZpL.js → index--IEkRjKe.js} +10 -10
  103. package/dist-cli-web/assets/index-9iaY_EWG.js +1 -0
  104. package/dist-cli-web/assets/index-BnaLj2dx.css +1 -0
  105. package/dist-cli-web/assets/index-C7omDgiJ.js +2 -0
  106. package/dist-cli-web/assets/index-CHsM84U1.js +2 -0
  107. package/dist-cli-web/assets/index-CL8u01Pf.js +137 -0
  108. package/dist-cli-web/assets/{index-BIHFuCJK.js → index-CShh95fU.js} +1 -1
  109. package/dist-cli-web/assets/index-C_OS8Y8W.js +1 -0
  110. package/dist-cli-web/assets/{index-Colc58j-.js → index-D64XYYts.js} +1 -1
  111. package/dist-cli-web/assets/index-DrCc8p_I.css +1 -0
  112. package/dist-cli-web/assets/index-Dz_ddyZS.css +1 -0
  113. package/dist-cli-web/assets/index-UpTe1KzQ.js +1 -0
  114. package/dist-cli-web/assets/index-a8Hw6eD8.js +1 -0
  115. package/dist-cli-web/assets/index-jwjzZNKm.js +1 -0
  116. package/dist-cli-web/assets/index-pkxlF8Ee.js +1 -0
  117. package/dist-cli-web/assets/index-sWxuTsa7.js +36 -0
  118. package/dist-cli-web/assets/{people-page-header-DNPjaSt4.js → people-page-header-0jvXFFnh.js} +1 -1
  119. package/dist-cli-web/assets/{prompt-BgywZQ_g.js → prompt-BPYj29Vq.js} +1 -1
  120. package/dist-cli-web/assets/{semantic-index-config-builder-bji_UxYE.js → semantic-index-config-builder-vO37z355.js} +1 -1
  121. package/dist-cli-web/assets/service-CVoA9yNf.js +1 -0
  122. package/dist-cli-web/assets/{service-DpU9fa-l.js → service-D29Vftq9.js} +1 -1
  123. package/dist-cli-web/assets/service-DMysyLCa.js +1 -0
  124. package/dist-cli-web/assets/{useFormControl-De24E2zT.js → useFormControl-DVawP2DO.js} +1 -1
  125. package/dist-cli-web/assets/useTable-Bv3R_Hux.js +1 -0
  126. package/dist-cli-web/assets/useToast-BA0EwImD.js +1 -0
  127. package/dist-cli-web/assets/{vendor-echarts-DfAMQxdr.js → vendor-echarts-hTLhTs52.js} +5 -5
  128. package/dist-cli-web/assets/{vendor-echarts-wordcloud-BsaEJTPY.js → vendor-echarts-wordcloud-B8CF_NgP.js} +1 -1
  129. package/dist-cli-web/assets/{vendor-zrender-PFmZe1EY.js → vendor-zrender-D8psf1AA.js} +2 -2
  130. package/dist-cli-web/assets/{webworkerAll-BRnv6GvJ.js → webworkerAll-ZPE_yGnC.js} +1 -1
  131. package/dist-cli-web/index.html +2 -2
  132. package/package.json +4 -4
  133. package/dist/chat-command-SXW67RF7.mjs.map +0 -1
  134. package/dist/chunk-4YPNYQSP.mjs.map +0 -1
  135. package/dist/chunk-BSGLH6G3.mjs.map +0 -1
  136. package/dist/chunk-CNEWMCGX.mjs.map +0 -1
  137. package/dist/chunk-JHON5FN7.mjs.map +0 -1
  138. package/dist/chunk-LZGOIRLV.mjs.map +0 -1
  139. package/dist/chunk-OWOEWZIC.mjs.map +0 -1
  140. package/dist/service-KZTHBDQ5.mjs.map +0 -1
  141. package/dist/undici-MU5I3L6Q.mjs.map +0 -1
  142. package/dist-cli-web/assets/AISettingsTab-BmhNcUEh.js +0 -1
  143. package/dist-cli-web/assets/AboutTab-CFklrZt8.js +0 -1
  144. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-B-dIPvcs.js +0 -110
  145. package/dist-cli-web/assets/ApiSettingsTab-DvDm421U.js +0 -2
  146. package/dist-cli-web/assets/BatchManageTab-DhIDH3Q1.js +0 -1
  147. package/dist-cli-web/assets/ChatRecordDrawer-DHdas7Jp.js +0 -1
  148. package/dist-cli-web/assets/DataDirCleanupNotice-jebQ9il3.js +0 -1
  149. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-Cal624eP.js +0 -1
  150. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-CsgJ-Xn3.js +0 -1
  151. package/dist-cli-web/assets/GlobalTaskBar-BvNmFO7q.js +0 -1
  152. package/dist-cli-web/assets/GroupRelationshipGalaxyView-DEUIrvgz.js +0 -1
  153. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CwDIA0UP.js +0 -1
  154. package/dist-cli-web/assets/MessageExportModal-DYjhBuzO.js +0 -1
  155. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-CqdqveEJ.js +0 -4108
  156. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-TYGOUDiv.css +0 -1
  157. package/dist-cli-web/assets/RovingFocusItem-j33Nsbbn.js +0 -1
  158. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-C6EHKB_i.js +0 -1
  159. package/dist-cli-web/assets/SettingsModal-CjVax3I6.css +0 -1
  160. package/dist-cli-web/assets/SettingsModal-Dg27piEO.js +0 -2
  161. package/dist-cli-web/assets/Tabs-CRZdCcU4.js +0 -1
  162. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-BLpQds4F.js +0 -1
  163. package/dist-cli-web/assets/aiChat-4JvxWGXZ.js +0 -8
  164. package/dist-cli-web/assets/base-D6fxqD_X.js +0 -1
  165. package/dist-cli-web/assets/dateFormat-Bu4-Ux3L.js +0 -1
  166. package/dist-cli-web/assets/index-BUz_Vl9U.js +0 -2
  167. package/dist-cli-web/assets/index-BWZIoPV3.css +0 -1
  168. package/dist-cli-web/assets/index-BYQV3OA5.js +0 -1
  169. package/dist-cli-web/assets/index-CVVv_6qu.js +0 -2
  170. package/dist-cli-web/assets/index-CacwXQL4.js +0 -1
  171. package/dist-cli-web/assets/index-DImo7TQN.js +0 -1
  172. package/dist-cli-web/assets/index-DV9zQVPV.js +0 -137
  173. package/dist-cli-web/assets/index-DXKS-q-w.css +0 -1
  174. package/dist-cli-web/assets/index-DZc5A4_J.js +0 -1
  175. package/dist-cli-web/assets/index-DkWTvE7d.js +0 -36
  176. package/dist-cli-web/assets/index-DmEn0PAI.js +0 -1
  177. package/dist-cli-web/assets/index-b9eEQeVt.js +0 -1
  178. package/dist-cli-web/assets/index-waDxab2e.css +0 -1
  179. package/dist-cli-web/assets/insight-time-range-MJxLEu6o.js +0 -1
  180. package/dist-cli-web/assets/useTable-C7BH94MF.js +0 -1
  181. package/dist-cli-web/assets/useToast-CxhJkhXK.js +0 -1
  182. /package/dist/{chunk-VDWI4A4U.mjs.map → chunk-5MJO4AJB.mjs.map} +0 -0
  183. /package/dist/{chunk-GVW3BDGZ.mjs.map → chunk-67HNPYZJ.mjs.map} +0 -0
  184. /package/dist/{chunk-UNIKQFI5.mjs.map → chunk-6QP47LID.mjs.map} +0 -0
  185. /package/dist/{chunk-XDF6PMVZ.mjs.map → chunk-JOVL7OTW.mjs.map} +0 -0
  186. /package/dist/{chunk-U2NXHIJK.mjs.map → chunk-NFTCEJBJ.mjs.map} +0 -0
  187. /package/dist/{chunk-AAGDVTP2.mjs.map → chunk-NQHZPSW2.mjs.map} +0 -0
  188. /package/dist/{http-LVOGJFDL.mjs.map → http-5RVY5J5U.mjs.map} +0 -0
  189. /package/dist/{import-7OU57ZHM.mjs.map → import-ILTWVHKU.mjs.map} +0 -0
  190. /package/dist/{mcp-CUKHTTII.mjs.map → mcp-Y2YXOFB4.mjs.map} +0 -0
  191. /package/dist/{src-LORFXAUE.mjs.map → src-OV5ZNE3Z.mjs.map} +0 -0
  192. /package/dist/{stream-import-7YUWIAD6.mjs.map → stream-import-XOUM3Z5W.mjs.map} +0 -0
  193. /package/dist/{worker-runtime-GQ5SY7E3.mjs.map → worker-runtime-JNGURHDM.mjs.map} +0 -0
@@ -1 +0,0 @@
1
- .relationship-galaxy-3d[data-v-143a6c9e]{background:#000;background:radial-gradient(circle at 50% 50%,#170c07,#060302)}.relationship-galaxy-3d__label[data-v-143a6c9e]{pointer-events:auto;position:absolute;border:0;max-width:190px;padding:0;transform:translate(-50%);background:transparent;color:#ffffff94;cursor:pointer;font-size:9.5px;font-weight:600;letter-spacing:0;line-height:1.1;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 4px rgba(0,0,0,.9),0 2px 4px rgba(0,0,0,1);white-space:nowrap;will-change:transform,opacity}.relationship-galaxy-3d__label[data-v-143a6c9e]:focus-visible{outline:1px solid rgba(255,230,185,.72);outline-offset:4px}.relationship-galaxy-3d__label--medium[data-v-143a6c9e]{color:#ffffffe0;font-size:10.5px;font-weight:750;text-shadow:0 0 3px rgba(0,0,0,.95),0 1px 5px rgba(0,0,0,1)}.relationship-galaxy-3d__label--major[data-v-143a6c9e]{color:#fff;font-size:12px;font-weight:850;text-shadow:0 0 4px rgba(255,255,255,.26),0 2px 10px rgba(0,0,0,1)}.relationship-galaxy-3d__label--selected[data-v-143a6c9e]{font-size:13px;font-weight:900}
@@ -1 +0,0 @@
1
- import{a as b,y,z as I,A as g,B as F,C,o as K,c as S,w as l,D as h,e as n,P as w,b as B,f as u,E as T,G as q,H as R,I as x}from"./index-DkWTvE7d.js";var _=b({__name:"RovingFocusItem",props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(d){const r=d,a=y(),f=I(),i=u(()=>r.tabStopId||f),c=u(()=>a.currentTabStopId.value===i.value),{getItems:p,CollectionItem:v}=g();F(()=>{r.focusable&&a.onFocusableItemAdd()}),C(()=>{r.focusable&&a.onFocusableItemRemove()});function m(e){if(e.key==="Tab"&&e.shiftKey){a.onItemShiftTab();return}if(e.target!==e.currentTarget)return;const t=T(e,a.orientation.value,a.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!r.allowShiftKey&&e.shiftKey)return;e.preventDefault();let o=[...p().map(s=>s.ref).filter(s=>s.dataset.disabled!=="")];if(t==="last")o.reverse();else if(t==="prev"||t==="next"){t==="prev"&&o.reverse();const s=o.indexOf(e.currentTarget);o=a.loop.value?q(o,s+1):o.slice(s+1)}R(()=>x(o))}}return(e,t)=>(K(),S(n(v),null,{default:l(()=>[h(n(w),{tabindex:c.value?0:-1,"data-orientation":n(a).orientation.value,"data-active":e.active?"":void 0,"data-disabled":e.focusable?void 0:"",as:e.as,"as-child":e.asChild,onMousedown:t[0]||(t[0]=o=>{e.focusable?n(a).onItemFocus(i.value):o.preventDefault()}),onFocus:t[1]||(t[1]=o=>n(a).onItemFocus(i.value)),onKeydown:m},{default:l(()=>[B(e.$slots,"default")]),_:3},8,["tabindex","data-orientation","data-active","data-disabled","as","as-child"])]),_:3}))}}),A=_;export{A as R};
@@ -1 +0,0 @@
1
- import{a as r,W as n,o as d,c as u,X as p,Y as c,w as f,b as g,Z as i}from"./index-DkWTvE7d.js";const k=r({__name:"SectionTabs",props:i({items:{},persistKey:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:i(["change"],["update:modelValue"]),setup(s,{emit:l}){const o=n(s,"modelValue"),m=l;return(a,e)=>(d(),u(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=t=>o.value=t),items:s.items,"persist-key":s.persistKey,mode:"section",size:"sm",bordered:!1,onChange:e[1]||(e[1]=t=>m("change",t))},c({_:2},[a.$slots.right?{name:"right",fn:f(()=>[g(a.$slots,"right")]),key:"0"}:void 0]),1032,["modelValue","items","persist-key"]))}});export{k as _};
@@ -1 +0,0 @@
1
- .tab-slide-enter-active[data-v-b020e1c8],.tab-slide-leave-active[data-v-b020e1c8]{transition:opacity .2s ease,transform .2s ease}.tab-slide-enter-from[data-v-b020e1c8]{opacity:0;transform:translateY(10px)}.tab-slide-leave-to[data-v-b020e1c8]{opacity:0;transform:translateY(-10px)}
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AISettingsTab-BmhNcUEh.js","assets/index-DkWTvE7d.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-BWZIoPV3.css","assets/Tabs-B6Nzq2NQ.js","assets/RovingFocusItem-j33Nsbbn.js","assets/Tabs-CRZdCcU4.js","assets/Alert-DJzXKcec.js","assets/Select-jVtfc_xc.js","assets/useFormControl-De24E2zT.js","assets/clamp-jFYhBC76.js","assets/VisuallyHiddenInput-IQpmK9yR.js","assets/semantic-index-config-builder-bji_UxYE.js","assets/Switch-DYHM64k9.js","assets/Label-Dgl3ghzT.js","assets/prompt-BgywZQ_g.js","assets/Checkbox-4F1WAuVF.js","assets/BatchManageTab-DhIDH3Q1.js","assets/useToast-CxhJkhXK.js","assets/useTable-C7BH94MF.js","assets/StorageTab-QdcDqA6Q.js","assets/service-DpU9fa-l.js","assets/AboutTab-CFklrZt8.js","assets/ApiSettingsTab-DvDm421U.js","assets/SectionTabs.vue_vue_type_script_setup_true_lang-C6EHKB_i.js"])))=>i.map(i=>d[i]);
2
- import{a as j,bq as oe,o as l,c as S,br as ne,m as ie,e as s,a0 as q,B as Q,h as _,l as e,D as d,a2 as X,a4 as O,v as u,an as le,w as H,a3 as re,n as W,s as P,r as C,f as V,a1 as Y,a6 as ce,ah as J,af as de,ax as F,F as K,aA as N,q as ue,aj as ge,bs as me,aw as be,a8 as ve,a5 as pe,_ as fe,b as _e,i as he,az as ye,bt as E,bu as D,H as G,ae as xe}from"./index-DkWTvE7d.js";import{_ as Z}from"./Tabs-B6Nzq2NQ.js";import{_ as ke}from"./Switch-DYHM64k9.js";import{T as we}from"./Tabs-CRZdCcU4.js";import{u as Te}from"./prompt-BgywZQ_g.js";import{_ as Ce}from"./PageTabs.vue_vue_type_script_setup_true_lang-C22kOxIK.js";import"./vendor-snapdom--nZvo8Sg.js";import"./RovingFocusItem-j33Nsbbn.js";import"./Label-Dgl3ghzT.js";import"./useFormControl-De24E2zT.js";import"./VisuallyHiddenInput-IQpmK9yR.js";const $e=j({inheritAttrs:!1,__name:"UiIconButton",props:{icon:{},label:{},tone:{default:"neutral"},variant:{default:"ghost"},size:{default:"sm"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click","focus","blur","keydown","keyup"],setup(b,{emit:t}){const g=t,i=oe();return(r,m)=>(l(),S(ne,ie(s(i),{icon:b.icon,"accessible-label":b.label,tone:b.tone,variant:b.variant,size:b.size,loading:b.loading,disabled:b.disabled,onClick:m[0]||(m[0]=n=>g("click",n)),onFocus:m[1]||(m[1]=n=>g("focus",n)),onBlur:m[2]||(m[2]=n=>g("blur",n)),onKeydown:m[3]||(m[3]=n=>g("keydown",n)),onKeyup:m[4]||(m[4]=n=>g("keyup",n))}),null,16,["icon","accessible-label","tone","variant","size","loading","disabled"]))}}),Se={class:"mb-3 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},Pe={class:"rounded-lg border border-gray-200 bg-gray-50 p-4 dark:border-gray-700 dark:bg-gray-800/50"},Ve={class:"flex items-center justify-between"},Ue={class:"flex-1 pr-4"},Ae={class:"text-sm font-medium text-gray-900 dark:text-white"},Be={class:"text-xs text-gray-500 dark:text-gray-400"},Le={class:"w-64"},ze={key:0,class:"mt-4 space-y-3"},Ie={class:"mb-1.5 block text-xs font-medium text-gray-700 dark:text-gray-300"},Me={key:0,class:"mt-1 text-xs text-red-500"},Ee={key:1,class:"mt-1 text-xs text-gray-400"},De={class:"flex items-center gap-3"},Oe={key:0,class:"flex items-center gap-1.5"},je=j({__name:"NetworkSettingsSection",setup(b){const{t}=q(),g=C("system"),i=C(""),r=C(""),m=C(!1),n=C(!1),a=C(null),U=V(()=>[{label:t("settings.basic.network.modeOff"),value:"off"},{label:t("settings.basic.network.modeSystem"),value:"system"},{label:t("settings.basic.network.modeManual"),value:"manual"}]);async function k(){try{const o=await window.networkApi.getProxyConfig();g.value=o.mode||"system",i.value=o.url||""}catch(o){console.error("获取代理配置失败:",o)}}function x(o){if(!o)return r.value="",!0;try{const w=new URL(o);return["http:","https:"].includes(w.protocol)?(r.value="",!0):(r.value=t("settings.basic.network.onlyHttpSupported"),!1)}catch{return r.value=t("settings.basic.network.invalidProxyUrl"),!1}}async function z(){if(a.value=null,g.value==="manual"&&!i.value.trim()){r.value=t("settings.basic.network.enterProxyFirst");return}if(!(g.value==="manual"&&!x(i.value))){m.value=!0;try{const o=await window.networkApi.saveProxyConfig({mode:g.value,url:i.value.trim()});o.success||(r.value=o.error||t("settings.basic.network.saveFailed"))}catch(o){console.error("保存代理配置失败:",o),r.value=t("settings.basic.network.saveFailed")}finally{m.value=!1}}}async function $(o){const w=o;g.value=w,a.value=null,r.value="",w!=="manual"&&await z()}function B(){a.value=null,i.value?x(i.value):r.value=""}async function p(){g.value==="manual"&&i.value.trim()&&await z()}async function A(){if(!i.value.trim()){r.value=t("settings.basic.network.enterProxyFirst");return}if(x(i.value)){n.value=!0,a.value=null;try{const o=await window.networkApi.testProxyConnection(i.value.trim());a.value={success:o.success,message:o.success?t("settings.basic.network.connectionSuccess"):o.error||t("settings.basic.network.connectionFailed")}}catch(o){a.value={success:!1,message:t("settings.basic.network.connectionFailed")+": "+(o instanceof Error?o.message:String(o))}}finally{n.value=!1}}}return Q(()=>{k()}),(o,w)=>{const L=X,I=Z,y=le,f=re;return l(),_("div",null,[e("h3",Se,[d(L,{name:"i-heroicons-globe-alt",class:"h-4 w-4 text-cyan-500"}),O(" "+u(s(t)("settings.basic.network.title")),1)]),e("div",Pe,[e("div",Ve,[e("div",Ue,[e("p",Ae,u(s(t)("settings.basic.network.proxyMode")),1),e("p",Be,u(s(t)("settings.basic.network.proxyModeDesc")),1)]),e("div",Le,[d(I,{"model-value":g.value,size:"sm",class:"gap-0",items:U.value,"onUpdate:modelValue":$},null,8,["model-value","items"])])]),g.value==="manual"?(l(),_("div",ze,[e("div",null,[e("label",Ie,u(s(t)("settings.basic.network.proxyAddress")),1),d(y,{modelValue:i.value,"onUpdate:modelValue":w[0]||(w[0]=T=>i.value=T),placeholder:s(t)("settings.basic.network.proxyPlaceholder"),color:r.value?"error":"neutral",size:"sm",class:"w-full",onInput:B,onBlur:p},null,8,["modelValue","placeholder","color"]),r.value?(l(),_("p",Me,u(r.value),1)):(l(),_("p",Ee,u(s(t)("settings.basic.network.proxyHelp")),1))]),e("div",De,[d(f,{loading:n.value,disabled:n.value||!i.value.trim(),color:"neutral",variant:"soft",size:"sm",onClick:A},{default:H(()=>[d(L,{name:"i-heroicons-signal",class:"mr-1 h-4 w-4"}),O(" "+u(n.value?s(t)("settings.basic.network.testing"):s(t)("settings.basic.network.testConnection")),1)]),_:1},8,["loading","disabled"]),a.value?(l(),_("div",Oe,[d(L,{name:a.value.success?"i-heroicons-check-circle":"i-heroicons-x-circle",class:W(["h-4 w-4",a.value.success?"text-green-500":"text-red-500"])},null,8,["name","class"]),e("span",{class:W(["text-xs",a.value.success?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400"])},u(a.value.message),3)])):P("",!0)])])):P("",!0)])])}}}),Re={class:"space-y-6 pb-6"},Fe={class:"mb-3 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},Ne={class:"rounded-lg border border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-800/50"},He={class:"flex items-center justify-between p-4"},qe={class:"flex-1 pr-4"},Ke={class:"text-sm font-medium text-gray-900 dark:text-white"},Ge={class:"w-72"},We={class:"flex items-center justify-between p-4"},Je={class:"flex-1 pr-4"},Qe={class:"text-sm font-medium text-gray-900 dark:text-white"},Xe={class:"text-xs text-gray-500 dark:text-gray-400"},Ye={class:"flex items-center justify-between p-4"},Ze={class:"flex-1 pr-4"},et={class:"text-sm font-medium text-gray-900 dark:text-white"},tt={class:"w-64"},st={class:"mb-3 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},at={class:"rounded-lg border border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-800/50"},ot={class:"flex items-center justify-between p-4"},nt={class:"flex-1 pr-4"},it={class:"text-sm font-medium text-gray-900 dark:text-white"},lt={class:"w-64"},rt={class:"flex items-center justify-between p-4"},ct={class:"flex-1 pr-4"},dt={class:"text-sm font-medium text-gray-900 dark:text-white"},ut={class:"flex shrink-0 items-center gap-1.5"},gt=["aria-label","aria-pressed","onClick"],mt={key:0,class:"absolute inset-0 flex items-center justify-center text-gray-800/70"},bt={class:"mb-3 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},vt={class:"rounded-lg border border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-800/50"},pt={class:"flex items-center justify-between p-4"},ft={class:"flex-1 pr-4"},_t={class:"text-sm font-medium text-gray-900 dark:text-white"},ht={class:"w-64"},yt={key:0,class:"border-t border-gray-200 dark:border-gray-700"},xt={key:1,class:"flex items-center justify-between p-4"},kt={class:"flex-1 pr-4"},wt={class:"text-sm font-medium text-gray-900 dark:text-white"},Tt={class:"text-xs text-gray-500 dark:text-gray-400"},Ct={class:"w-64"},$t=j({__name:"BasicSettingsTab",props:{showToolsPanel:{type:Boolean,default:!0}},setup(b){const{t}=q(),g=Y(),i=ce(),{toolsPanelPosition:r}=J(g),{locale:m,defaultSessionTab:n,insightCardTheme:a,debugMode:U}=J(i),k=C(!1),x=C(!0),z=F,$=C("background");let B="background";Q(async()=>{{x.value=!1;return}});async function p(h){}async function A(h){if(h!=="background"&&h!=="quit")return;const c=h;$.value=c,(await be().setDesktopCloseBehavior(c)).success?B=c:$.value=B}const o=de({emitAuto:!0,initialValue:"light"}),w=V(()=>[{label:t("settings.basic.appearance.auto"),value:"auto"},{label:t("settings.basic.appearance.light"),value:"light"},{label:t("settings.basic.appearance.dark"),value:"dark"}]);function L(h,c){return{background:`linear-gradient(135deg, color-mix(in srgb, ${h} 35%, white), color-mix(in srgb, ${c} 42%, white))`}}function I(h){a.value=h}const y=V(()=>ve.map(h=>({label:h.nativeName,value:h.code}))),f=V({get:()=>m.value,set:h=>i.setLocale(h)}),T=V(()=>[{label:t("settings.basic.defaultTab.insights"),value:"insights"},{label:t("settings.basic.defaultTab.aiChat"),value:"ai-chat"}]),ee=V(()=>[{label:t("settings.basic.toolsPanel.positionHeader"),value:"header"},{label:t("settings.basic.toolsPanel.positionSide"),value:"side"}]),te=V(()=>[{label:t("settings.basic.closeBehavior.background"),value:"background"},{label:t("settings.basic.closeBehavior.quit"),value:"quit"}]);return(h,c)=>{const M=X,se=ke,R=Z;return l(),_("div",Re,[e("div",null,[e("h3",Fe,[d(M,{name:"i-heroicons-cog-6-tooth",class:"h-4 w-4 text-gray-500"}),O(" "+u(s(t)("settings.basic.general.title")),1)]),e("div",Ne,[e("div",He,[e("div",qe,[e("p",Ke,u(s(t)("settings.basic.language.description")),1)]),e("div",Ge,[d(we,{modelValue:f.value,"onUpdate:modelValue":c[0]||(c[0]=v=>f.value=v),size:"sm",class:"gap-0",items:y.value},null,8,["modelValue","items"])])]),s(F)?(l(),_(K,{key:0},[c[6]||(c[6]=e("div",{class:"border-t border-gray-200 dark:border-gray-700"},null,-1)),e("div",We,[e("div",Je,[e("p",Qe,u(s(t)("settings.basic.autoLaunch.openAtLogin")),1),e("p",Xe,u(x.value?s(t)("settings.basic.autoLaunch.openAtLoginDesc"):s(t)("settings.basic.autoLaunch.devModeHint")),1)]),d(se,{modelValue:k.value,"onUpdate:modelValue":[c[1]||(c[1]=v=>k.value=v),p],disabled:!x.value},null,8,["modelValue","disabled"])]),s(z)?(l(),_(K,{key:0},[c[5]||(c[5]=e("div",{class:"border-t border-gray-200 dark:border-gray-700"},null,-1)),e("div",Ye,[e("div",Ze,[e("p",et,u(s(t)("settings.basic.closeBehavior.label")),1)]),e("div",tt,[d(R,{"model-value":$.value,size:"sm",class:"gap-0",items:te.value,"onUpdate:modelValue":A},null,8,["model-value","items"])])])],64)):P("",!0)],64)):P("",!0)])]),e("div",null,[e("h3",st,[d(M,{name:"i-heroicons-paint-brush",class:"h-4 w-4 text-pink-500"}),O(" "+u(s(t)("settings.basic.appearance.title")),1)]),e("div",at,[e("div",ot,[e("div",nt,[e("p",it,u(s(t)("settings.basic.appearance.themeMode")),1)]),e("div",lt,[d(R,{modelValue:s(o),"onUpdate:modelValue":c[2]||(c[2]=v=>N(o)?o.value=v:null),size:"sm",class:"gap-0",items:w.value},null,8,["modelValue","items"])])]),c[7]||(c[7]=e("div",{class:"border-t border-gray-200 dark:border-gray-700"},null,-1)),e("div",rt,[e("div",ct,[e("p",dt,u(s(t)("settings.basic.appearance.insightCardTheme")),1)]),e("div",ut,[(l(!0),_(K,null,ue(s(me),(v,ae)=>(l(),_("button",{key:v.id,type:"button",class:"group flex h-9 w-9 items-center justify-center rounded-full outline-none transition-colors hover:bg-gray-200/60 focus-visible:ring-2 focus-visible:ring-primary-500/40 dark:hover:bg-gray-700/70","aria-label":s(t)("settings.basic.appearance.insightCardThemeOption",{index:ae+1}),"aria-pressed":s(a)===v.id,onClick:jt=>I(v.id)},[e("span",{class:W(["relative block h-6 w-6 overflow-hidden rounded-full shadow-sm ring-1 transition-all",s(a)===v.id?"ring-2 ring-primary-500 ring-offset-2 ring-offset-gray-50 dark:ring-primary-400 dark:ring-offset-gray-800":"ring-black/5 group-hover:ring-black/10 dark:ring-white/10 dark:group-hover:ring-white/20"]),style:ge(L(v.startColor,v.endColor))},[s(a)===v.id?(l(),_("span",mt,[d(M,{name:"i-heroicons-check-20-solid",class:"h-3.5 w-3.5"})])):P("",!0)],6)],8,gt))),128))])])])]),e("div",null,[e("h3",bt,[d(M,{name:"i-heroicons-adjustments-horizontal",class:"h-4 w-4 text-purple-500"}),O(" "+u(s(t)("settings.basic.preferences.title")),1)]),e("div",vt,[e("div",pt,[e("div",ft,[e("p",_t,u(s(t)("settings.basic.defaultTab.description")),1)]),e("div",ht,[d(R,{modelValue:s(n),"onUpdate:modelValue":c[3]||(c[3]=v=>N(n)?n.value=v:null),size:"sm",class:"gap-0",items:T.value},null,8,["modelValue","items"])])]),b.showToolsPanel&&s(U)?(l(),_("div",yt)):P("",!0),b.showToolsPanel&&s(U)?(l(),_("div",xt,[e("div",kt,[e("p",wt,u(s(t)("settings.basic.toolsPanel.positionLabel")),1),e("p",Tt,u(s(t)("settings.basic.toolsPanel.positionDesc")),1)]),e("div",Ct,[d(R,{modelValue:s(r),"onUpdate:modelValue":c[4]||(c[4]=v=>N(r)?r.value=v:null),size:"sm",class:"gap-0",items:ee.value},null,8,["modelValue","items"])])])):P("",!0)])]),s(F)?(l(),S(je,{key:0})):P("",!0)])}}}),St={class:"flex h-[100dvh] min-h-0 flex-col overflow-hidden sm:h-[85vh] sm:min-h-[650px]"},Pt={class:"shrink-0 border-b border-gray-200 px-4 pt-4 sm:px-6 sm:pt-5 dark:border-gray-800"},Vt={class:"flex items-center justify-between"},Ut={class:"flex items-center gap-3"},At={class:"flex h-8 w-8 items-center justify-center rounded-lg bg-primary-600 dark:bg-primary-500"},Bt={class:"text-lg font-semibold text-gray-900 dark:text-white"},Lt={class:"relative flex-1"},zt={class:"absolute inset-0 overflow-y-auto p-4 sm:p-6"},It=j({__name:"SettingsDialogShell",props:{open:{type:Boolean},activeTab:{},tabs:{}},emits:["update:open","update:activeTab"],setup(b,{emit:t}){const g=b,i=t,{t:r}=q(),m=V({get:()=>g.activeTab,set:n=>i("update:activeTab",n)});return(n,a)=>{const U=pe;return l(),S(U,{open:b.open,ui:{content:"w-full sm:max-w-[900px] z-[100]",overlay:"z-[99] bg-gray-200/80 backdrop-blur-sm dark:bg-page-dark/80"},"onUpdate:open":a[2]||(a[2]=k=>i("update:open",k))},{content:H(()=>[e("div",St,[e("div",Pt,[e("div",Vt,[e("div",Ut,[e("div",At,[d(s(fe),{name:"i-heroicons-cog-6-tooth",size:"md",class:"text-white"})]),e("h2",Bt,u(s(r)("settings.title")),1)]),d(s($e),{icon:"i-heroicons-x-mark",label:s(r)("common.close"),onClick:a[0]||(a[0]=k=>i("update:open",!1))},null,8,["label"])]),d(s(Ce),{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=k=>m.value=k),class:"mt-4 pb-3",items:b.tabs},null,8,["modelValue","items"])]),e("div",Lt,[e("div",zt,[_e(n.$slots,"default")])])])]),_:3},8,["open"])}}});function Mt(b,t){return he(b,t,{immediate:!0})}const Et={key:"settings",class:"h-full"},Dt={key:"about",class:"h-full overflow-y-auto"},Ot=j({__name:"SettingsModal",setup(b){const t=E(()=>D(()=>import("./AISettingsTab-BmhNcUEh.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))),g=E(()=>D(()=>import("./BatchManageTab-DhIDH3Q1.js"),__vite__mapDeps([17,1,2,3,16,9,11,5,14,18,19]))),i=E(()=>D(()=>import("./StorageTab-QdcDqA6Q.js"),__vite__mapDeps([20,1,2,3,4,5,21]))),r=E(()=>D(()=>import("./AboutTab-CFklrZt8.js"),__vite__mapDeps([22,13,1,2,3,14,9,11,18]))),m=E(()=>D(()=>import("./ApiSettingsTab-DvDm421U.js"),__vite__mapDeps([23,1,2,3,13,14,9,11,24,16,5,4]))),n=null,{t:a}=q(),U=Te(),k=Y(),{showSettings:x,settingsTab:z,settingsSubTab:$}=J(k),B=V(()=>[{id:"settings",label:a("settings.tabs.basic"),icon:"i-heroicons-cog-6-tooth"},{id:"ai",label:a("settings.tabs.ai"),icon:"i-heroicons-sparkles"},{id:"api",label:a("settings.tabs.api"),icon:"i-heroicons-server-stack"},{id:"data",label:a("settings.tabs.dataManage"),icon:"i-heroicons-rectangle-stack"},{id:"storage",label:a("settings.tabs.storage"),icon:"i-heroicons-folder-open"},{id:"about",label:a("settings.tabs.about"),icon:"i-heroicons-information-circle"}]),p=C("settings"),A=C({});function o(y,f){A.value[y]=f}function w(){U.notifyAIConfigChanged()}function L(y){p.value=y,G(()=>{A.value[y]?.refresh?.()})}function I(y){const f=A.value[p.value];f?.scrollToSection&&f.scrollToSection(y)}return Mt(x,async y=>{if(y){const f=z.value||"settings";p.value=B.value.some(T=>T.id===f)?f:"settings",$.value&&(await G(),setTimeout(()=>I($.value),100)),G(()=>{A.value[p.value]?.refresh?.()})}}),(y,f)=>(l(),S(It,{open:s(x),"onUpdate:open":f[0]||(f[0]=T=>N(x)?x.value=T:null),"active-tab":p.value,tabs:B.value,"onUpdate:activeTab":L},{default:H(()=>[d(ye,{name:"tab-slide",mode:"out-in"},{default:H(()=>[p.value==="settings"?(l(),_("div",Et,[d($t)])):p.value==="ai"?(l(),S(s(t),{key:"ai",ref:T=>o("ai",T),onConfigChanged:w},null,512)):p.value==="data"?(l(),S(s(g),{key:"data","focus-owner-issues":s($)==="missing-owner"},null,8,["focus-owner-issues"])):p.value==="api"?(l(),S(s(m),{key:"api"})):p.value==="storage"?(l(),S(s(i),{key:"storage",ref:T=>o("storage",T)},null,512)):s(F)&&p.value==="security"?(l(),S(s(n),{key:"security"})):p.value==="about"?(l(),_("div",Dt,[d(s(r))])):P("",!0)]),_:1})]),_:1},8,["open","active-tab","tabs"]))}}),Yt=xe(Ot,[["__scopeId","data-v-b020e1c8"]]);export{Yt as default};
@@ -1 +0,0 @@
1
- import{_ as T}from"./Tabs-B6Nzq2NQ.js";import{a as x,i as V,o as k,h as w,D as y,r as m,f as z,H as C,ae as W}from"./index-DkWTvE7d.js";const E=x({__name:"Tabs",props:{modelValue:{},items:{},size:{}},emits:["update:modelValue"],setup(s,{emit:d}){const c=s,f=d,o=m(),l=m(),a=z({get:()=>c.modelValue,set:e=>f("update:modelValue",e)}),u=async()=>{if(await C(),!o.value||!l.value)return;const e=c.items.findIndex(h=>h.value===a.value);if(e<0)return;const t=l.value.$el.querySelectorAll('[role="tab"]')[e];if(!t)return;const i=o.value,b=i.clientWidth,p=t.offsetLeft,v=t.offsetWidth,_=p+v/2-b/2;i.scrollTo({left:Math.max(0,_),behavior:"smooth"})};return V(a,()=>{u()},{immediate:!1}),(e,n)=>{const r=T;return k(),w("div",{ref_key:"scrollContainer",ref:o,class:"overflow-x-auto overflow-y-hidden scrollbar-hide"},[y(r,{ref_key:"tabsRef",ref:l,modelValue:a.value,"onUpdate:modelValue":n[0]||(n[0]=t=>a.value=t),size:s.size,items:s.items,content:!1,class:"min-w-max"},null,8,["modelValue","size","items"])],512)}}}),g=W(E,[["__scopeId","data-v-4a114c59"]]);export{g as T};
@@ -1 +0,0 @@
1
- import{a as ge,a0 as ye,B as pe,ac as be,i as xe,o as q,h as C,n as B,D as w,c as Ye,a3 as De,l as E,v as Z,s as ee,r as d,f as u,ad as Se,k as M}from"./index-DkWTvE7d.js";import{_ as we}from"./Select-jVtfc_xc.js";import{f as ae}from"./dateFormat-Bu4-Ux3L.js";import{T as he}from"./Tabs-CRZdCcU4.js";import{_ as te}from"./DatePicker.vue_vue_type_script_setup_true_lang-Cal624eP.js";const Q=["recent","quarter","year","custom"],le=[365,730,1825,0];function Me(c){if(!c)return[...Q];const y=new Set(c),r=Q.filter(o=>y.has(o));return r.length>0?r:[...Q]}function ze(c){if(!c)return[...le];const y=new Set(c),r=le.filter(o=>y.has(o));return r.length>0?r:[365]}function qe(c,y){return[c??"",y?.availableYears.join(",")??"",y?.fullRange?.start??"",y?.fullRange?.end??""].join("|")}const Te={key:1,class:"flex items-center"},ke={key:2,class:"flex items-center"},Re={key:3,class:"flex items-center gap-1"},Ee=ge({__name:"TimeSelect",props:{sessionId:{},modelValue:{},visible:{type:Boolean,default:!0},initialState:{},rangeSource:{},allowedModes:{},allowedRecentDays:{},size:{default:"md"}},emits:["update:modelValue","update:fullRange","update:availableYears","initializationComplete"],setup(c,{emit:y}){const r=c,o=y,{t:i}=ye(),T=d(!1),m=d([]),s=d(null),k=u(()=>Me(r.allowedModes)),I=u(()=>ze(r.allowedRecentDays)),h=u(()=>r.size==="sm"?"xs":"sm"),F=u(()=>r.size==="sm"?"text-xs":"text-sm"),p=d("recent"),b=d(365),f=d(0),v=d(0),g=d(1),x=d(""),Y=d(""),R=d(!1);let z=0;function V(a){const e=new Date(a*1e3);return{year:e.getFullYear(),quarter:Math.floor(e.getMonth()/3)+1}}function ne(a,e){const t=(e-1)*3,n=new Date(a,t,1,0,0,0),l=new Date(a,t+3,0,23,59,59);return{startTs:Math.floor(n.getTime()/1e3),endTs:Math.floor(l.getTime()/1e3)}}function re(a){const e=new Date(a,0,1,0,0,0),t=new Date(a,11,31,23,59,59);return{startTs:Math.floor(e.getTime()/1e3),endTs:Math.floor(t.getTime()/1e3)}}const se=u(()=>[{label:i("common.timeSelect.mode.recent"),value:"recent"},{label:i("common.timeSelect.mode.quarter"),value:"quarter"},{label:i("common.timeSelect.mode.year"),value:"year"},{label:i("common.timeSelect.mode.custom"),value:"custom"}].filter(a=>k.value.includes(a.value))),ue=u(()=>{const a=new Map([[365,i("common.timeSelect.recent.oneYear")],[730,i("common.timeSelect.recent.twoYears")],[1825,i("common.timeSelect.recent.fiveYears")],[0,i("common.timeSelect.recent.all")]]);return I.value.map(e=>({label:a.get(e)??String(e),value:e}))}),O=u(()=>s.value?V(s.value.start):{year:0,quarter:1}),U=u(()=>s.value?V(s.value.end):{year:0,quarter:1}),oe=u(()=>{const a=O.value;return v.value>a.year||v.value===a.year&&g.value>a.quarter}),ie=u(()=>{const a=U.value;return v.value<a.year||v.value===a.year&&g.value<a.quarter}),ce=u(()=>m.value.length===0?!1:m.value.indexOf(f.value)<m.value.length-1),ve=u(()=>m.value.length===0?!1:m.value.indexOf(f.value)>0),$=u(()=>i("common.timeSelect.quarter.label",{year:v.value,quarter:g.value})),A=u(()=>i("common.timeSelect.year.label",{year:f.value}));function de(a){return{365:i("common.timeSelect.display.recent365"),730:i("common.timeSelect.display.recent730"),1825:i("common.timeSelect.display.recent1825")}[a]||""}function N(a){return I.value.includes(a)?a:I.value[0]??365}function me(){if(!s.value)return null;const a={mode:p.value};switch(p.value){case"recent":{if(a.recentDays=b.value,b.value===0)return{startTs:s.value.start,endTs:s.value.end,displayLabel:ae(s.value.start,s.value.end),isFullRange:!0,state:a};const e=s.value.end;return{startTs:Math.max(e-b.value*86400,s.value.start),endTs:e,displayLabel:de(b.value),isFullRange:!1,state:a}}case"quarter":return a.quarterYear=v.value,a.quarter=g.value,{...ne(v.value,g.value),displayLabel:$.value,isFullRange:!1,state:a};case"year":return a.year=f.value,{...re(f.value),displayLabel:A.value,isFullRange:!1,state:a};case"custom":{if(a.customStart=x.value,a.customEnd=Y.value,!x.value||!Y.value)return null;let e=M(x.value).startOf("day").unix(),t=M(Y.value).endOf("day").unix();return e>t&&([e,t]=[t,e]),{startTs:e,endTs:t,displayLabel:ae(e,t),isFullRange:!1,state:a}}}}function D(){const a=me();a&&o("update:modelValue",a)}function P(a){let e=v.value,t=g.value+a;t>4&&(e++,t=1),t<1&&(e--,t=4);const n=O.value,l=U.value;e<n.year||e===n.year&&t<n.quarter||e>l.year||e===l.year&&t>l.quarter||(v.value=e,g.value=t,D())}function _(a){const e=m.value,n=e.indexOf(f.value)-a;n>=0&&n<e.length&&(f.value=e[n],D())}function fe(a){if(s.value)switch(a){case"recent":b.value=N(b.value);break;case"quarter":{const{year:e,quarter:t}=V(s.value.end);v.value=e,g.value=t;break}case"year":{f.value=m.value[0]||new Date(s.value.end*1e3).getFullYear();break}case"custom":{const e=s.value.end,t=Math.max(e-30*86400,s.value.start);x.value=M.unix(t).format("YYYY-MM-DD"),Y.value=M.unix(e).format("YYYY-MM-DD");break}}}const j=u({get:()=>p.value,set:a=>{p.value=a,R.value=!0,fe(a),R.value=!1,D()}}),K=u({get:()=>b.value,set:a=>{b.value=a,D()}}),G=u({get:()=>x.value,set:a=>{x.value=a,Y.value&&D()}}),H=u({get:()=>Y.value,set:a=>{Y.value=a,x.value&&D()}});async function J(){const a=++z;if(!r.rangeSource&&!r.sessionId){m.value=[],s.value=null,o("update:modelValue",null),o("update:fullRange",null),o("update:availableYears",[]),T.value=!0,o("initializationComplete",!1);return}let e=!1;try{let t,n;if(r.rangeSource)t=r.rangeSource.availableYears,n=r.rangeSource.fullRange;else{const S=Se();[t,n]=await Promise.all([S.getAvailableYears(r.sessionId),S.getTimeRange(r.sessionId)])}if(a!==z)return;m.value=t,s.value=n,e=n!==null,o("update:fullRange",n),o("update:availableYears",t);const l=r.initialState,W=l?.mode??k.value[0]??"recent",X=k.value.includes(W)?W:k.value[0]??"recent";switch(p.value=X,R.value=!0,X){case"recent":b.value=N(l?.recentDays??365);break;case"quarter":{if(l?.quarterYear&&l?.quarter)v.value=l.quarterYear,g.value=l.quarter;else if(n){const{year:S,quarter:L}=V(n.end);v.value=S,g.value=L}break}case"year":{l?.year&&t.includes(l.year)?f.value=l.year:f.value=t[0]||0;break}case"custom":{if(l?.customStart&&l?.customEnd)x.value=l.customStart,Y.value=l.customEnd;else if(n){const S=n.end,L=Math.max(S-30*86400,n.start);x.value=M.unix(L).format("YYYY-MM-DD"),Y.value=M.unix(S).format("YYYY-MM-DD")}break}}R.value=!1,e?D():o("update:modelValue",null)}catch(t){if(a!==z)return;console.error("TimeSelect 加载数据失败:",t),m.value=[],s.value=null,o("update:modelValue",null),o("update:fullRange",null),o("update:availableYears",[])}finally{a===z&&(T.value=!0,o("initializationComplete",e))}}return pe(()=>{J()}),be(()=>{z++}),xe(()=>qe(r.sessionId,r.rangeSource),()=>{T.value=!1,J()}),(a,e)=>{const t=we,n=De;return T.value?(q(),C("div",{key:0,class:B(["flex items-center gap-2",{invisible:!c.visible}])},[w(t,{modelValue:j.value,"onUpdate:modelValue":e[0]||(e[0]=l=>j.value=l),items:se.value,"value-key":"value",size:h.value,color:"neutral",variant:"soft",ui:{item:"py-1.5"},class:"h-8 w-[88px] shrink-0 rounded-lg bg-elevated focus-visible:ring-1 focus-visible:ring-gray-300/60 dark:focus-visible:ring-white/15"},null,8,["modelValue","items","size"]),p.value==="recent"?(q(),Ye(he,{key:0,modelValue:K.value,"onUpdate:modelValue":e[1]||(e[1]=l=>K.value=l),items:ue.value,size:h.value,class:"min-w-0 shrink"},null,8,["modelValue","items","size"])):p.value==="quarter"?(q(),C("div",Te,[w(n,{icon:"i-heroicons-chevron-left",size:h.value,variant:"ghost",color:"neutral",disabled:!oe.value,onClick:e[2]||(e[2]=l=>P(-1))},null,8,["size","disabled"]),E("span",{class:B(["whitespace-nowrap px-0.5 font-medium text-gray-700 dark:text-gray-300",F.value])},Z($.value),3),w(n,{icon:"i-heroicons-chevron-right",size:h.value,variant:"ghost",color:"neutral",disabled:!ie.value,onClick:e[3]||(e[3]=l=>P(1))},null,8,["size","disabled"])])):p.value==="year"?(q(),C("div",ke,[w(n,{icon:"i-heroicons-chevron-left",size:h.value,variant:"ghost",color:"neutral",disabled:!ce.value,onClick:e[4]||(e[4]=l=>_(-1))},null,8,["size","disabled"]),E("span",{class:B(["whitespace-nowrap px-0.5 font-medium text-gray-700 dark:text-gray-300",F.value])},Z(A.value),3),w(n,{icon:"i-heroicons-chevron-right",size:h.value,variant:"ghost",color:"neutral",disabled:!ve.value,onClick:e[5]||(e[5]=l=>_(1))},null,8,["size","disabled"])])):p.value==="custom"?(q(),C("div",Re,[w(te,{modelValue:G.value,"onUpdate:modelValue":e[6]||(e[6]=l=>G.value=l),"width-class":"w-28",clearable:!1,size:c.size},null,8,["modelValue","size"]),e[8]||(e[8]=E("span",{class:"text-xs text-gray-400"},"-",-1)),w(te,{modelValue:H.value,"onUpdate:modelValue":e[7]||(e[7]=l=>H.value=l),"width-class":"w-28",clearable:!1,size:c.size},null,8,["modelValue","size"])])):ee("",!0)],2)):ee("",!0)}}});export{Ee as _};
@@ -1,8 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DkWTvE7d.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-BWZIoPV3.css"])))=>i.map(i=>d[i]);
2
- import{U as bs,d as is,r as q,f as te,aw as He,bE as We,bF as Qe,bG as _s,T as xs,bu as Us,bH as ds,am as Ls,a6 as qs,bI as Ds,ah as Fs,ad as fs,aT as re,bJ as Ke}from"./index-DkWTvE7d.js";import{u as Os}from"./prompt-BgywZQ_g.js";import{C as ws}from"./chatlabSiteLocale-CrCNb8QP.js";const xe="chart_runtime",$s=4e3,zs=`
3
- …[truncated]`;function ps(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gs(e){return!ps(e)||!Array.isArray(e.content)?"":e.content.map(t=>ps(t)&&t.type==="text"&&typeof t.text=="string"?t.text:"").filter(t=>t.length>0).join(`
4
- `)}function ms(e,t=$s){return e.length<=t?e:e.slice(0,t)+zs}function X(){return bs("assistant-crud")}function le(){return bs("skill-crud")}const ks=ws,Ws={"zh-CN":"cn","zh-TW":"cn","en-US":"en","ja-JP":"ja"},Bs=is("assistant",()=>{const e=q([]),t=q(null),u=q(!1),f=new Set;let c=null;const h=q([]),D=q([]),b=q([]),M=q(!1),E=q(null),x=q("group"),H=q("zh-CN"),U=te(()=>t.value?e.value.find(m=>m.id===t.value)??null:null),V=te(()=>e.value.filter(m=>{const d=!m.applicableChatTypes?.length||m.applicableChatTypes.includes(x.value),T=!m.supportedLocales?.length||m.supportedLocales.some(j=>H.value.startsWith(j));return d&&T})),F=4,Y=te(()=>V.value.slice(0,F)),ce=te(()=>V.value.slice(F)),_=te(()=>V.value.length>F),K=te(()=>{const m=new Set(e.value.map(d=>d.id));return b.value.map(d=>({...d,imported:m.has(d.id)}))});function ue(m,d){x.value=m,H.value=d}async function N(){try{const m=X();e.value=await m.getAll(),u.value=!0}catch(m){console.error("[AssistantStore] Failed to load assistants:",m)}}async function ye(){try{h.value=await X().getBuiltinCatalog()}catch(m){console.error("[AssistantStore] Failed to load builtin catalog:",m)}}async function Re(){try{D.value=await X().getBuiltinToolCatalog()}catch(m){console.error("[AssistantStore] Failed to load builtin tool catalog:",m)}}async function ie(m){const d=Ws[m||H.value]??"en",T=`${ks}/${d}/assistant.json`;M.value=!0,E.value=null;try{const j=await He().fetchRemoteConfig(T);if(!j.success||!j.data){E.value=j.error||"Failed to fetch cloud catalog",b.value=[];return}const n=j.data;if(!Array.isArray(n)){E.value="Invalid catalog format",b.value=[];return}b.value=n.filter(s=>s.id&&s.name&&s.path)}catch(j){E.value=String(j),b.value=[]}finally{M.value=!1}}async function Te(m){const d=`${ks}${m.path}`;try{const T=await He().fetchRemoteConfig(d);if(!T.success||typeof T.data!="string")return{success:!1,error:T.error||"Failed to fetch assistant content"};const j=await X().importFromMd(T.data);return j.success&&await N(),j}catch(T){return{success:!1,error:String(T)}}}function Me(m){return e.value.some(d=>d.id===m)}function ve(m){t.value=m}function Ne(){t.value=null}async function Pe(m){try{return await X().getConfig(m)}catch(d){return console.error("[AssistantStore] Failed to get config:",d),null}}async function k(m,d){try{const T=await X().update(m,d);return T.success&&await N(),T}catch(T){return{success:!1,error:String(T)}}}async function I(m){try{const d=await X().reset(m);return d.success&&await N(),d}catch(d){return{success:!1,error:String(d)}}}async function R(m){const d=We(m);if(f.has(d))return null;f.add(d);try{const T=await X().getUpgradeInfo(d);if(!T)return null;try{if(c||(c={...(await Qe().getPreferences()).assistantUpgradeSkippedVersions}),T.latestVersion!==null&&c[T.builtinId]===T.latestVersion)return null}catch(j){console.error("[AssistantStore] Failed to load skipped assistant upgrades:",j)}return T}catch(T){return f.delete(d),console.error("[AssistantStore] Failed to check assistant upgrade:",T),null}}async function ee(m){if(m.latestVersion===null)return{success:!1,error:"Assistant template version is unavailable"};try{c||(c={...(await Qe().getPreferences()).assistantUpgradeSkippedVersions});const d={...c,[m.builtinId]:m.latestVersion},T=await Qe().savePreferences({assistantUpgradeSkippedVersions:d});return T.success&&(c=d),T}catch(d){return{success:!1,error:String(d)}}}async function de(m,d){try{const T=await X().upgradeWithBackup(m.assistantId,d);return T.success&&await N(),T}catch(T){return{success:!1,error:String(T)}}}async function Ae(m){try{const d=await X().importBuiltin(m);return d.success&&(await N(),await ye()),d}catch(d){return{success:!1,error:String(d)}}}async function Ue(m){try{const d=await X().reimport(m);return d.success&&(await N(),await ye()),d}catch(d){return{success:!1,error:String(d)}}}async function Le(m){try{const d=await X().create(m);return d.success&&await N(),d}catch(d){return{success:!1,error:String(d)}}}async function Je(m){try{const d=X(),T=await d.getConfig(m);if(!T)return{success:!1,error:"Assistant not found"};const{id:j,builtinId:n,...s}=T,o=await d.create({...s,name:`${T.name}${_s.global.t("ai.assistant.duplicateSuffix")}`});return o.success&&await N(),o}catch(d){return{success:!1,error:String(d)}}}async function Ve(m){try{const d=await X().delete(m);return d.success&&await N(),d}catch(d){return{success:!1,error:String(d)}}}return{assistants:e,selectedAssistantId:t,selectedAssistant:U,isLoaded:u,builtinCatalog:h,builtinToolCatalog:D,cloudCatalog:b,cloudLoading:M,cloudError:E,cloudCatalogWithStatus:K,currentChatType:x,currentLocale:H,filteredAssistants:V,defaultAssistants:Y,moreAssistants:ce,hasMoreAssistants:_,loadAssistants:N,loadBuiltinCatalog:ye,loadBuiltinToolCatalog:Re,fetchCloudCatalog:ie,importFromCloud:Te,isCloudItemImported:Me,selectAssistant:ve,clearSelection:Ne,setFilterContext:ue,getAssistantConfig:Pe,updateAssistant:k,createAssistant:Le,duplicateAssistant:Je,resetAssistant:I,checkDefaultAssistantUpgrade:R,skipAssistantUpgrade:ee,upgradeAssistantWithBackup:de,importAssistant:Ae,reimportAssistant:Ue,deleteAssistant:Ve}}),Is=ws,js={"zh-CN":"cn","zh-TW":"cn","en-US":"en","ja-JP":"ja"},Hs=is("skill",()=>{const e=q([]),t=q(null),u=q(!1),f=q([]),c=q([]),h=q(!1),D=q(null),b=q("group"),M=q("zh-CN");function E(){const k=M.value.startsWith("zh");return{id:xe,name:k?"绘图助手":"Chart Assistant",description:k?"按本轮问题生成灵活的聊天数据图表":"Generate flexible charts for this chat question",tags:[k?"图表":"chart"],chatScope:"all",tools:["render_chart","get_schema"],builtinId:xe}}const x=te(()=>t.value?t.value===xe?E():e.value.find(k=>k.id===t.value)??null:null),H=te(()=>E()),U=te(()=>e.value.filter(k=>k.chatScope==="all"||k.chatScope===b.value)),V=te(()=>{const I=Bs().selectedAssistant,R=[H.value,...U.value];return I?R.filter(ee=>(ee.tools.length,!0)):R}),F=te(()=>{const k={};for(const I of V.value){const R=I.tags[0]||"other";k[R]||(k[R]=[]),k[R].push(I)}return k}),Y=te(()=>{const k=new Set(e.value.map(I=>I.id));return c.value.map(I=>({...I,imported:k.has(I.id)}))});function ce(k,I){b.value=k,I&&(M.value=I)}async function _(){try{e.value=await le().getAll(),u.value=!0}catch(k){console.error("[SkillStore] Failed to load skills:",k)}}async function K(){try{f.value=await le().getBuiltinCatalog()}catch(k){console.error("[SkillStore] Failed to load builtin catalog:",k)}}async function ue(){const k=js[M.value]??"en",I=`${Is}/${k}/skill.json`;h.value=!0,D.value=null;try{const R=await He().fetchRemoteConfig(I);if(!R.success||!R.data){D.value=R.error||"Failed to fetch cloud catalog",c.value=[];return}const ee=R.data;if(!Array.isArray(ee)){D.value="Invalid catalog format",c.value=[];return}c.value=ee.filter(de=>de.id&&de.name&&de.path)}catch(R){D.value=String(R),c.value=[]}finally{h.value=!1}}async function N(k){const I=`${Is}${k.path}`;try{const R=await He().fetchRemoteConfig(I);if(!R.success||typeof R.data!="string")return{success:!1,error:R.error||"Failed to fetch skill content"};const ee=await le().importFromMd(R.data);return ee.success&&await _(),ee}catch(R){return{success:!1,error:String(R)}}}function ye(k){return e.value.some(I=>I.id===k)}function Re(k){t.value=k}async function ie(k){if(k===xe)return{...E(),prompt:"",builtinId:xe};try{return await le().getConfig(k)}catch(I){return console.error("[SkillStore] Failed to get skill config:",I),null}}async function Te(k,I){try{const R=await le().update(k,I);return R.success&&await _(),R}catch(R){return{success:!1,error:String(R)}}}async function Me(k){try{const I=await le().create(k);return I.success&&await _(),I}catch(I){return{success:!1,error:String(I)}}}async function ve(k){try{const I=await le().delete(k);return I.success&&(t.value===k&&(t.value=null),await _()),I}catch(I){return{success:!1,error:String(I)}}}async function Ne(k){try{const I=await le().importBuiltin(k);return I.success&&(await _(),await K()),I}catch(I){return{success:!1,error:String(I)}}}async function Pe(k){try{const I=await le().reimport(k);return I.success&&(await _(),await K()),I}catch(I){return{success:!1,error:String(I)}}}return{skills:e,activeSkillId:t,builtinCatalog:f,isLoaded:u,currentChatType:b,currentLocale:M,activeSkill:x,scopedSkills:U,compatibleSkills:V,groupedSkills:F,cloudCatalog:c,cloudLoading:h,cloudError:D,cloudCatalogWithStatus:Y,setFilterContext:ce,loadSkills:_,loadBuiltinCatalog:K,fetchCloudCatalog:ue,importFromCloud:N,isCloudItemImported:ye,activateSkill:Re,getSkillConfig:ie,updateSkill:Te,createSkill:Me,deleteSkill:ve,importSkill:Ne,reimportSkill:Pe}});async function Rs(e){const{url:t,method:u="POST",headers:f={},body:c,signal:h,onEvent:D}=e,b=await xs(t,{method:u,headers:{"Content-Type":"application/json",...f},body:c!=null?JSON.stringify(c):void 0,signal:h});if(!b.ok){const U=await b.text().catch(()=>"");throw new Error(`SSE request failed: HTTP ${b.status} ${U}`)}if(!b.body)throw new Error("SSE response has no body");const M=b.body.getReader(),E=new TextDecoder;let x="",H="";for(;;){const{done:U,value:V}=await M.read();if(U)break;x+=E.decode(V,{stream:!0});const F=x.split(`
5
- `);x=F.pop()||"";for(const Y of F)Y.startsWith("event: ")?H=Y.slice(7).trim():Y.startsWith("data: ")&&(D({event:H,data:Y.slice(6)}),H="")}x.trim()&&x.startsWith("data: ")&&D({event:H,data:x.slice(6)})}function ut(){return{async chatStream(e,t,u){let f;try{return await Rs({url:"/_web/ai/llm/chat-stream",body:{messages:e,options:t},onEvent:({data:c})=>{try{const h=JSON.parse(c);h.finishReason==="error"&&h.error&&(f=h.error),u?.(h)}catch{}}}),f?{success:!1,error:f}:{success:!0}}catch(c){const h=c instanceof Error?c.message:String(c);return{success:!1,error:f??h}}}}}const Be=new Map;function es(){return{runStream(e,t){const u=Date.now();ds("ai_request_started");const f=new AbortController,c=`local_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;Be.set(c,{serverId:"",abortController:f});const D=new Promise(b=>{let M="";const E=[];let x=0,H,U=!1,V;Rs({url:"/_web/ai/agent/stream",body:e,signal:f.signal,onEvent:({event:F,data:Y})=>{try{const ce=JSON.parse(Y);if(F==="meta"){const K=Be.get(c);K&&(K.serverId=ce.requestId??"");return}const _=ce;switch(t?.(_),_.type){case"content":_.content&&(M+=_.content);break;case"tool_start":_.toolName&&E.push(_.toolName);break;case"status":_.status&&(x=_.status.round);break;case"done":_.usage&&(H=_.usage);break;case"error":U=!0,V=_.error;break}}catch{}}}).then(()=>{Be.delete(c),b({success:!U,result:{content:M,toolsUsed:E,toolRounds:x,totalUsage:H},...U&&V?{error:V}:{}})}).catch(F=>{Be.delete(c),f.signal.aborted?b({success:!1,result:{content:M,toolsUsed:E,toolRounds:x,aborted:!0}}):b({success:!1,error:{name:"FetchError",message:F.message??String(F),stack:null}})})}).then(b=>(ds("ai_request_completed",{success:b.success,duration_ms:Date.now()-u,...b.success?{}:{failure_reason:b.result?.aborted?"aborted":b.error?.name==="FetchError"?"network":"unknown"}}),b));return{requestId:c,promise:D}},async abort(e){const t=Be.get(e);if(!t)return{success:!1,error:"Request not found"};if(t.abortController.abort(),t.serverId)try{const{post:u}=await Us(async()=>{const{post:f}=await import("./index-DkWTvE7d.js").then(c=>c.cP);return{post:f}},__vite__mapDeps([0,1,2]));await u("/ai/agent/abort",{requestId:t.serverId})}catch{}return Be.delete(e),{success:!0}}}}function Js(e){return e.desensitize&&!e.desensitizeRules.some(t=>t.builtin)}function Vs(e){if(e.dataCleaning||e.mergeConsecutive||e.blacklistKeywords.length>0||e.denoise||e.desensitize||e.anonymizeNames)return{dataCleaning:e.dataCleaning,mergeConsecutive:e.mergeConsecutive,mergeWindowSeconds:e.mergeWindowSeconds,blacklistKeywords:[...e.blacklistKeywords],denoise:e.denoise,desensitize:e.desensitize,desensitizeRules:e.desensitizeRules.map(u=>({...u,locales:[...u.locales]})),anonymizeNames:e.anonymizeNames}}function ae(e){return e==="render_chart"}function Gs(e,t,u){if(!e||!ae(e))return null;const f=e;return{type:"tool",tool:{name:f,displayName:f,status:"running",params:t,toolCallId:u,transient:!0}}}function Ms(e,t,u){if(!Z(e))return!1;const f=e;return f.type!=="tool"||!f.tool||f.tool.transient!==!0||f.tool.name!==t||u&&f.tool.toolCallId!==u?!1:ae(String(f.tool.name))}function Ys(e,t,u){let f=!1;const c=[...e];for(let h=c.length-1;h>=0;h--)if(Ms(c[h],t,u)){c.splice(h,1),f=!0;break}return f?c:[...e]}function Z(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ys(e){return Z(e)&&e.version===1&&Z(e.spec)&&Z(e.dataset)}function ns(e){if(!Z(e))return[];const t=Z(e.details)?e.details:e,u=[];if(ys(t.chart)&&u.push(t.chart),Array.isArray(t.charts))for(const f of t.charts)ys(f)&&u.push(f);return u}function Ns(e){return{...e,dataset:{...e.dataset,rows:[]}}}function Ps(e){return e.map(t=>({type:"chart",chart:Ns(t)}))}function rs(e){return Array.isArray(e)?`[${e.map(rs).join(",")}]`:Z(e)?`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${rs(e[t])}`).join(",")}}`:JSON.stringify(e)}function Ss(e){const t=Ns(e);return rs({spec:t.spec,columns:t.dataset.columns,data:t.data,rowCount:t.rowCount,truncated:t.truncated})}function Xs(e,t){const u=Ss(t);return e.some(f=>{if(!Z(f))return!1;const c=f;return c.type==="chart"&&c.chart?Ss(c.chart)===u:!1})}function Zs(e,t,u,f){const c=[...e];let h=-1;for(let E=c.length-1;E>=0;E--)if(Ms(c[E],t,u)){h=E;break}const D=h>=0?c.filter((E,x)=>x!==h):c,b=f.filter(E=>!Xs(D,E)),M=Ps(b);return h>=0?(c.splice(h,1,...M),c):[...c,...M]}function Qs(e,t,u,f,c){if(f.length>0)return Zs(e,t,u,f);const h=Ys(e,t,u);return c?[...h,c]:h}function dt(e,t,u){const f=e[t];return!Z(f)||f.type!=="error"||!Z(f.error)||f.error.name!=="ChartRenderError"?!1:u?.isStreaming?!0:e.slice(t+1).some(c=>Z(c)&&c.type==="chart")}function Ks(e){return Z(e)?typeof e.error=="string"?e.error:Z(e.error)&&typeof e.error.message=="string"?e.error.message:Array.isArray(e.content)?e.content.map(t=>Z(t)&&t.type==="text"&&typeof t.text=="string"?t.text:"").join(`
6
- `).trim():null:null}function hs(e,t){if(!ae(e)||ns(t).length>0)return null;const u=Ks(t);if(!u)return null;const c=/^Error:\s*(.+)$/is.exec(u)?.[1]?.trim();return!c||/^Call get_schema before render_chart\b/i.test(c)?null:{type:"error",error:{name:"ChartRenderError",message:c,stack:null}}}function je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ss(e){return je(e)&&e.version===1&&typeof e.query=="string"&&Array.isArray(e.groups)}function Ts(e){if(!je(e))return null;const t=je(e.details)?e.details:null;if(t&&ss(t.evidence))return t.evidence;const u=je(e.data)?e.data:null;return u&&ss(u.evidence)?u.evidence:ss(e.evidence)?e.evidence:null}function et(e){return{type:"evidence",evidence:e}}function vs(e){return JSON.parse(JSON.stringify(e))}function ls(e){return JSON.parse(JSON.stringify(e))}function Es(e){return e?.type==="plan_draft"&&typeof e.text=="string"}function st(e,t){const u=e.map(ls),f=u[u.length-1];return Es(f)?f.text+=t:u.push({type:"plan_draft",version:1,status:"streaming",text:t}),u}function tt(e,t){const u=e.map(ls);for(let f=u.length-1;f>=0;f--){const c=u[f];if(Es(c)){const h=c.text.trim();return u[f]={...vs(t),...h?{displayText:h}:{}},u}}return u.push(vs(t)),u}function nt(e){return e.filter(t=>t.type!=="plan_draft").map(ls)}function As(e){if(!e)return;const t=JSON.parse(JSON.stringify(e));for(const u of t)u.type==="tool"&&delete u.tool.displayResult;return t}const oe="__draft__";function rt(e){return e?`${e.startTs}_${e.endTs}`:"all"}function ot(e){return`${e.sessionId}:${e.chatType}:${rt(e.timeFilter)}`}function os(){return{promptTokens:0,completionTokens:0,totalTokens:0,cacheReadTokens:0,cacheWriteTokens:0}}function Cs(e){return{promptTokens:e.promptTokens??0,completionTokens:e.completionTokens??0,totalTokens:e.totalTokens??0,cacheReadTokens:e.cacheReadTokens??0,cacheWriteTokens:e.cacheWriteTokens??0}}function $e(e){if(e&&typeof e=="object"){const t=e;return{name:typeof t.name=="string"?t.name:null,message:typeof t.message=="string"?t.message:"未知错误",stack:typeof t.stack=="string"?t.stack:null,statusCode:typeof t.statusCode=="number"?t.statusCode:null,url:typeof t.url=="string"?t.url:null,responseBody:typeof t.responseBody=="string"?t.responseBody:null,responseHeaders:t.responseHeaders&&typeof t.responseHeaders=="object"?t.responseHeaders:null,requestBody:typeof t.requestBody=="string"?t.requestBody:null,cause:typeof t.cause=="string"?t.cause:null,provider:typeof t.provider=="string"?t.provider:null,friendlyMessage:typeof t.friendlyMessage=="string"?t.friendlyMessage:null}}return{name:null,message:e?String(e):"未知错误",stack:null}}function ze(e){return{id:e.id,role:e.role,content:e.content,timestamp:e.timestamp*1e3,parentId:e.parentId,contentBlocks:e.contentBlocks}}function as(e=null){return{messages:[],sourceMessages:[],currentKeywords:[],assistantId:e,loaded:!1}}function at(e){const t=as(null);return{sessionId:e.sessionId,sessionName:e.sessionName,chatType:e.chatType,locale:e.locale,timeFilter:e.timeFilter,selectedAssistantId:null,messages:t.messages,sourceMessages:t.sourceMessages,currentKeywords:t.currentKeywords,isLoadingSource:!1,isAIThinking:!1,currentAIChatId:null,currentToolStatus:null,toolsUsedInCurrentRound:[],sessionTokenUsage:os(),agentStatus:null,ownerInfo:void 0,ownerInfoInitialized:!1,isAborted:!1,currentRequestId:"",currentAgentRequestId:"",aiChatBuffers:{[oe]:t}}}function ts(e){return e.currentAIChatId??oe}const ft=is("aiChatRuntime",()=>{const e=q({}),t=q(null),u=Os(),f=Ls(),c=qs(),h=Bs(),D=Hs(),b=Ds(),{aiGlobalSettings:M}=Fs(u);let E=!1;function x(n){return`${n}_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function H(n){const s=ot(n),o=e.value[s];if(o)return o.sessionName=n.sessionName,o.chatType=n.chatType,o.locale=n.locale,o.timeFilter=n.timeFilter,{chatKey:s,state:o};const r=at(n);e.value[s]=r;const a=e.value[s];return K(s),{chatKey:s,state:a}}function U(n){return e.value[n]??null}function V(){return t.value?U(t.value.chatKey):null}function F(n,s,o=null){return n.aiChatBuffers[s]||(n.aiChatBuffers[s]=as(o)),n.aiChatBuffers[s]}function Y(n,s){const o=n.currentAIChatId??oe,r=n.aiChatBuffers[o];r&&(r.sessionTokenUsage={...n.sessionTokenUsage});const a=F(n,s);n.currentAIChatId=s===oe?null:s,n.messages=a.messages,n.sourceMessages=a.sourceMessages,n.currentKeywords=a.currentKeywords,n.selectedAssistantId=a.assistantId,n.sessionTokenUsage=a.sessionTokenUsage?{...a.sessionTokenUsage}:os(),n.agentStatus=null}function ce(n,s,o){const r=F(n,s);return n.aiChatBuffers[o]=r,s!==o&&delete n.aiChatBuffers[s],n.currentAIChatId===null&&s===oe&&(n.currentAIChatId=o),r}function _(n){const s=U(n);s&&(s.selectedAssistantId?h.selectAssistant(s.selectedAssistantId):h.clearSelection())}async function K(n){const s=U(n);if(!s)return;const r=f.sessions.find(a=>a.id===s.sessionId)?.ownerId;if(!r){s.ownerInfo=void 0,s.ownerInfoInitialized=!0;return}if(!(s.ownerInfoInitialized&&s.ownerInfo?.platformId===r))try{const w=(await fs().getMembers(s.sessionId)).find(v=>v.platformId===r);s.ownerInfo=w?{platformId:r,displayName:w.groupNickname||w.accountName||r}:{platformId:r,displayName:r},s.ownerInfoInitialized=!0}catch(a){console.error("[AI] 获取 Owner 信息失败:",a),s.ownerInfo=void 0,s.ownerInfoInitialized=!0}}function ue(n,s,o,r=null){const a=U(n);a&&(t.value={requestId:o,chatKey:n,sessionId:a.sessionId,sessionName:a.sessionName,chatType:a.chatType,aiChatId:r,questionPreview:s.trim().slice(0,80),startedAt:Date.now()})}function N(n,s){t.value&&t.value.chatKey===n&&(s&&t.value.requestId!==s||(t.value=null))}function ye(n,s){t.value&&t.value.chatKey===n&&(t.value.aiChatId=s)}function Re(n){return{phase:"preparing",round:0,toolsUsed:n.toolsUsedInCurrentRound.length,contextTokens:0,totalUsage:{...n.sessionTokenUsage},updatedAt:Date.now()}}function ie(n,s,o){const r=n.agentStatus?{...n.agentStatus}:Re(n);n.agentStatus={...r,...o,phase:s,updatedAt:Date.now()}}function Te(n,s){const o=U(n);if(!o||o.isAIThinking)return!1;const r=F(o,ts(o),s);return r.assistantId=s,o.selectedAssistantId=s,h.selectAssistant(s),!0}async function Me(n,s){const o=U(n);if(!o)return!1;try{const r=await re().getAIChat(s),a=F(o,s,r?.assistantId??null);if(!a.loaded){const[w,v]=await Promise.all([re().getMessages(s),re().getAIChatTokenUsage(s)]);a.messages.splice(0,a.messages.length,...w.map(S=>ze(S))),a.sourceMessages.splice(0,a.sourceMessages.length),a.currentKeywords.splice(0,a.currentKeywords.length),a.sessionTokenUsage=Cs(v),a.loaded=!0}return a.assistantId=r?.assistantId??a.assistantId??null,Y(o,s),_(n),!0}catch(r){return console.error("[AI] 加载对话历史失败:",r),!1}}function ve(n,s){const o=U(n);if(!o)return!1;const r=s??oe;return o.aiChatBuffers[r]?(Y(o,r),_(n),!0):!1}function Ne(){return t.value?(E=!0,ve(t.value.chatKey,t.value.aiChatId)):!1}async function Pe(n){if(E){E=!1;return}const s=U(n);if(!(!s||s.isAIThinking)){if(h.isLoaded||await h.loadAssistants(),!s.selectedAssistantId){const o=We(s.locale);Te(n,o)}k(n)}}function k(n,s){const o=U(n);if(!o||o.isAIThinking)return!1;const r=as(o.selectedAssistantId);return o.aiChatBuffers[oe]=r,Y(o,oe),o.currentToolStatus=null,o.toolsUsedInCurrentRound=[],o.isLoadingSource=!1,o.sessionTokenUsage=os(),o.agentStatus=null,o.isAborted=!1,o.currentRequestId="",o.currentAgentRequestId="",s&&r.messages.push({id:x("welcome"),role:"assistant",content:s,timestamp:Date.now()}),!0}async function I(){}async function R(){}function ee(n,s){const o=p=>{const y=s();n.messages[y]={...n.messages[y],...p}};return{updateAIMessage:o,appendTextToBlocks:p=>{if(!p)return;const y=s(),l=n.messages[y].contentBlocks||[],C=l[l.length-1];p.trim().length===0&&(!C||C.type!=="text")||(C&&C.type==="text"?C.text+=p:l.push({type:"text",text:p}),o({contentBlocks:[...l],content:n.messages[y].content+p}))},appendThinkToBlocks:(p,y,l)=>{if(!p&&l===void 0)return;const C=s(),B=n.messages[C].contentBlocks||[],J=y||"think",W=B[B.length-1];let L=W;if(W&&W.type==="think"&&W.tag===J)W.text+=p;else if(p.trim().length>0)L={type:"think",tag:J,text:p},B.push(L);else if(l!==void 0)for(let G=B.length-1;G>=0;G--){const Se=B[G];if(Se.type==="think"&&Se.tag===J){L=Se;break}}l!==void 0&&L&&L.type==="think"&&(L.durationMs=l),o({contentBlocks:[...B]})},appendChartsToBlocks:p=>{if(p.length===0)return;const y=s(),l=n.messages[y].contentBlocks||[];l.push(...Ps(p)),o({contentBlocks:[...l]})},appendEvidenceToBlocks:p=>{const y=s(),l=n.messages[y].contentBlocks||[];l.push(et(p)),o({contentBlocks:[...l]})},appendPlanDraftToBlocks:p=>{if(!p)return;const y=s(),l=n.messages[y].contentBlocks||[];o({contentBlocks:[...st(l,p)]})},appendPlanToBlocks:p=>{const y=s(),l=n.messages[y].contentBlocks||[];o({contentBlocks:[...tt(l,p)]})},removePlanDraftsFromBlocks:()=>{const p=s(),y=n.messages[p].contentBlocks||[];o({contentBlocks:[...nt(y)]})},updatePlanBlockStatus:p=>{const y=s(),l=n.messages[y].contentBlocks||[];for(let C=l.length-1;C>=0;C--){const B=l[C];if(B.type==="plan"){B.status=p;break}}o({contentBlocks:[...l]})},appendErrorToBlocks:p=>{const y=s(),l=n.messages[y].contentBlocks||[];l.push({type:"error",error:p}),o({contentBlocks:[...l]})},addToolBlock:(p,y,l)=>{const C=s(),B=n.messages[C].contentBlocks||[];B.push({type:"tool",tool:{name:p,displayName:p,status:"running",params:y,toolCallId:l}}),o({contentBlocks:[...B]})},addRenderOnlyToolPendingBlock:(p,y,l)=>{const C=Gs(p,y,l);if(!C)return;const B=s(),J=n.messages[B].contentBlocks||[];J.push(C),o({contentBlocks:[...J]})},updateRenderOnlyToolResult:(p,y,l,C)=>{const B=s(),J=n.messages[B].contentBlocks||[];o({contentBlocks:Qs(J,p,y,l,C)})},updateToolBlockStatus:(p,y,l)=>{const C=s(),B=n.messages[C].contentBlocks||[],J=L=>L.type==="tool"&&L.tool.status==="running";let W;if(l?.toolCallId)for(let L=B.length-1;L>=0;L--){const G=B[L];if(J(G)&&G.tool.toolCallId===l.toolCallId){W=G;break}}if(!W)for(let L=B.length-1;L>=0;L--){const G=B[L];if(J(G)&&G.tool.name===p){W=G;break}}W&&(W.tool.status=y,l?.result!==void 0&&(W.tool.result=l.result),l?.displayResult!==void 0&&(W.tool.displayResult=l.displayResult),l?.isError!==void 0&&(W.tool.isError=l.isError)),o({contentBlocks:[...B]})}}}async function de(n,s,o){const r=U(n);if(!r)return{success:!1,reason:"error"};if(!s.trim())return{success:!1,reason:"empty"};if(r.isAIThinking||t.value)return{success:!1,reason:"busy",activeTask:t.value};const a=x("req"),w=ts(r);let v=w===oe?null:w;const S=F(r,w,r.selectedAssistantId);let P,A;S.assistantId=r.selectedAssistantId,S.loaded=!0,ue(n,s,a,v),_(n),K(n);const $=D.activeSkillId,fe=D.activeSkill?.name,pe=M.value.enableAutoSkill??!0,ge=pe?M.value.chartAutoMode??"suggest":"explicit",Ce=(o?.mentionedMembers??[]).map(z=>({memberId:z.memberId,platformId:z.platformId,displayName:z.displayName,aliases:[...z.aliases],mentionText:z.mentionText}));r.isAIThinking=!0,r.isLoadingSource=!0,r.currentToolStatus=null,r.toolsUsedInCurrentRound=[],r.agentStatus=null,r.isAborted=!1,r.currentRequestId=a,r.currentAgentRequestId="";try{const z=await Ke().hasConfig();if(r.isAborted)return N(n,a),{success:!1,reason:"aborted"};if(r.currentRequestId!==a)return N(n,a),{success:!1,reason:"busy",activeTask:t.value};if(!z)return S.messages.push({id:x("error"),role:"assistant",content:"⚠️ 请先配置 AI 服务。点击左下角「设置」按钮前往「模型配置Tab」进行配置。",timestamp:Date.now()}),N(n,a),{success:!1,reason:"no_config"};const p={id:x("user"),role:"user",content:s,timestamp:Date.now(),toolCalls:[]};P=p,S.messages.push(p);const y={id:x("ai"),role:"assistant",content:"",timestamp:Date.now(),isStreaming:!0,contentBlocks:[]};$&&fe&&y.contentBlocks.push({type:"skill",skillId:$,skillName:fe}),S.messages.push(y);let l=S.messages.length-1,C=!1;const{updateAIMessage:B,appendTextToBlocks:J,appendThinkToBlocks:W,appendChartsToBlocks:L,appendEvidenceToBlocks:G,appendPlanDraftToBlocks:Se,appendPlanToBlocks:qe,removePlanDraftsFromBlocks:be,updatePlanBlockStatus:Ee,appendErrorToBlocks:Ge,addToolBlock:Ye,addRenderOnlyToolPendingBlock:Xe,updateRenderOnlyToolResult:De,updateToolBlockStatus:se}=ee(S,()=>l),me=S.assistantId??We(r.locale);if(!v){const i=s.slice(0,50)+(s.length>50?"...":""),O=await re().createAIChat(r.sessionId,i,me);if(r.isAborted)return B({isStreaming:!1}),N(n,a),{success:!1,reason:"aborted"};if(r.currentRequestId!==a)return B({isStreaming:!1}),N(n,a),{success:!1,reason:"busy",activeTask:t.value};v=O.id,ce(r,oe,O.id),S.assistantId=me,ye(n,O.id)}const ke={sessionId:r.sessionId,aiChatId:v,timeFilter:r.timeFilter?{startTs:r.timeFilter.startTs,endTs:r.timeFilter.endTs}:void 0,maxMessagesLimit:M.value.maxMessagesPerRequest,ownerInfo:r.ownerInfo?{platformId:r.ownerInfo.platformId,displayName:r.ownerInfo.displayName}:void 0,mentionedMembers:Ce.length>0?Ce:void 0,preprocessConfig:await Ue(),searchContextBefore:M.value.searchContextBefore,searchContextAfter:M.value.searchContextAfter},{requestId:he,promise:Ze}=es().runStream({userMessage:s,sessionId:r.sessionId,aiChatId:v,timeFilter:ke.timeFilter,maxMessagesLimit:ke.maxMessagesLimit,ownerInfo:ke.ownerInfo,mentionedMembers:ke.mentionedMembers,preprocessConfig:ke.preprocessConfig,chatType:r.chatType,locale:r.locale,assistantId:me,skillId:$,enableAutoSkill:$?void 0:pe,chartAutoMode:$?void 0:ge,thinkingLevel:(()=>{const i=b.defaultAssistant;if(!(!i?.configId||!i?.modelId))return u.getThinkingLevel(i.configId,i.modelId)})()},i=>{if(!(r.isAborted||a!==r.currentRequestId))switch(i.type){case"content":i.content&&(r.currentToolStatus=null,J(i.content));break;case"think":i.content?W(i.content,i.thinkTag):i.thinkDurationMs!==void 0&&W("",i.thinkTag,i.thinkDurationMs);break;case"tool_start":if(i.toolName){const O=i.toolParams;r.currentToolStatus={name:i.toolName,displayName:i.toolName,status:"running"},r.toolsUsedInCurrentRound.push(i.toolName),ae(i.toolName)?Xe(i.toolName,O,i.toolCallId):Ye(i.toolName,O,i.toolCallId)}break;case"tool_result":if(i.toolName){const O=ns(i.toolResult),Q=hs(i.toolName,i.toolResult);ae(i.toolName)?De(i.toolName,i.toolCallId,O,Q):L(O);const Fe=Ts(i.toolResult);Fe&&G(Fe),Q&&(ae(i.toolName)||Ge(Q.error));const _e=Q!==null||i.toolIsError===!0;if(r.currentToolStatus?.name===i.toolName&&(r.currentToolStatus={...r.currentToolStatus,status:_e?"error":"done"}),!ae(i.toolName)){const we=gs(i.toolResult);se(i.toolName,_e?"error":"done",{toolCallId:i.toolCallId,result:ms(we),displayResult:we,isError:i.toolIsError})}}r.isLoadingSource=!1;break;case"plan_delta":i.planDelta&&Se(i.planDelta);break;case"plan":i.plan&&(qe(i.plan),Ee("executing"));break;case"plan_skipped":be();break;case"status":i.status&&(!r.agentStatus||i.status.updatedAt>=r.agentStatus.updatedAt)&&(r.agentStatus=i.status);break;case"compression_done":if(i.compressionResult){const O={id:`summary-${Date.now()}`,role:"summary",content:i.compressionResult.summaryContent,timestamp:i.compressionResult.timestamp},Q=Math.max(0,S.messages.length-1);S.messages.splice(Q,0,O),l++}break;case"done":r.currentToolStatus=null,C||Ee("done"),i.usage&&(A={...i.usage},r.sessionTokenUsage={promptTokens:r.sessionTokenUsage.promptTokens+i.usage.promptTokens,completionTokens:r.sessionTokenUsage.completionTokens+i.usage.completionTokens,totalTokens:r.sessionTokenUsage.totalTokens+i.usage.totalTokens,cacheReadTokens:r.sessionTokenUsage.cacheReadTokens+i.usage.cacheReadTokens,cacheWriteTokens:r.sessionTokenUsage.cacheWriteTokens+i.usage.cacheWriteTokens}),ie(r,"completed",i.usage?{totalUsage:i.usage}:void 0);break;case"error":if(be(),Ee("skipped"),r.currentToolStatus&&(r.currentToolStatus={...r.currentToolStatus,status:"error"},se(r.currentToolStatus.name,"error")),!C){C=!0;const O=S.messages[l].contentBlocks||[];O.push({type:"error",error:$e(i.error)}),B({contentBlocks:[...O],isStreaming:!1})}ie(r,"error");break}});r.currentAgentRequestId=he,ue(n,s,he,v);const ne=await Ze;if(r.isAborted)return N(n,he),{success:!1,reason:"aborted"};if(a!==r.currentRequestId)return N(n,he),{success:!1,reason:"busy",activeTask:t.value};if(ne.success&&ne.result){S.messages[l]={...S.messages[l],dataSource:{toolsUsed:ne.result.toolsUsed,toolRounds:ne.result.toolRounds},isStreaming:!1};const i=await Ae(v,p,S.messages[l],A);i&&(Object.assign(p,i.userMessage),S.messages[l]={...S.messages[l],...i.assistantMessage,isStreaming:!1})}else if(C){const i=await Ae(v,p,S.messages[l],A);i&&(Object.assign(p,i.userMessage),S.messages[l]={...S.messages[l],...i.assistantMessage,isStreaming:!1})}else{const i=S.messages[l].contentBlocks||[];i.push({type:"error",error:$e(ne.error)}),S.messages[l]={...S.messages[l],contentBlocks:[...i],isStreaming:!1};const O=await Ae(v,p,S.messages[l],A);O&&(Object.assign(p,O.userMessage),S.messages[l]={...S.messages[l],...O.assistantMessage,isStreaming:!1})}return{success:!0}}catch(z){console.error("[AI] 处理失败:",z),r.agentStatus=null;const p=S.messages[S.messages.length-1];if(p&&p.role==="assistant"){const y={name:z instanceof Error?z.name:null,message:z instanceof Error?z.message:String(z),stack:z instanceof Error?z.stack??null:null},l=p.contentBlocks||[];l.push({type:"error",error:y}),p.contentBlocks=[...l],p.isStreaming=!1;const C=P||S.messages.findLast(B=>B.role==="user");C&&await Ae(v,C,p,A)}return{success:!1,reason:"error"}}finally{r.isAIThinking=!1,r.isLoadingSource=!1,r.currentToolStatus=null,r.isAborted=!1,r.currentRequestId="",r.currentAgentRequestId="",N(n)}}async function Ae(n,s,o,r){try{if(!n)return null;const a=await re().addMessage(n,"user",s.content),w=As(o.contentBlocks),v=await re().addMessage(n,"assistant",o.content,void 0,void 0,w,r);return{userMessage:ze(a),assistantMessage:ze(v)}}catch(a){return console.error("[AI] 保存对话失败:",a),null}}async function Ue(){const n=c.aiPreprocessConfig;return Js(n)&&await c.ensureDesensitizeRules(),Vs(c.aiPreprocessConfig)}function Le(n){return n.trim().replace(/^[\s"'“”‘’([{<]+|[\s"'“”‘’)\]}>.,!?;:,。!?;:、]+$/g,"").toLocaleLowerCase()}async function Je(n,s){const o=new Set;for(const r of s.matchAll(/@([^\s@]+)/g)){const a=Le(r[1]??"");a&&o.add(a)}if(o.size===0)return[];try{const r=await fs().getMembers(n.sessionId),a=new Map;r.forEach(P=>{const A=P.groupNickname||P.accountName||P.platformId;a.set(A,(a.get(A)??0)+1)});const w=r.map(P=>{const A=P.groupNickname||P.accountName||P.platformId,$=(a.get(A)??0)>1?`${A}·${P.platformId}`:A,fe=[...P.aliases],pe=[A,P.groupNickname||"",P.accountName||"",P.platformId,$,...fe].map(Le).filter(Boolean);return{memberId:P.id,platformId:P.platformId,displayName:A,aliases:fe,mentionText:`@${$}`,lookupValues:pe}}),v=[],S=new Set;for(const P of o){const A=w.find($=>!S.has($.memberId)&&$.lookupValues.includes(P));A&&(S.add(A.memberId),v.push({memberId:A.memberId,platformId:A.platformId,displayName:A.displayName,aliases:A.aliases,mentionText:A.mentionText}))}return v}catch(r){return console.error("[AI] Failed to resolve mentioned members for edited message:",r),[]}}async function Ve(n,s,o,r){const a=U(n),w=o.trim();if(!a||!a.currentAIChatId)return{success:!1,reason:"error"};if(!w)return{success:!1,reason:"empty"};if(a.isAIThinking||t.value)return{success:!1,reason:"busy",activeTask:t.value};const v=r?.overwriteSubsequent??!1,S=F(a,a.currentAIChatId,a.selectedAssistantId),P=S.messages.findIndex($=>$.id===s),A=S.messages[P];return!A||A.role!=="user"||A.isStreaming?{success:!1,reason:"error"}:A.content.trim()===w?{success:!1,reason:"empty"}:v?m(n,a,S,P,A,w):d(n,a,S,P,A,w)}async function m(n,s,o,r,a,w){try{return await Ke().hasConfig()?s.isAborted?{success:!1,reason:"aborted"}:s.isAIThinking||t.value?{success:!1,reason:"busy",activeTask:t.value}:(await re().deleteMessagesFrom(s.currentAIChatId,a.id),o.messages.splice(r,o.messages.length-r),de(n,w)):{success:!1,reason:"no_config"}}catch(v){return console.error("[AI] edit and overwrite failed:",v),{success:!1,reason:"error"}}}async function d(n,s,o,r,a,w){const v=x("req");let S,P=!1;ue(n,w,v,s.currentAIChatId),_(n),K(n),s.isAIThinking=!0,s.isLoadingSource=!0,s.currentToolStatus=null,s.toolsUsedInCurrentRound=[],s.agentStatus=null,s.isAborted=!1,s.currentRequestId=v,s.currentAgentRequestId="";const A=o.messages[r+1],$=A?.role==="assistant",fe=$?o.messages.slice(r+2):o.messages.slice(r+1),pe={id:x("ai"),role:"assistant",content:"",timestamp:Date.now(),isStreaming:!0,contentBlocks:[]},ge=D.activeSkillId,Ce=D.activeSkill?.name;ge&&Ce&&pe.contentBlocks.push({type:"skill",skillId:ge,skillName:Ce});const z={...a,content:w},p=$?2:1;o.messages.splice(r,p,z,pe);const y=r+1,l=()=>{o.messages.splice(r,o.messages.length-r,a),$&&o.messages.splice(r+1,0,A),o.messages.push(...fe)},{updateAIMessage:C,appendTextToBlocks:B,appendThinkToBlocks:J,appendChartsToBlocks:W,appendEvidenceToBlocks:L,appendPlanDraftToBlocks:G,appendPlanToBlocks:Se,removePlanDraftsFromBlocks:qe,updatePlanBlockStatus:be,appendErrorToBlocks:Ee,addToolBlock:Ge,addRenderOnlyToolPendingBlock:Ye,updateRenderOnlyToolResult:Xe,updateToolBlockStatus:De}=ee(o,()=>y);try{if(!await Ke().hasConfig())return l(),N(n,v),{success:!1,reason:"no_config"};const me=o.assistantId??We(s.locale),ke=await Je(s,w);if(s.isAborted)return l(),N(n,v),{success:!1,reason:"aborted"};if(v!==s.currentRequestId)return l(),N(n,v),{success:!1,reason:"busy",activeTask:t.value};const he=M.value.enableAutoSkill??!0,Ze=he?M.value.chartAutoMode??"suggest":"explicit",ne={sessionId:s.sessionId,aiChatId:s.currentAIChatId,historyLeafMessageId:a.parentId??null,timeFilter:s.timeFilter?{startTs:s.timeFilter.startTs,endTs:s.timeFilter.endTs}:void 0,maxMessagesLimit:M.value.maxMessagesPerRequest,ownerInfo:s.ownerInfo?{platformId:s.ownerInfo.platformId,displayName:s.ownerInfo.displayName}:void 0,mentionedMembers:ke.length>0?ke:void 0,preprocessConfig:await Ue(),searchContextBefore:M.value.searchContextBefore,searchContextAfter:M.value.searchContextAfter},{requestId:i,promise:O}=es().runStream({userMessage:w,sessionId:s.sessionId,aiChatId:s.currentAIChatId,historyLeafMessageId:a.parentId??null,timeFilter:ne.timeFilter,maxMessagesLimit:ne.maxMessagesLimit,ownerInfo:ne.ownerInfo,mentionedMembers:ne.mentionedMembers,preprocessConfig:ne.preprocessConfig,chatType:s.chatType,locale:s.locale,assistantId:me,skillId:ge,enableAutoSkill:ge?void 0:he,chartAutoMode:ge?void 0:Ze,thinkingLevel:(()=>{const g=b.defaultAssistant;if(!(!g?.configId||!g?.modelId))return u.getThinkingLevel(g.configId,g.modelId)})()},g=>{if(!(s.isAborted||v!==s.currentRequestId))switch(g.type){case"content":s.currentToolStatus=null,B(g.content||"");break;case"think":g.content?J(g.content,g.thinkTag):g.thinkDurationMs!==void 0&&J("",g.thinkTag,g.thinkDurationMs);break;case"tool_start":if(g.toolName){const Ie=g.toolParams;s.currentToolStatus={name:g.toolName,displayName:g.toolName,status:"running"},s.toolsUsedInCurrentRound.push(g.toolName),ae(g.toolName)?Ye(g.toolName,Ie,g.toolCallId):Ge(g.toolName,Ie,g.toolCallId)}break;case"tool_result":if(g.toolName){const Ie=ns(g.toolResult),Oe=hs(g.toolName,g.toolResult);ae(g.toolName)?Xe(g.toolName,g.toolCallId,Ie,Oe):W(Ie);const cs=Ts(g.toolResult);if(cs&&L(cs),Oe&&(ae(g.toolName)||Ee(Oe.error)),!ae(g.toolName)){const us=gs(g.toolResult);De(g.toolName,Oe!==null||g.toolIsError===!0?"error":"done",{toolCallId:g.toolCallId,result:ms(us),displayResult:us,isError:g.toolIsError})}}s.currentToolStatus=null,s.isLoadingSource=!1;break;case"plan_delta":g.planDelta&&G(g.planDelta);break;case"plan":g.plan&&(Se(g.plan),be("executing"));break;case"plan_skipped":qe();break;case"status":g.status&&(!s.agentStatus||g.status.updatedAt>=s.agentStatus.updatedAt)&&(s.agentStatus=g.status);break;case"done":s.currentToolStatus=null,P||be("done"),g.usage&&(S={...g.usage}),ie(s,"completed",g.usage?{totalUsage:g.usage}:void 0);break;case"error":{qe(),be("skipped"),P=!0,s.currentToolStatus&&De(s.currentToolStatus.name,"error");const Ie=o.messages[y].contentBlocks||[];Ie.push({type:"error",error:$e(g.error)}),C({contentBlocks:[...Ie],isStreaming:!1}),ie(s,"error");break}}});s.currentAgentRequestId=i,ue(n,w,i,s.currentAIChatId);const Q=await O;if(s.isAborted)return l(),N(n,i),{success:!1,reason:"aborted"};if(v!==s.currentRequestId)return l(),N(n,i),{success:!1,reason:"busy",activeTask:t.value};if(Q.success&&Q.result)C({dataSource:{toolsUsed:Q.result.toolsUsed,toolRounds:Q.result.toolRounds},isStreaming:!1});else if(!P){const g=o.messages[y].contentBlocks||[];g.push({type:"error",error:$e(Q.error)}),C({contentBlocks:[...g],isStreaming:!1})}if(!Q.success)return l(),{success:!1,reason:"error"};await re().updateMessageContent(a.id,w),$&&await re().deleteAndRelinkMessage(s.currentAIChatId,A.id);const Fe=As(o.messages[y].contentBlocks),_e=await re().insertMessageAfter(s.currentAIChatId,a.id,"assistant",o.messages[y].content,Fe,S);o.messages[y]={...ze(_e),dataSource:o.messages[y].dataSource,isStreaming:!1},o.messages[r]={...o.messages[r],content:w};const we=y+1;return we<o.messages.length&&(o.messages[we]={...o.messages[we],parentId:_e.id}),o.sessionTokenUsage=Cs(await re().getAIChatTokenUsage(s.currentAIChatId)),s.sessionTokenUsage={...o.sessionTokenUsage},{success:!0}}catch(se){if(s.isAborted)return l(),{success:!1,reason:"aborted"};console.error("[AI] edit and regenerate failed:",se);const me=o.messages[y]?.contentBlocks||[];return me.push({type:"error",error:{name:se instanceof Error?se.name:null,message:se instanceof Error?se.message:String(se),stack:se instanceof Error?se.stack??null:null}}),o.messages[y]&&C({contentBlocks:[...me],isStreaming:!1}),{success:!1,reason:"error"}}finally{s.isAIThinking=!1,s.isLoadingSource=!1,s.currentToolStatus=null,s.isAborted=!1,s.currentRequestId="",s.currentAgentRequestId="",N(n)}}async function T(n){const s=U(n);if(!s||!s.isAIThinking)return!1;s.isAborted=!0,s.isAIThinking=!1,s.isLoadingSource=!1,s.currentToolStatus=null,ie(s,"aborted");const o=t.value?.chatKey===n?t.value.aiChatId??oe:ts(s),r=s.aiChatBuffers[o],a=r?r.messages[r.messages.length-1]:void 0;if(a&&a.role==="assistant"&&a.isStreaming&&(a.isStreaming=!1,a.content+=`
7
-
8
- _(已停止生成)_`),s.currentAgentRequestId)try{await es().abort(s.currentAgentRequestId)}catch(w){console.error("[AI] 中止 Agent 请求失败:",w)}return s.currentRequestId="",s.currentAgentRequestId="",N(n),!0}async function j(){return t.value?T(t.value.chatKey):!1}return{sessionStates:e,activeTask:t,ensureSessionState:H,getSessionState:U,getActiveTaskState:V,applySessionAssistantSelection:_,selectAssistantForSession:Te,loadAIChat:Me,focusAIChat:ve,focusActiveTaskAIChat:Ne,resetToSelectorOnEnter:Pe,startNewAIChat:k,loadMoreSourceMessages:I,updateMaxMessages:R,sendMessage:de,editMessageAndRegenerate:Ve,stopGeneration:T,stopActiveTask:j}});export{ut as a,Hs as b,Bs as c,dt as s,ft as u};
@@ -1 +0,0 @@
1
- import{a as u,af as h,o as m,c as x,f,ag as e}from"./index-DkWTvE7d.js";import{_ as y}from"./EChart.vue_vue_type_script_setup_true_lang-CsgJ-Xn3.js";const L=u({__name:"EChartBar",props:{data:{},height:{default:200},mode:{default:"expanded"},horizontal:{type:Boolean,default:!1},gradient:{type:Boolean,default:!0},borderRadius:{default:4}},setup(t){const o=t,s=h(),i=f(()=>s.value==="dark"),n={type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"#ee4567"},{offset:1,color:"#f7758c"}]},p=f(()=>{const a=o.horizontal,l=o.mode==="compact",c=o.data.labels.length,r=i.value?"#a1a1aa":"#6b7280",d=i.value?"rgba(255, 255, 255, 0.08)":"#e5e7eb";return{tooltip:{trigger:"axis",confine:!0,extraCssText:"max-width: min(360px, 70vw); white-space: normal; word-break: break-word;",axisPointer:{type:"shadow"},backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},grid:{left:a?l?72:96:36,right:16,top:20,bottom:a?20:c>8?48:30,outerBoundsMode:"same"},xAxis:a?{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{type:"dashed",color:d}},axisLabel:{fontSize:11,color:r}}:{type:"category",data:o.data.labels,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:r,interval:"auto",rotate:!a&&c>8?28:0,hideOverlap:!0}},yAxis:a?{type:"category",data:o.data.labels,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:r,overflow:"truncate",width:l?70:110}}:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{type:"dashed",color:d}},axisLabel:{fontSize:11,color:r}},series:[{type:"bar",data:o.data.values,itemStyle:{color:o.gradient?n:"#ee4567",borderRadius:o.borderRadius},barMaxWidth:40,emphasis:{itemStyle:{color:o.gradient?{...n,colorStops:[{offset:0,color:"#de335e"},{offset:1,color:"#ee4567"}]}:"#de335e"}}}]}});return(a,l)=>(m(),x(y,{option:p.value,height:t.height},null,8,["option","height"]))}}),g={[e.TEXT]:"text",[e.IMAGE]:"image",[e.VOICE]:"voice",[e.VIDEO]:"video",[e.FILE]:"file",[e.EMOJI]:"emoji",[e.LINK]:"link",[e.LOCATION]:"location",[e.RED_PACKET]:"redPacket",[e.TRANSFER]:"transfer",[e.POKE]:"poke",[e.CALL]:"call",[e.SHARE]:"share",[e.REPLY]:"reply",[e.FORWARD]:"forward",[e.CONTACT]:"contact",[e.SYSTEM]:"system",[e.RECALL]:"recall",[e.OTHER]:"other"};function T(t,o){const s=g[t];return o&&s?o(`common.messageType.${s}`):o?o("common.messageType.unknown"):"未知"}export{L as _,T as g};
@@ -1 +0,0 @@
1
- import{k as s}from"./index-DkWTvE7d.js";function u(r){const t=new Date(r*1e3),n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),e=String(t.getDate()).padStart(2,"0");return`${n}-${a}-${e}`}function f(r){const t=new Date(r*1e3),n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),e=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${n}-${a}-${e} ${o}:${i}`}function m(r){return s.unix(r).format("YYYY-MM-DD HH:mm:ss")}function g(r,t){const n=u(r);if(t===null)return`${n} ~ 至今`;const a=u(t);return n===a?n:`${n} ~ ${a}`}function d(r,t,n="YYYY/MM/DD",a=" - "){const e=s.unix(r).format(n),o=s.unix(t).format(n);return e===o?e:`${e}${a}${o}`}export{u as a,m as b,g as c,f as d,d as f};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RelationshipGalaxyThreeCanvas-CqdqveEJ.js","assets/index-DkWTvE7d.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-BWZIoPV3.css","assets/relationship-galaxy-connections-Cg4G5yYE.js","assets/relationship-galaxy-viewport-Cwfa51ER.js","assets/RelationshipGalaxyThreeCanvas-TYGOUDiv.css","assets/RelationshipGalaxyCanvas-BnkcrIpk.js"])))=>i.map(i=>d[i]);
2
- import{a as St,a0 as Rt,ad as Tt,i as te,B as Ct,ac as Nt,h as b,l as o,c as ae,e as p,D as I,Y as It,w as de,aX as Mt,v as i,F as Ie,q as Me,s as L,aU as Pe,n as Le,r as f,f as g,H as z,a3 as Pt,an as Lt,o as m,a4 as Ee,aj as Et,bt as He,bu as Ue,bv as Vt}from"./index-DkWTvE7d.js";import{_ as Kt}from"./Tabs-B6Nzq2NQ.js";import{u as Gt}from"./useToast-CxhJkhXK.js";import{_ as At}from"./LoadingState.vue_vue_type_script_setup_true_lang-CwDIA0UP.js";import{u as Ft}from"./people-page-header-DNPjaSt4.js";import{b as zt,a as $t}from"./relationship-galaxy-connections-Cg4G5yYE.js";const Dt=10,We=80,Ot=2880*60*60,qe=.1;function jt(e,r,l={}){if(!r)return{items:[],total:0,hasMore:!1};const k=new Map(e.nodes.map(u=>[u.key,u])),a=e.edges.flatMap(u=>{if(u.sourceKey!==r&&u.targetKey!==r)return[];const w=u.sourceKey===r?u.targetKey:u.sourceKey,K=k.get(w);return K?[{node:K,edge:u,connectionScore:0}]:[]}),M=a.reduce((u,w)=>Math.max(u,w.edge.lastInteractionTs??0),0),E=new Map(a.map(u=>[u,Ve(u.edge,M)]));for(const u of a)u.connectionScore=Bt(E.get(u)??0);a.sort((u,w)=>Ht(u,w,M));const V=l.collapsedLimit??Dt;return{items:l.expanded?a:a.slice(0,V),total:a.length,hasMore:!l.expanded&&a.length>V}}function Io(e,r,l={}){return $t(e,r,{limit:l.limit??We})}function Mo(e,r,l={}){return zt(e,r,l)}function Bt(e){return e<=0?0:Math.max(1,Math.round(e))}function Ht(e,r,l){const k=Ve(r.edge,l),a=Ve(e.edge,l);if(k!==a)return k-a;if(r.edge.weight!==e.edge.weight)return r.edge.weight-e.edge.weight;const M=r.edge.lastInteractionTs??0,E=e.edge.lastInteractionTs??0;return M!==E?M-E:e.node.rank!==r.node.rank?e.node.rank-r.node.rank:e.node.key.localeCompare(r.node.key)}function Ve(e,r){if(!e.lastInteractionTs||r<=0)return e.weight;const l=Math.max(0,r-e.lastInteractionTs),k=qe+(1-qe)*Math.pow(.5,l/Ot);return e.weight*k}function Qe(e){return e.selectedKey&&e.selectedKey===e.loadingNeighborhoodKey?e.currentCanvasSelectedKey:e.selectedKey}function Ut(e){return e.selectedKey?e.isNeighborhoodMode?e.selectedKey!==e.neighborhoodContactKey:!0:!1}function qt(e){return e.neighborhoodTask?.status==="running"?e.neighborhoodTask:e.graphTask?.status==="running"?e.graphTask:e.isNeighborhoodMode&&e.neighborhoodTask?e.neighborhoodTask:e.graphTask??e.neighborhoodTask??null}function Qt(e){return e.nextTaskStatus==="running"?{type:"continue-polling"}:e.previousTaskStatus==="running"&&e.nextTaskStatus==="succeeded"&&e.neighborhoodContactKey?{type:"refresh-neighborhood",key:e.neighborhoodContactKey}:{type:"stop-polling"}}function Wt(e){return e.loadError?e.loadError:e.isTaskFailed&&e.statusText?e.statusText:e.emptyText}const Yt=new RegExp("\\p{Script=Han}","u");function Ye(e){const r=e?.trim()??"";if(!r)return"*";const l=Array.from(r),k=[...l].reverse().find(a=>Yt.test(a));return k?`**${k}`:l.length===1?"*":l.length===2?`${l[0]}***`:`${l[0]}***${l.at(-1)}`}function Xe(e,r){if(e.kind==="owner")return r.ownerLabel;const l=e.displayName||e.platformId||e.key;return r.privacyMode?Ye(l):l}function Xt(e,r){return e.kind==="owner"?r.ownerLabel:r.privacyMode?"*":(e.displayName||e.platformId||"?").slice(0,1)}function Jt(e,r){return e.kind==="owner"?e.avatar:r?null:e.avatar}function Zt(e,r){const l=e.platformId||e.key;return r?Ye(l):l}const ea="3d";function ta(e){return e==="3d"?"2d":e}function aa(e,r,l){return r||l?l:e?.captureView()??null}function oa(e,r){return r&&e?.restoreView(r)===!0?!0:(e?.fitView(),!1)}function na(e,r){return{nodes:e.nodes.map(l=>({...l,displayName:Xe(l,r),visualRole:l.kind==="owner"?"anchor":l.pool==="friend"?"close":"standard",importance:sa(l)})),edges:e.edges.map(l=>({...l})),communities:e.communities.map(l=>({...l}))}}function sa(e){if(e.kind==="owner")return 1;const r=oe(e.score,0,1),l=oe(1-(e.rank-1)/120,0,1),k=oe(Math.log10(e.privateMessageCount+1)/4,0,1),a=oe(Math.log10(e.groupMessageCount+1)/4.5,0,1),M=e.pool==="friend"?.12:0;return oe(r*.36+l*.36+k*.18+a*.08+M,0,1)}function oe(e,r,l){return Math.min(l,Math.max(r,e))}const ra={class:"flex min-h-0 flex-1 overflow-hidden text-gray-900 dark:bg-page-dark dark:text-gray-100"},la={class:"relative min-h-0 min-w-0 flex-1 overflow-hidden bg-[#0b0f19] dark:bg-page-dark"},ia={class:"absolute left-6 top-4 z-20 flex max-w-[calc(100%-3rem)] flex-wrap items-center gap-2"},ca={class:"relative w-28 max-w-full sm:w-32 lg:w-36"},ua={key:0,class:"absolute left-0 top-full z-30 mt-2 max-h-80 w-72 overflow-y-auto rounded-2xl border border-gray-200/80 bg-white/95 p-2 shadow-overlay backdrop-blur-xl scrollbar-thin dark:border-white/10 dark:bg-page-dark/95"},da={class:"px-2 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},ha={class:"space-y-1"},pa=["disabled","onClick"],va={class:"min-w-0 flex-1"},ga={class:"block truncate text-sm font-semibold text-gray-900 transition-colors group-hover:text-sky-600 dark:text-white dark:group-hover:text-sky-400"},fa={class:"block truncate text-[11px] text-gray-500 dark:text-gray-400"},ma={key:0,class:"shrink-0 rounded-md bg-sky-100/60 px-1.5 py-0.5 text-[10px] font-semibold text-sky-600 dark:bg-sky-500/15 dark:text-sky-400"},ya={key:2,class:"absolute bottom-6 left-1/2 z-20 flex max-w-[min(560px,calc(100%-2rem))] -translate-x-1/2 items-center gap-2.5 rounded-2xl border border-sky-500/20 bg-[#090d16]/85 px-4 py-2.5 text-center text-xs font-semibold text-sky-200 shadow-overlay backdrop-blur-md animate-fade-in"},ba={key:4,class:"absolute inset-0 flex items-center justify-center text-sm font-medium text-gray-400"},xa={key:5,class:"dark absolute inset-x-3 bottom-3 z-20 flex max-h-[70vh] flex-col overflow-hidden rounded-2xl border border-white/5 bg-page-dark/10 text-white shadow-overlay backdrop-blur-md md:inset-x-auto md:bottom-4 md:right-4 md:top-4 md:max-h-none md:w-[360px]"},ka={key:0,class:"flex min-h-0 flex-1 flex-col gap-3 px-4 pb-4 pt-5"},wa={class:"shrink-0 space-y-2.5"},_a={class:"flex items-center gap-3 pr-8"},Sa={class:"min-w-0 flex-1"},Ra={class:"flex min-w-0 items-center gap-1.5"},Ta={class:"truncate text-base font-bold text-gray-900 dark:text-white"},Ca={class:"truncate text-xs text-gray-500 dark:text-gray-400"},Na={class:"grid grid-cols-3 gap-1 text-xs"},Ia={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Ma={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Pa={class:"flex min-w-0 items-baseline gap-0.5"},La={class:"font-mono text-sm font-bold leading-4 text-sky-600 dark:text-sky-400"},Ea={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Va={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ka={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Ga={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Aa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Fa={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},za={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},$a={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Da={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Oa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},ja={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ba={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Ha={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ua={class:"block truncate text-[11px] font-semibold leading-4 text-gray-900 dark:text-white"},qa={class:"flex min-h-0 flex-1 flex-col gap-2"},Qa={class:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-gray-100/80 bg-gray-50/25 p-2.5 dark:border-white/5 dark:bg-white/2"},Wa={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},Ya={class:"flex min-w-0 items-center gap-2"},Xa={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Ja={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},Za={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},eo={key:0,class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},to=["onClick"],ao={class:"min-w-0 flex-1"},oo={class:"block truncate text-[13px] font-semibold leading-4 text-gray-900 transition-colors group-hover:text-sky-600 dark:text-white dark:group-hover:text-sky-400"},no={class:"flex w-14 shrink-0 justify-end"},so={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},ro={key:1,class:"py-4 text-center text-xs text-gray-400 dark:text-gray-500"},lo={key:0,class:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-gray-100/80 bg-gray-50/25 p-2.5 dark:border-white/5 dark:bg-white/2"},io={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},co={class:"flex min-w-0 items-center gap-2"},uo={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},ho={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},po={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},vo={class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},go={class:"flex min-w-0 items-center gap-2"},fo={class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/45 shadow-sm dark:bg-white/5"},mo={class:"truncate font-semibold leading-4 text-gray-700 dark:text-gray-200"},yo={class:"flex w-14 shrink-0 justify-end"},bo={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},xo=1400,ko=392,wo=St({__name:"index",setup(e){const r={nodes:[],edges:[],communities:[]},l=He(()=>Ue(()=>import("./RelationshipGalaxyThreeCanvas-CqdqveEJ.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),k=He(()=>Ue(()=>import("./RelationshipGalaxyCanvas-BnkcrIpk.js").then(t=>t.as),__vite__mapDeps([7,1,2,3,5]))),{t:a,locale:M}=Rt(),E=Tt(),V=Gt(),A=f("1y"),u=f("panorama"),w=f(""),K=f(""),$=f(!1),ne=f(""),v=f(null),G=f(!1),D=f(null),T=f(null),he=f(!1),pe=f(!1),U=f(!1),Ke=f(!1),F=f(null),_=f(null),P=f(!1),q=f(ea),Q=f(""),W=f(0),O=f(0),R=f(null),se=f(null);let re=null,ve=null,Y=null,X=null,le=null,ge=!1;const Je=g(()=>new Intl.NumberFormat(M.value)),Ze=g(()=>Vt.map(t=>({label:a(`relationships.timeRange.${t}`),value:t}))),et=g(()=>[{label:a("relationships.graphScope.panorama"),value:"panorama"},{label:a("relationships.graphScope.close"),value:"close"},{label:a("relationships.graphScope.friends"),value:"friends"}]),C=g(()=>T.value?.graph??D.value?.graph??r),tt=g(()=>na(C.value,{privacyMode:P.value,ownerLabel:a("relationships.owner.me")})),fe=g(()=>!!T.value),me=g(()=>C.value.nodes.length>0),J=g(()=>qt({graphTask:D.value?.task??null,neighborhoodTask:T.value?.task??null,isNeighborhoodMode:fe.value})),Z=g(()=>J.value?.status==="running"),Ge=g(()=>J.value?.status==="failed"),at=g(()=>D.value?.cache.status??T.value?.cache.status),Ae=g(()=>D.value?.searchResults??[]),Fe=g(()=>w.value.trim().length>0),ot=g(()=>Fe.value&&w.value.trim()===ne.value&&$.value&&Ae.value.length>0),nt=g(()=>(he.value||Z.value)&&!me.value),st=g(()=>Z.value&&me.value),y=g(()=>v.value?C.value.nodes.find(t=>t.key===v.value)??T.value?.contact??null:null),ze=g(()=>G.value&&!!y.value),ye=g(()=>ze.value&&Ke.value?ko:0),rt=g(()=>Ut({selectedKey:v.value,isNeighborhoodMode:fe.value,neighborhoodContactKey:T.value?.contact?.key??null})),ie=g(()=>jt(C.value,v.value,{collapsedLimit:We})),be=g(()=>({nodes:C.value.nodes.length,edges:C.value.edges.length,communities:C.value.communities.length})),xe=g(()=>[...C.value.communities].sort((t,s)=>s.size-t.size).slice(0,8)),ke=g(()=>at.value==="stale"&&Z.value?a("relationships.task.updating"):Z.value?ht(J.value):Ge.value?J.value?.lastError||a("relationships.task.failed"):""),lt=g(()=>Wt({loadError:Q.value,isTaskFailed:Ge.value,statusText:ke.value,emptyText:a("relationships.empty")}));function x(t){return Je.value.format(t)}function it(t){return Math.round(t*100).toString()}function ct(){const t=ie.value.items.length,s=ie.value.total;return s<=t?x(s):`${x(t)} / ${x(s)}`}function ut(t){return t?new Date(t*1e3).toLocaleDateString():a("relationships.detail.emptyValue")}function we(t){return Xt(t,{privacyMode:P.value,ownerLabel:a("relationships.owner.avatarText")})}function _e(t){return Jt(t,P.value)}function j(t){return Xe(t,{privacyMode:P.value,ownerLabel:a("relationships.owner.me")})}function dt(t){return Zt(t,P.value)}function $e(t){return t.kind==="owner"?a("relationships.owner.type"):t.friendSource==="manual"?a("relationships.pool.manualFriend"):t.pool==="friend"?a("relationships.pool.friend"):a("relationships.pool.nonFriend")}function ht(t){return a("relationships.task.running",{current:x(t?.processedSessions??0),total:x(t?.totalSessions??0)})}function De(t){const s=Oe(t,u.value);re&&re!==s&&ce();const d=D.value;D.value=d&&re===s?{...t,graph:d.graph}:t,re=s}function pt(t){const s=Oe(t,`neighborhood:${t.contact?.key??""}`),d=T.value;T.value=d&&ve===s?{...t,graph:d.graph}:t,ve=s}function B(){T.value=null,ve=null}function Oe(t,s){const d=t.graph;let n=2166136261;n=S(n,s),n=S(n,t.algorithmVersion),n=S(n,t.cache.signature??""),n=N(n,t.timeRange.startTs??0),n=S(n,t.timeRange.preset);for(const h of d.nodes)n=S(n,h.key),n=S(n,h.pool),n=S(n,h.friendSource??""),n=N(n,h.rank),n=N(n,Math.round(h.score*1e6)),n=N(n,h.labelVisibility),n=N(n,Math.round(h.x*100)),n=N(n,Math.round(h.y*100)),n=N(n,Math.round(h.size*100));for(const h of d.edges)n=S(n,h.id),n=S(n,h.sourceKey),n=S(n,h.targetKey),n=N(n,Math.round(h.weight*1e6)),n=N(n,h.visibility);for(const h of d.communities)n=S(n,h.id),n=N(n,h.size),n=S(n,h.color);return`${s}:${d.nodes.length}:${d.edges.length}:${d.communities.length}:${n>>>0}`}function S(t,s){for(let d=0;d<s.length;d+=1)t^=s.charCodeAt(d),t=Math.imul(t,16777619);return t}function N(t,s){return S(t,String(s))}function Se(){Y&&(clearInterval(Y),Y=null)}function H(){O.value+=1,U.value=!1,F.value=null}function je(){se.value=aa(R.value,v.value,se.value)}function ce(){se.value=null}function vt(){const t=se.value;ce(),z(()=>{oa(R.value,t),z(()=>{ge=!1})})}function Re(t){if(t?.status==="running"){Y||(Y=setInterval(()=>{ee({silent:!0,preserveNeighborhood:!0})},xo));return}Se()}async function ee(t={}){const s=W.value+1;W.value=s;const d=J.value?.status??null,n=t.preserveNeighborhood?T.value?.contact?.key??null:null;t.silent||(he.value=!0),t.preserveNeighborhood||(H(),B()),Q.value="";try{const h=await E.getPeopleRelationships({acceptStale:!0,timeRangePreset:A.value,graphScope:u.value,query:K.value.trim()||void 0});if(s!==W.value)return;De(h),ne.value=K.value.trim(),v.value&&!C.value.nodes.some(Ne=>Ne.key===v.value)&&(v.value=null,_.value=null,G.value=!1);const c=Qt({previousTaskStatus:d,nextTaskStatus:h.task?.status??null,neighborhoodContactKey:n});Re(h.task),c.type==="refresh-neighborhood"&&ue(c.key)}catch(h){if(s!==W.value)return;Q.value=String(h),V.fail(a("relationships.toast.loadFailed"),{description:String(h)}),Se()}finally{s===W.value&&(he.value=!1)}}async function gt(){pe.value=!0,Q.value="";try{const t=await E.recomputePeopleRelationships({timeRangePreset:A.value,graphScope:u.value,query:K.value.trim()||void 0});De(t),ne.value=K.value.trim(),H(),B(),v.value=null,_.value=null,G.value=!1,Re(t.task),V.success(a("relationships.toast.recomputeStarted"))}catch(t){V.fail(a("relationships.toast.recomputeFailed"),{description:String(t)})}finally{pe.value=!1}}const ft=g(()=>({title:a("layout.relationships"),description:a("relationships.subtitle"),icon:"i-lucide-git-fork",iconClass:"bg-primary-600 text-white dark:bg-primary-500 dark:text-white shadow-sm",action:{label:a("relationships.actions.recompute"),icon:"i-lucide-refresh-cw",loading:pe.value,disabled:Z.value,class:"border border-sky-100 hover:border-sky-200 dark:border-sky-950/30 dark:hover:border-sky-900/50",onClick:gt},stats:[{id:"nodes",label:a("relationships.stats.nodes"),value:x(be.value.nodes)},{id:"edges",label:a("relationships.stats.edges"),value:x(be.value.edges)},{id:"communities",label:a("relationships.stats.communities"),value:x(be.value.communities),dividerBefore:!0}]}));Ft(ft);async function ue(t){const s=O.value+1;O.value=s,U.value=!0,F.value=t,Q.value="";try{const d=await E.getPeopleRelationshipNeighborhood(t,{acceptStale:!0,timeRangePreset:A.value,graphScope:u.value});if(s!==O.value)return;pt(d),v.value=d.contact?.key??t,_.value=v.value,Re(d.task),await z(),R.value?.fitView()}catch(d){if(s!==O.value)return;V.fail(a("relationships.toast.neighborhoodFailed"),{description:String(d)})}finally{s===O.value&&(U.value=!1,F.value=null)}}async function mt(){v.value&&await ue(v.value)}async function yt(t){if(je(),$.value=!1,t.inCoreGraph||(F.value=t.key),v.value=t.key,G.value=!0,_.value=Qe({selectedKey:v.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:_.value}),!t.inCoreGraph){await ue(t.key);return}H(),B(),await z(),R.value?.focusNode(t.key)}async function Te(t){je();const s=T.value?.contact?.key!==t.key;if(s&&(F.value=t.key),v.value=t.key,G.value=!0,_.value=Qe({selectedKey:v.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:_.value}),await z(),R.value?.focusNode(t.key),s){await ue(t.key);return}_.value=v.value}async function bt(t){const s=C.value.nodes.find(d=>d.key===t.key);s&&await Te(s)}function xt(){const t=ta(q.value);t!==q.value&&(q.value=t,V.warn(a("relationships.toast.threeUnavailable")))}function Be(){ge=!0,H(),B(),v.value=null,_.value=null,G.value=!1,vt()}function kt(){Be()}function wt(){w.value="",ne.value="",$.value=!1}function _t(){R.value?.fitView()}function Ce(){Ke.value=le?.matches??!1}return te(A,()=>{ce(),v.value=null,_.value=null,G.value=!1,H(),B(),ee()}),te(u,()=>{ce(),v.value=null,_.value=null,G.value=!1,H(),B(),ee()}),te(w,t=>{X&&clearTimeout(X),$.value=t.trim().length>0,X=setTimeout(()=>{K.value=t,ee({silent:!0,preserveNeighborhood:!0})},260)}),te(q,async()=>{if(await z(),v.value){R.value?.focusNode(v.value);return}R.value?.fitView()}),te(ye,async()=>{if(await z(),!ge){if(v.value){R.value?.focusNode(v.value);return}R.value?.fitView()}}),Ct(()=>{typeof window<"u"&&(le=window.matchMedia("(min-width: 768px)"),Ce(),le.addEventListener("change",Ce)),ee()}),Nt(()=>{le?.removeEventListener("change",Ce),Se(),X&&clearTimeout(X)}),(t,s)=>{const d=Kt,n=Pt,h=Lt;return m(),b("div",ra,[o("main",la,[q.value==="3d"?(m(),ae(p(l),{key:0,ref_key:"canvasRef",ref:R,graph:tt.value,"selected-key":_.value,"safe-inset-right":ye.value,"emphasize-edges":u.value==="friends",label:p(a)("relationships.canvas.label3d"),onFallback:xt,onSelectNode:bt},null,8,["graph","selected-key","safe-inset-right","emphasize-edges","label"])):(m(),ae(p(k),{key:1,ref_key:"canvasRef",ref:R,graph:C.value,"selected-key":_.value,"privacy-mode":P.value,"safe-inset-right":ye.value,"emphasize-edges":u.value==="friends",label:p(a)("relationships.canvas.label"),"owner-label":p(a)("relationships.owner.me"),onSelectNode:Te},null,8,["graph","selected-key","privacy-mode","safe-inset-right","emphasize-edges","label","owner-label"])),o("div",ia,[I(d,{modelValue:A.value,"onUpdate:modelValue":s[0]||(s[0]=c=>A.value=c),items:Ze.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),I(d,{modelValue:u.value,"onUpdate:modelValue":s[1]||(s[1]=c=>u.value=c),items:et.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),o("div",ca,[I(h,{modelValue:w.value,"onUpdate:modelValue":s[2]||(s[2]=c=>w.value=c),icon:"i-lucide-search",placeholder:p(a)("relationships.search"),size:"sm",class:"w-full",onFocus:s[3]||(s[3]=c=>$.value=Fe.value),onKeydown:s[4]||(s[4]=Mt(c=>$.value=!1,["esc"]))},It({_:2},[w.value?{name:"trailing",fn:de(()=>[I(n,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":p(a)("relationships.actions.clearSearch"),onClick:wt},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),ot.value?(m(),b("div",ua,[o("div",da,i(p(a)("relationships.searchResults.title")),1),o("div",ha,[(m(!0),b(Ie,null,Me(Ae.value,c=>(m(),b("button",{key:c.key,type:"button",class:Le(["group flex w-full items-center gap-2.5 rounded-xl px-2.5 py-2 text-left transition hover:bg-gray-100/70 dark:hover:bg-white/5",v.value===c.key?"bg-sky-50 dark:bg-sky-500/10":""]),disabled:U.value,onClick:Ne=>yt(c)},[I(Pe,{src:_e(c),alt:j(c),text:we(c),"root-class":"h-8 w-8 shrink-0 shadow-sm border border-gray-250/20 dark:border-white/10","image-class":"h-8 w-8 rounded-full object-cover","fallback-class":"flex h-8 w-8 items-center justify-center rounded-full bg-sky-100 text-[10px] font-bold text-sky-700 dark:bg-sky-500/15 dark:text-sky-200"},null,8,["src","alt","text"]),o("span",va,[o("span",ga,i(j(c)),1),o("span",fa,i($e(c))+" · #"+i(c.rank),1)]),c.inCoreGraph?L("",!0):(m(),b("span",ma,i(p(a)("relationships.searchResults.offCore")),1))],10,pa))),128))])])):L("",!0)]),I(n,{icon:"i-lucide-scan-line",color:"neutral",variant:"soft",size:"xs","aria-label":p(a)("relationships.actions.fitView"),onClick:_t},null,8,["aria-label"]),I(n,{icon:P.value?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"soft",size:"xs",onClick:s[5]||(s[5]=c=>P.value=!P.value)},{default:de(()=>[Ee(i(p(a)("relationships.privacy")),1)]),_:1},8,["icon"]),fe.value?(m(),ae(n,{key:0,icon:"i-lucide-undo-2",color:"neutral",variant:"soft",size:"xs",onClick:Be},{default:de(()=>[Ee(i(p(a)("relationships.actions.backToPanorama")),1)]),_:1})):L("",!0)]),st.value?(m(),b("div",ya,[s[6]||(s[6]=o("span",{class:"i-lucide-refresh-cw h-3.5 w-3.5 animate-spin text-sky-400"},null,-1)),o("span",null,i(ke.value),1)])):L("",!0),nt.value?(m(),ae(p(At),{key:3,variant:"overlay",class:"!bg-[#0b0f19] [&_p]:!text-gray-300",text:ke.value||p(a)("relationships.task.updating")},null,8,["text"])):me.value?L("",!0):(m(),b("div",ba,i(lt.value),1)),ze.value?(m(),b("aside",xa,[I(n,{icon:"i-lucide-x",color:"neutral",variant:"ghost",size:"xs",class:"absolute right-2.5 top-2.5 z-10 bg-white/35 backdrop-blur-sm hover:bg-white/55 dark:bg-white/5 dark:hover:bg-white/10","aria-label":p(a)("relationships.actions.closeDetail"),onClick:kt},null,8,["aria-label"]),y.value?(m(),b("div",ka,[o("div",wa,[o("div",_a,[I(Pe,{src:_e(y.value),alt:j(y.value),text:we(y.value),"root-class":"h-11 w-11 shrink-0 overflow-hidden rounded-lg shadow-sm border border-gray-250/20 dark:border-white/10","image-class":"h-11 w-11 rounded-lg object-cover","fallback-class":"flex h-11 w-11 items-center justify-center rounded-lg bg-sky-100 text-sm font-bold text-sky-700 dark:bg-sky-500/15 dark:text-sky-200"},null,8,["src","alt","text"]),o("div",Sa,[o("div",Ra,[o("p",Ta,i(j(y.value)),1),o("span",{class:Le(["shrink-0 rounded-full bg-white/45 px-1.5 py-0.5 font-mono text-[10px] font-bold text-gray-600 dark:bg-white/8 dark:text-gray-300",y.value.rank<=3?"text-amber-600 dark:text-amber-300":""])}," #"+i(y.value.rank),3)]),o("p",Ca,i(y.value.platform)+" · "+i(dt(y.value)),1)])]),rt.value?(m(),ae(n,{key:0,icon:"i-lucide-network",color:"primary",variant:"soft",size:"sm",block:"",class:"rounded-xl font-semibold shadow-sm border border-sky-100 hover:border-sky-200 dark:border-sky-950/30 dark:hover:border-sky-900/50",loading:U.value,onClick:mt},{default:de(()=>[Ee(i(p(a)("relationships.actions.focusConnections")),1)]),_:1},8,["loading"])):L("",!0),o("div",Na,[o("div",Ia,[o("p",Ma,i(p(a)("relationships.detail.score")),1),o("div",Pa,[o("p",La,i(it(y.value.score)),1),s[7]||(s[7]=o("span",{class:"text-[9px] leading-3 text-gray-400"},"/100",-1))])]),o("div",Ea,[o("p",Va,i(p(a)("relationships.detail.type")),1),o("span",{class:Le(["inline-flex max-w-full items-center truncate text-[10px] font-semibold leading-4",y.value.pool==="friend"?"text-sky-700 dark:text-sky-300":"text-amber-700 dark:text-amber-300"])},i($e(y.value)),3)]),o("div",Ka,[o("p",Ga,i(p(a)("relationships.detail.privateMessages")),1),o("span",Aa,i(x(y.value.privateMessageCount)),1)]),o("div",Fa,[o("p",za,i(p(a)("relationships.detail.groupMessages")),1),o("span",$a,i(x(y.value.groupMessageCount)),1)]),o("div",Da,[o("p",Oa,i(p(a)("relationships.detail.commonGroups")),1),o("span",ja,i(x(y.value.commonGroupCount)),1)]),o("div",Ba,[o("p",Ha,i(p(a)("relationships.detail.lastInteraction")),1),o("span",Ua,i(ut(y.value.lastInteractionTs)),1)])])]),o("div",qa,[o("section",Qa,[o("div",Wa,[o("div",Ya,[o("h3",Xa,i(p(a)("relationships.connections.title")),1),o("span",Ja,i(ct()),1)]),o("span",Za,i(p(a)("relationships.connections.connectionScore")),1)]),ie.value.items.length>0?(m(),b("div",eo,[(m(!0),b(Ie,null,Me(ie.value.items,c=>(m(),b("button",{key:c.node.key,type:"button",class:"group flex h-9 w-full items-center gap-2 rounded-lg px-2 py-0 text-left transition-all duration-250 hover:bg-white dark:hover:bg-white/5",onClick:Ne=>Te(c.node)},[I(Pe,{src:_e(c.node),alt:j(c.node),text:we(c.node),"root-class":"h-6 w-6 shrink-0 overflow-hidden rounded-md shadow-sm border border-gray-250/20 dark:border-white/10","image-class":"h-6 w-6 rounded-md object-cover","fallback-class":"flex h-6 w-6 items-center justify-center rounded-md bg-sky-100 text-[9px] font-bold text-sky-700 dark:bg-sky-500/15 dark:text-sky-200"},null,8,["src","alt","text"]),o("div",ao,[o("span",oo,i(j(c.node)),1)]),o("span",no,[o("span",so,i(x(c.connectionScore)),1)])],8,to))),128))])):(m(),b("p",ro,i(p(a)("relationships.connections.empty")),1))]),xe.value.length>0?(m(),b("section",lo,[o("div",io,[o("div",co,[o("h2",uo,i(p(a)("relationships.stats.communities")),1),o("span",ho,i(x(xe.value.length)),1)]),o("span",po,i(p(a)("relationships.stats.members")),1)]),o("div",vo,[(m(!0),b(Ie,null,Me(xe.value,c=>(m(),b("div",{key:c.id,class:"flex h-9 items-center justify-between gap-2 rounded-lg px-2 py-0 text-[13px] leading-4"},[o("div",go,[o("span",fo,[o("span",{class:"h-2 w-2 rounded-full shadow-sm",style:Et({backgroundColor:c.color})},null,4)]),o("span",mo,i(c.label),1)]),o("span",yo,[o("span",bo,i(x(c.size)),1)])]))),128))])])):L("",!0)])])):L("",!0)])):L("",!0)])])}}}),Po=Object.freeze(Object.defineProperty({__proto__:null,default:wo},Symbol.toStringTag,{value:"Module"}));export{Io as a,Mo as b,Xe as g,Po as i};