chatlab-cli 0.34.3 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/{chat-command-QH7DXCAJ.mjs → chat-command-24RYGJAS.mjs} +8 -8
  2. package/dist/{chunk-2WYXD5ZP.mjs → chunk-22YJOBA3.mjs} +474 -99
  3. package/dist/chunk-22YJOBA3.mjs.map +1 -0
  4. package/dist/{chunk-AWXHYTD5.mjs → chunk-4GWWKHWA.mjs} +42 -14
  5. package/dist/chunk-4GWWKHWA.mjs.map +1 -0
  6. package/dist/{chunk-ZVGDOSGG.mjs → chunk-7IGBPZMI.mjs} +38 -18
  7. package/dist/chunk-7IGBPZMI.mjs.map +1 -0
  8. package/dist/{chunk-WJVE5Q4Y.mjs → chunk-BRZ6YIBR.mjs} +2 -2
  9. package/dist/{chunk-XIWVJAXH.mjs → chunk-DC7IUDNV.mjs} +10 -18
  10. package/dist/chunk-DC7IUDNV.mjs.map +1 -0
  11. package/dist/{chunk-JYBPJWE2.mjs → chunk-DEFEU567.mjs} +10 -18
  12. package/dist/chunk-DEFEU567.mjs.map +1 -0
  13. package/dist/{chunk-C2PD3BS7.mjs → chunk-GQMCDWZQ.mjs} +2 -2
  14. package/dist/{chunk-AWGXYFIC.mjs → chunk-KIMJXKZO.mjs} +2 -2
  15. package/dist/{chunk-SWUTRDGZ.mjs → chunk-KXDJ7N6N.mjs} +2 -2
  16. package/dist/{chunk-3X26JJIP.mjs → chunk-QKEARRFH.mjs} +3 -3
  17. package/dist/{chunk-6U2QZO3N.mjs → chunk-U36TQMAF.mjs} +2 -2
  18. package/dist/{chunk-2Q3HHVTS.mjs → chunk-ZBPPLXM4.mjs} +12 -12
  19. package/dist/cli.mjs +9 -9
  20. package/dist/contacts-worker.mjs +2 -2
  21. package/dist/global-insight-worker.mjs +1 -1
  22. package/dist/{http-D2F4QTQW.mjs → http-3K4YMWDE.mjs} +12 -12
  23. package/dist/{import-H7X2JU2O.mjs → import-D4LV565A.mjs} +7 -7
  24. package/dist/index.mjs +12 -12
  25. package/dist/{mcp-UURXRGDF.mjs → mcp-KL22FKQ2.mjs} +8 -8
  26. package/dist/people-relationships-worker.mjs +2 -2
  27. package/dist/semantic-index-worker.mjs +1 -1
  28. package/dist/{src-MHCO4HYY.mjs → src-COIB6Z4P.mjs} +8 -6
  29. package/dist/{stream-import-BHXACUCA.mjs → stream-import-FSXCFG4M.mjs} +7 -7
  30. package/dist/{worker-runtime-JOUCP2L4.mjs → worker-runtime-DPS2LURI.mjs} +5 -5
  31. package/dist-cli-web/assets/AISettingsTab-rQC2ocFH.js +1 -0
  32. package/dist-cli-web/assets/AboutTab-DMPziKjj.js +1 -0
  33. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-CnRLt_1j.js +110 -0
  34. package/dist-cli-web/assets/Alert--bTQXRcZ.js +1 -0
  35. package/dist-cli-web/assets/ApiSettingsTab-CtXl4I28.js +2 -0
  36. package/dist-cli-web/assets/BatchManageTab-1KaCPweN.js +1 -0
  37. package/dist-cli-web/assets/{BufferResource-Dak23r3B.js → BufferResource-BXSJADxx.js} +1 -1
  38. package/dist-cli-web/assets/CanvasRenderer-Cq--8UQ_.js +1 -0
  39. package/dist-cli-web/assets/ChatRecordDrawer-BC0F7ok1.js +11 -0
  40. package/dist-cli-web/assets/ChatRecordDrawer-Tt6UduRC.css +1 -0
  41. package/dist-cli-web/assets/Checkbox-CwajNPGF.js +1 -0
  42. package/dist-cli-web/assets/DataDirCleanupNotice-D0Oruka2.js +1 -0
  43. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-C4CsoIlq.js +1 -0
  44. package/dist-cli-web/assets/DebugToolsPanel-DVDwS-wz.js +1 -0
  45. package/dist-cli-web/assets/EChartWordcloud-KV0MdsDE.js +1 -0
  46. package/dist-cli-web/assets/{Filter-CHKZVYB3.js → Filter-DVaqcFmI.js} +1 -1
  47. package/dist-cli-web/assets/GlobalTaskBar-COW_uBX6.css +1 -0
  48. package/dist-cli-web/assets/GlobalTaskBar-DpPMX0jx.js +1 -0
  49. package/dist-cli-web/assets/GroupRelationshipGalaxyView-CLnO3phW.js +1 -0
  50. package/dist-cli-web/assets/Label-Bt2U4lGy.js +1 -0
  51. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js +1 -0
  52. package/dist-cli-web/assets/MessageExportModal-BozaR9UZ.js +1 -0
  53. package/dist-cli-web/assets/PageHeader-CEe0xTl3.js +1 -0
  54. package/dist-cli-web/assets/PageTabs.vue_vue_type_script_setup_true_lang-D2DZrrnv.js +1 -0
  55. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-mJhEPzsY.js → RelationshipGalaxyCanvas-6EamagxG.js} +3 -3
  56. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-Bf76yzmQ.js → RelationshipGalaxyThreeCanvas-B6GB4PWS.js} +166 -166
  57. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-CMuibfiA.css → RelationshipGalaxyThreeCanvas-TYGOUDiv.css} +1 -1
  58. package/dist-cli-web/assets/{RenderTargetSystem-1rM7OF-M.js → RenderTargetSystem-mYuj4uBS.js} +1 -1
  59. package/dist-cli-web/assets/RovingFocusItem-B2y6BG1a.js +1 -0
  60. package/dist-cli-web/assets/ScreenCaptureModal-BvAtSNNR.js +1 -0
  61. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-ueEF4zHE.js +1 -0
  62. package/dist-cli-web/assets/Select-Cm4I8u9n.js +1 -0
  63. package/dist-cli-web/assets/SettingsModal-CjVax3I6.css +1 -0
  64. package/dist-cli-web/assets/SettingsModal-Cwshzj7i.js +2 -0
  65. package/dist-cli-web/assets/StorageTab-D7HzH16Y.js +1 -0
  66. package/dist-cli-web/assets/Switch-BVw4e_19.js +1 -0
  67. package/dist-cli-web/assets/Tabs-Dqwkh3Ea.js +1 -0
  68. package/dist-cli-web/assets/Tabs-OrJkANIA.js +1 -0
  69. package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-DPIvbq75.js +1 -0
  70. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-dEdo6CqM.js +1 -0
  71. package/dist-cli-web/assets/VisuallyHiddenInput-BOdkR_GC.js +1 -0
  72. package/dist-cli-web/assets/{WebGLRenderer-Y0jQtBvK.js → WebGLRenderer-BB8ukBI_.js} +2 -2
  73. package/dist-cli-web/assets/{WebGPURenderer-BcUvCPhd.js → WebGPURenderer-DDOzF1Kc.js} +2 -2
  74. package/dist-cli-web/assets/aiChat-CzFSFuOJ.js +8 -0
  75. package/dist-cli-web/assets/annual-summary-time-range-CmrAqcuj.js +1 -0
  76. package/dist-cli-web/assets/base-CawUl6ET.js +1 -0
  77. package/dist-cli-web/assets/{browserAll-BsR1UaCC.js → browserAll-BRqlnNxq.js} +2 -2
  78. package/dist-cli-web/assets/chatlabSiteLocale-CrCNb8QP.js +1 -0
  79. package/dist-cli-web/assets/clamp-jFYhBC76.js +1 -0
  80. package/dist-cli-web/assets/cli-web-ClAJ6Tao.js +1 -0
  81. package/dist-cli-web/assets/{dateFormat-B6JnNCxp.js → dateFormat-DXuDxIye.js} +1 -1
  82. package/dist-cli-web/assets/fetch-3_xX8Yi8.js +1 -0
  83. package/dist-cli-web/assets/{fetch-DGvqctIb.js → fetch-Bcy2T8Fe.js} +1 -1
  84. package/dist-cli-web/assets/{fetch-BAJ_VjWE.js → fetch-CGu53cxT.js} +1 -1
  85. package/dist-cli-web/assets/{fetch-bdY0RMM3.js → fetch-CP1afnT0.js} +1 -1
  86. package/dist-cli-web/assets/{fetch-Clj_RVUD.js → fetch-DWAIk_6_.js} +1 -1
  87. package/dist-cli-web/assets/{fetch-DtnhbqTN.js → fetch-DijSOvop.js} +1 -1
  88. package/dist-cli-web/assets/{fetch-D7vgaLpy.js → fetch-Dy38lkAa.js} +1 -1
  89. package/dist-cli-web/assets/{fetch-bhHY8rO7.js → fetch-DzKlTaLz.js} +1 -1
  90. package/dist-cli-web/assets/{fetch-CPloHijF.js → fetch-LY-yerw1.js} +1 -1
  91. package/dist-cli-web/assets/{fetch-BNcHe2-O.js → fetch-q480XYZQ.js} +1 -1
  92. package/dist-cli-web/assets/index-0dp58uL4.css +1 -0
  93. package/dist-cli-web/assets/index-1X7zdLgJ.css +1 -0
  94. package/dist-cli-web/assets/index-4enwdBcq.css +1 -0
  95. package/dist-cli-web/assets/index-AudHHbMs.js +1 -0
  96. package/dist-cli-web/assets/{index-DMYFpctK.js → index-BRV_D8dv.js} +3 -3
  97. package/dist-cli-web/assets/index-CF4DTbvD.js +1 -0
  98. package/dist-cli-web/assets/index-CMLoht5R.js +1 -0
  99. package/dist-cli-web/assets/index-CMPHZH6B.css +1 -0
  100. package/dist-cli-web/assets/index-CNzv7aBW.js +1 -0
  101. package/dist-cli-web/assets/index-CXUTiy-V.js +1 -0
  102. package/dist-cli-web/assets/index-D5m0P4ss.js +36 -0
  103. package/dist-cli-web/assets/index-Di6FmCdk.js +64 -0
  104. package/dist-cli-web/assets/index-DkOrt7_X.js +2 -0
  105. package/dist-cli-web/assets/index-Dlb6fC68.js +1 -0
  106. package/dist-cli-web/assets/index-IA7YUjQX.js +2 -0
  107. package/dist-cli-web/assets/index-kzU381y1.js +1 -0
  108. package/dist-cli-web/assets/index-z8Vogc-b.js +137 -0
  109. package/dist-cli-web/assets/lazy-overlay-visibility-Bd9ZFOgR.js +1 -0
  110. package/dist-cli-web/assets/member-select-utils-BXZ3oHct.js +1 -0
  111. package/dist-cli-web/assets/people-page-header-Bh3KXD4g.js +1 -0
  112. package/dist-cli-web/assets/prompt-DcAcgQiB.js +1 -0
  113. package/dist-cli-web/assets/relationship-galaxy-connections-Cg4G5yYE.js +1 -0
  114. package/dist-cli-web/assets/semantic-index-config-builder-CK6v64Y1.js +1 -0
  115. package/dist-cli-web/assets/service-YZnJyEMq.js +1 -0
  116. package/dist-cli-web/assets/useFormControl-B-aXrJZN.js +1 -0
  117. package/dist-cli-web/assets/useTable-DPEMaGby.js +1 -0
  118. package/dist-cli-web/assets/useToast-B36MzFFy.js +1 -0
  119. package/dist-cli-web/assets/vendor-echarts-DfAMQxdr.js +11 -0
  120. package/dist-cli-web/assets/{vendor-echarts-wordcloud-Ca8n6qS6.js → vendor-echarts-wordcloud-BsaEJTPY.js} +1 -1
  121. package/dist-cli-web/assets/vendor-zrender-PFmZe1EY.js +8 -0
  122. package/dist-cli-web/assets/{webworkerAll-CfZWlukP.js → webworkerAll-Dwqmy_YO.js} +1 -1
  123. package/dist-cli-web/index.html +2 -2
  124. package/package.json +1 -1
  125. package/dist/chunk-2WYXD5ZP.mjs.map +0 -1
  126. package/dist/chunk-AWXHYTD5.mjs.map +0 -1
  127. package/dist/chunk-JYBPJWE2.mjs.map +0 -1
  128. package/dist/chunk-XIWVJAXH.mjs.map +0 -1
  129. package/dist/chunk-ZVGDOSGG.mjs.map +0 -1
  130. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-kN3uxTW8.js +0 -110
  131. package/dist-cli-web/assets/CanvasRenderer-Cmjtvski.js +0 -1
  132. package/dist-cli-web/assets/DataDirCleanupNotice-B5tyDzK-.js +0 -1
  133. package/dist-cli-web/assets/EChartWordcloud-Bd3L3G8I.js +0 -1
  134. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CKf_gC1k.js +0 -1
  135. package/dist-cli-web/assets/MessageExportModal-ODYCcSnk.js +0 -1
  136. package/dist-cli-web/assets/PageHeader-Bn7Jn8JW.js +0 -1
  137. package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-CADZpPia.js +0 -1
  138. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-I3FYjhfs.js +0 -1
  139. package/dist-cli-web/assets/annual-summary-time-range-BIADd8qE.js +0 -1
  140. package/dist-cli-web/assets/base-BpxxC5Z5.js +0 -1
  141. package/dist-cli-web/assets/cli-web-BiWUOncc.js +0 -1
  142. package/dist-cli-web/assets/fetch-DSxgaVBO.js +0 -1
  143. package/dist-cli-web/assets/index-B6Gq11lw.css +0 -1
  144. package/dist-cli-web/assets/index-BJ2lywiG.js +0 -1
  145. package/dist-cli-web/assets/index-BT3_fSP6.js +0 -2
  146. package/dist-cli-web/assets/index-BVZhP1J5.js +0 -1
  147. package/dist-cli-web/assets/index-Br8r4pu8.js +0 -1
  148. package/dist-cli-web/assets/index-Byok4VaA.css +0 -1
  149. package/dist-cli-web/assets/index-CKnnxOci.js +0 -1
  150. package/dist-cli-web/assets/index-CXnYfvTv.js +0 -137
  151. package/dist-cli-web/assets/index-CsFLLk3T.css +0 -1
  152. package/dist-cli-web/assets/index-CzoOQ7zg.js +0 -1
  153. package/dist-cli-web/assets/index-D-dTTUGj.js +0 -1
  154. package/dist-cli-web/assets/index-DEbvEKzi.js +0 -2
  155. package/dist-cli-web/assets/index-KO7uPd8W.js +0 -64
  156. package/dist-cli-web/assets/index-lkmJ6dI7.js +0 -1
  157. package/dist-cli-web/assets/index-y7xPDpsW.js +0 -53
  158. package/dist-cli-web/assets/people-page-header-gjTyODWs.js +0 -1
  159. package/dist-cli-web/assets/vendor-echarts-B-i_56Av.js +0 -11
  160. package/dist-cli-web/assets/vendor-zrender-5DcYjSZk.js +0 -8
  161. /package/dist/{chat-command-QH7DXCAJ.mjs.map → chat-command-24RYGJAS.mjs.map} +0 -0
  162. /package/dist/{chunk-WJVE5Q4Y.mjs.map → chunk-BRZ6YIBR.mjs.map} +0 -0
  163. /package/dist/{chunk-C2PD3BS7.mjs.map → chunk-GQMCDWZQ.mjs.map} +0 -0
  164. /package/dist/{chunk-AWGXYFIC.mjs.map → chunk-KIMJXKZO.mjs.map} +0 -0
  165. /package/dist/{chunk-SWUTRDGZ.mjs.map → chunk-KXDJ7N6N.mjs.map} +0 -0
  166. /package/dist/{chunk-3X26JJIP.mjs.map → chunk-QKEARRFH.mjs.map} +0 -0
  167. /package/dist/{chunk-6U2QZO3N.mjs.map → chunk-U36TQMAF.mjs.map} +0 -0
  168. /package/dist/{chunk-2Q3HHVTS.mjs.map → chunk-ZBPPLXM4.mjs.map} +0 -0
  169. /package/dist/{http-D2F4QTQW.mjs.map → http-3K4YMWDE.mjs.map} +0 -0
  170. /package/dist/{import-H7X2JU2O.mjs.map → import-D4LV565A.mjs.map} +0 -0
  171. /package/dist/{mcp-UURXRGDF.mjs.map → mcp-KL22FKQ2.mjs.map} +0 -0
  172. /package/dist/{src-MHCO4HYY.mjs.map → src-COIB6Z4P.mjs.map} +0 -0
  173. /package/dist/{stream-import-BHXACUCA.mjs.map → stream-import-FSXCFG4M.mjs.map} +0 -0
  174. /package/dist/{worker-runtime-JOUCP2L4.mjs.map → worker-runtime-DPS2LURI.mjs.map} +0 -0
@@ -11,14 +11,14 @@ import {
11
11
  getServerAiLogger,
12
12
  getSkillManagerCore,
13
13
  initServerAiLogger
14
- } from "./chunk-JYBPJWE2.mjs";
14
+ } from "./chunk-DEFEU567.mjs";
15
15
  import {
16
16
  AGENT_TOOL_REGISTRY,
17
17
  CoreDataProvider
18
- } from "./chunk-WJVE5Q4Y.mjs";
18
+ } from "./chunk-BRZ6YIBR.mjs";
19
19
  import {
20
20
  resolveCliLocalEmbeddingRuntimeConfig
21
- } from "./chunk-6U2QZO3N.mjs";
21
+ } from "./chunk-U36TQMAF.mjs";
22
22
  import {
23
23
  analyzeIncrementalImport,
24
24
  analyzeNewImport,
@@ -26,10 +26,10 @@ import {
26
26
  autoImportBatch,
27
27
  incrementalImport,
28
28
  streamImport
29
- } from "./chunk-3X26JJIP.mjs";
29
+ } from "./chunk-QKEARRFH.mjs";
30
30
  import {
31
31
  assertCliDataDirCompatible
32
- } from "./chunk-C2PD3BS7.mjs";
32
+ } from "./chunk-GQMCDWZQ.mjs";
33
33
  import {
34
34
  getVersion
35
35
  } from "./chunk-5ADKYYNA.mjs";
@@ -62,7 +62,7 @@ import {
62
62
  isDictDownloaded,
63
63
  segmentText,
64
64
  serializeChatLabToJsonl
65
- } from "./chunk-XIWVJAXH.mjs";
65
+ } from "./chunk-DC7IUDNV.mjs";
66
66
  import {
67
67
  AIChatManager,
68
68
  ArchiveImportError,
@@ -108,7 +108,7 @@ import {
108
108
  streamParseFileInfo,
109
109
  summary_service_exports,
110
110
  validateApiKey
111
- } from "./chunk-AWXHYTD5.mjs";
111
+ } from "./chunk-4GWWKHWA.mjs";
112
112
  import {
113
113
  ALL_MIGRATIONS,
114
114
  BUILTIN_MODELS,
@@ -118,6 +118,7 @@ import {
118
118
  CONTACTS_TIME_RANGE_PRESETS,
119
119
  DataDirCompatibilityError,
120
120
  DatabaseManager,
121
+ GROUP_RELATIONSHIP_GALAXY_ALGORITHM_VERSION,
121
122
  MigrationRunner,
122
123
  POS_TAG_DEFINITIONS,
123
124
  appLogger,
@@ -133,6 +134,7 @@ import {
133
134
  getDbFileVersion,
134
135
  getDivingAnalysis,
135
136
  getDragonKingAnalysis,
137
+ getGroupRelationshipGalaxy,
136
138
  getHourlyActivity,
137
139
  getJourneyStats,
138
140
  getLanguagePreferenceAnalysis,
@@ -144,7 +146,6 @@ import {
144
146
  getMembersWithAliases,
145
147
  getMemeBattleAnalysis,
146
148
  getMentionAnalysis,
147
- getMentionGraph,
148
149
  getMessageLengthDistribution,
149
150
  getMessageTypeStats,
150
151
  getMonthlyActivity,
@@ -168,7 +169,7 @@ import {
168
169
  stripAvatarFields,
169
170
  verifyCliDataPath,
170
171
  writeConfigField
171
- } from "./chunk-2WYXD5ZP.mjs";
172
+ } from "./chunk-22YJOBA3.mjs";
172
173
 
173
174
  // src/http/index.ts
174
175
  import * as fs11 from "fs";
@@ -1676,11 +1677,17 @@ function registerAnalyticsRoutes(server2, ctx) {
1676
1677
  }
1677
1678
  );
1678
1679
  server2.get(
1679
- "/_web/sessions/:id/analytics/mention-graph",
1680
+ "/_web/sessions/:id/analytics/relationship-galaxy",
1680
1681
  async (request) => {
1681
1682
  const id = request.params.id;
1682
1683
  const filter = parseTimeFilter(request.query);
1683
- return cached("mention-graph", id, { ...filter }, () => getMentionGraph(adapter.ensureReadonly(id), filter));
1684
+ return cached(
1685
+ "relationship-galaxy",
1686
+ id,
1687
+ { ...filter },
1688
+ () => getGroupRelationshipGalaxy(adapter.ensureReadonly(id), filter),
1689
+ { extraVersion: GROUP_RELATIONSHIP_GALAXY_ALGORITHM_VERSION }
1690
+ );
1684
1691
  }
1685
1692
  );
1686
1693
  server2.post(
@@ -2280,6 +2287,7 @@ ${stack}` : null].filter(Boolean).join(" ");
2280
2287
  // ../../packages/http-routes/src/routes/web/members.ts
2281
2288
  function registerMemberRoutes(server2, ctx) {
2282
2289
  const { sessionAdapter: adapter } = ctx;
2290
+ const cacheDir = ctx.pathProvider.getCacheDir();
2283
2291
  server2.get("/_web/sessions/:id/members", async (request) => {
2284
2292
  return member_service_exports.getMembers(adapter, request.params.id);
2285
2293
  });
@@ -2303,7 +2311,7 @@ function registerMemberRoutes(server2, ctx) {
2303
2311
  "/_web/sessions/:id/members/:memberId",
2304
2312
  async (request) => {
2305
2313
  const memberId = parseInt(request.params.memberId, 10);
2306
- member_service_exports.deleteMember(adapter, request.params.id, memberId);
2314
+ member_service_exports.deleteMember(adapter, request.params.id, memberId, cacheDir);
2307
2315
  return { success: true };
2308
2316
  }
2309
2317
  );
@@ -2319,7 +2327,7 @@ function registerMemberRoutes(server2, ctx) {
2319
2327
  }
2320
2328
  const uniqueMemberIds = Array.from(new Set(memberIds));
2321
2329
  try {
2322
- const success = member_service_exports.deleteMembers(adapter, request.params.id, uniqueMemberIds);
2330
+ const success = member_service_exports.deleteMembers(adapter, request.params.id, uniqueMemberIds, cacheDir);
2323
2331
  if (!success) {
2324
2332
  throw new Error("Member deletion transaction returned no result");
2325
2333
  }
@@ -2339,7 +2347,7 @@ function registerMemberRoutes(server2, ctx) {
2339
2347
  "/_web/sessions/:id/members/merge",
2340
2348
  async (request) => {
2341
2349
  const { memberId1, memberId2 } = request.body;
2342
- member_service_exports.mergeMembers(adapter, request.params.id, memberId1, memberId2);
2350
+ member_service_exports.mergeMembers(adapter, request.params.id, memberId1, memberId2, cacheDir);
2343
2351
  return { success: true };
2344
2352
  }
2345
2353
  );
@@ -2660,6 +2668,13 @@ function registerPreferencesRoutes(server2, ctx) {
2660
2668
  server2.get("/_web/preferences", async () => {
2661
2669
  return prefManager.load();
2662
2670
  });
2671
+ server2.get("/_web/preferences/bootstrap", async () => {
2672
+ const config = loadConfig();
2673
+ return {
2674
+ locale: config.locale.lang,
2675
+ uiConfig: config.ui
2676
+ };
2677
+ });
2663
2678
  server2.patch("/_web/preferences", async (request) => {
2664
2679
  return prefManager.save(request.body);
2665
2680
  });
@@ -2718,6 +2733,7 @@ function registerSessionIndexRoutes(server2, ctx) {
2718
2733
  // ../../packages/http-routes/src/routes/web/sessions.ts
2719
2734
  function registerSessionRoutes(server2, ctx) {
2720
2735
  const { sessionAdapter: adapter } = ctx;
2736
+ const cacheDir = ctx.pathProvider.getCacheDir();
2721
2737
  let preferencesInstance = null;
2722
2738
  const preferences = () => {
2723
2739
  preferencesInstance ??= ctx.preferencesManager ?? new PreferencesManager(ctx.pathProvider.getSystemDir());
@@ -2726,11 +2742,14 @@ function registerSessionRoutes(server2, ctx) {
2726
2742
  server2.get("/_web/sessions", async () => {
2727
2743
  const aiChatCounts = ctx.aiChatManager?.getAIChatCountsBySession();
2728
2744
  return session_service_exports.listAnalysisSessions(adapter, {
2745
+ resolveOverview: (db, sessionId) => session_service_exports.resolveValidatedSessionOverview(db, sessionId, cacheDir),
2729
2746
  enrichSession: aiChatCounts?.size ? (dto) => ({ ...dto, aiConversationCount: aiChatCounts.get(dto.id) ?? 0 }) : void 0
2730
2747
  });
2731
2748
  });
2732
2749
  server2.get("/_web/sessions/:id", async (request) => {
2733
- const session = session_service_exports.getAnalysisSession(adapter, request.params.id);
2750
+ const session = session_service_exports.getAnalysisSession(adapter, request.params.id, {
2751
+ resolveOverview: (db, sessionId) => session_service_exports.resolveValidatedSessionOverview(db, sessionId, cacheDir)
2752
+ });
2734
2753
  if (!session) {
2735
2754
  throw Object.assign(new Error(`Session not found: ${request.params.id}`), { statusCode: 404 });
2736
2755
  }
@@ -2742,6 +2761,7 @@ function registerSessionRoutes(server2, ctx) {
2742
2761
  server2.delete("/_web/sessions/:id", async (request, reply) => {
2743
2762
  const { id } = request.params;
2744
2763
  try {
2764
+ await ctx.beforeDeleteSession?.(id);
2745
2765
  const deleted = session_service_exports.deleteSession(adapter, id);
2746
2766
  if (!deleted) {
2747
2767
  return reply.code(404).send({ success: false, error: "File not found" });
@@ -3552,10 +3572,10 @@ function registerWebRoutes2(server2, dbManager2, options) {
3552
3572
  const resolvedPathProvider = options?.pathProvider ?? fallbackPathProvider;
3553
3573
  const ai = options?.aiContext;
3554
3574
  const cliStreamImport = async (dm, filePath) => {
3555
- const { streamImport: streamImport2 } = await import("./stream-import-BHXACUCA.mjs");
3575
+ const { streamImport: streamImport2 } = await import("./stream-import-FSXCFG4M.mjs");
3556
3576
  const result = await streamImport2(dm, filePath);
3557
3577
  if (!result.success) {
3558
- const { IMPORT_IN_PROGRESS_ERROR_KEY: IMPORT_IN_PROGRESS_ERROR_KEY2, ImportInProgressError: ImportInProgressError2 } = await import("./src-MHCO4HYY.mjs");
3578
+ const { IMPORT_IN_PROGRESS_ERROR_KEY: IMPORT_IN_PROGRESS_ERROR_KEY2, ImportInProgressError: ImportInProgressError2 } = await import("./src-COIB6Z4P.mjs");
3559
3579
  if (result.error === IMPORT_IN_PROGRESS_ERROR_KEY2) throw new ImportInProgressError2();
3560
3580
  throw new Error(result.error || "Import failed");
3561
3581
  }
@@ -4731,4 +4751,4 @@ export {
4731
4751
  startHttpServer,
4732
4752
  stopHttpServer
4733
4753
  };
4734
- //# sourceMappingURL=chunk-ZVGDOSGG.mjs.map
4754
+ //# sourceMappingURL=chunk-7IGBPZMI.mjs.map