@lobehub/chat 1.96.20 → 1.97.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 (523) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +90 -32
  3. package/README.zh-CN.md +90 -34
  4. package/apps/desktop/package.json +1 -1
  5. package/apps/desktop/src/main/core/Browser.ts +2 -1
  6. package/apps/desktop/src/main/utils/next-electron-rsc.ts +15 -8
  7. package/changelog/v1.json +18 -0
  8. package/docs/usage/features/desktop.mdx +53 -0
  9. package/docs/usage/features/desktop.zh-CN.mdx +49 -0
  10. package/docs/usage/features/mcp-market.mdx +26 -0
  11. package/docs/usage/features/mcp-market.zh-CN.mdx +22 -0
  12. package/docs/usage/features/mcp.mdx +58 -0
  13. package/docs/usage/features/mcp.zh-CN.mdx +54 -0
  14. package/docs/usage/features/search.mdx +56 -0
  15. package/docs/usage/features/search.zh-CN.mdx +52 -0
  16. package/locales/ar/discover.json +452 -12
  17. package/locales/ar/metadata.json +4 -0
  18. package/locales/ar/plugin.json +89 -2
  19. package/locales/ar/setting.json +1 -0
  20. package/locales/bg-BG/discover.json +452 -12
  21. package/locales/bg-BG/metadata.json +4 -0
  22. package/locales/bg-BG/plugin.json +89 -2
  23. package/locales/bg-BG/setting.json +1 -0
  24. package/locales/de-DE/discover.json +452 -12
  25. package/locales/de-DE/metadata.json +4 -0
  26. package/locales/de-DE/plugin.json +89 -2
  27. package/locales/de-DE/setting.json +1 -0
  28. package/locales/en-US/discover.json +452 -12
  29. package/locales/en-US/metadata.json +4 -0
  30. package/locales/en-US/plugin.json +89 -2
  31. package/locales/en-US/setting.json +1 -0
  32. package/locales/es-ES/discover.json +452 -12
  33. package/locales/es-ES/metadata.json +4 -0
  34. package/locales/es-ES/plugin.json +89 -2
  35. package/locales/es-ES/setting.json +1 -0
  36. package/locales/fa-IR/discover.json +452 -12
  37. package/locales/fa-IR/metadata.json +4 -0
  38. package/locales/fa-IR/plugin.json +89 -2
  39. package/locales/fa-IR/setting.json +1 -0
  40. package/locales/fr-FR/discover.json +452 -12
  41. package/locales/fr-FR/metadata.json +4 -0
  42. package/locales/fr-FR/plugin.json +89 -2
  43. package/locales/fr-FR/setting.json +1 -0
  44. package/locales/it-IT/discover.json +452 -12
  45. package/locales/it-IT/metadata.json +4 -0
  46. package/locales/it-IT/plugin.json +89 -2
  47. package/locales/it-IT/setting.json +1 -0
  48. package/locales/ja-JP/discover.json +452 -12
  49. package/locales/ja-JP/metadata.json +4 -0
  50. package/locales/ja-JP/plugin.json +89 -2
  51. package/locales/ja-JP/setting.json +1 -0
  52. package/locales/ko-KR/discover.json +452 -12
  53. package/locales/ko-KR/metadata.json +4 -0
  54. package/locales/ko-KR/plugin.json +89 -2
  55. package/locales/ko-KR/setting.json +1 -0
  56. package/locales/nl-NL/discover.json +452 -12
  57. package/locales/nl-NL/metadata.json +4 -0
  58. package/locales/nl-NL/plugin.json +89 -2
  59. package/locales/nl-NL/setting.json +1 -0
  60. package/locales/pl-PL/discover.json +452 -12
  61. package/locales/pl-PL/metadata.json +4 -0
  62. package/locales/pl-PL/plugin.json +89 -2
  63. package/locales/pl-PL/setting.json +1 -0
  64. package/locales/pt-BR/discover.json +452 -12
  65. package/locales/pt-BR/metadata.json +4 -0
  66. package/locales/pt-BR/plugin.json +89 -2
  67. package/locales/pt-BR/setting.json +1 -0
  68. package/locales/ru-RU/discover.json +452 -12
  69. package/locales/ru-RU/metadata.json +4 -0
  70. package/locales/ru-RU/plugin.json +89 -2
  71. package/locales/ru-RU/setting.json +1 -0
  72. package/locales/tr-TR/discover.json +452 -12
  73. package/locales/tr-TR/metadata.json +4 -0
  74. package/locales/tr-TR/plugin.json +89 -2
  75. package/locales/tr-TR/setting.json +1 -0
  76. package/locales/vi-VN/discover.json +452 -12
  77. package/locales/vi-VN/metadata.json +4 -0
  78. package/locales/vi-VN/plugin.json +89 -2
  79. package/locales/vi-VN/setting.json +1 -0
  80. package/locales/zh-CN/discover.json +452 -12
  81. package/locales/zh-CN/metadata.json +8 -4
  82. package/locales/zh-CN/plugin.json +89 -2
  83. package/locales/zh-CN/setting.json +1 -0
  84. package/locales/zh-TW/discover.json +452 -12
  85. package/locales/zh-TW/metadata.json +4 -0
  86. package/locales/zh-TW/plugin.json +89 -2
  87. package/locales/zh-TW/setting.json +1 -0
  88. package/next.config.ts +70 -19
  89. package/package.json +7 -3
  90. package/scripts/buildSitemapIndex/index.ts +9 -4
  91. package/src/app/(backend)/trpc/async/[trpc]/route.ts +4 -2
  92. package/src/app/(backend)/trpc/lambda/[trpc]/route.ts +5 -0
  93. package/src/app/[variants]/(main)/_layout/Mobile/index.tsx +5 -4
  94. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/InboxWelcome/AgentsSuggest.tsx +31 -45
  95. package/src/app/[variants]/(main)/discover/(detail)/_layout/Desktop.tsx +8 -6
  96. package/src/app/[variants]/(main)/discover/(detail)/_layout/Mobile/Header.tsx +3 -2
  97. package/src/app/[variants]/(main)/discover/(detail)/_layout/Mobile/index.tsx +5 -1
  98. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/Client.tsx +40 -0
  99. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/DetailProvider.tsx +19 -0
  100. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Block.tsx +27 -0
  101. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Knowledge.tsx +33 -0
  102. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/KnowledgeItem.tsx +58 -0
  103. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/PluginItem.tsx +68 -0
  104. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Plugins.tsx +32 -0
  105. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/index.tsx +37 -0
  106. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Nav.tsx +121 -0
  107. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/TagList.tsx +47 -0
  108. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/index.tsx +96 -0
  109. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Related/index.tsx +31 -0
  110. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/TagList.tsx +47 -0
  111. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/index.tsx +54 -0
  112. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/index.tsx +49 -0
  113. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Header.tsx +176 -0
  114. package/src/app/[variants]/(main)/discover/(detail)/assistant/{[slug]/features → [...slugs]/features/Sidebar/ActionButton}/AddAgent.tsx +22 -21
  115. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/ActionButton/index.tsx +31 -0
  116. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Related/Item.tsx +57 -0
  117. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Related/index.tsx +43 -0
  118. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Summary/index.tsx +38 -0
  119. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/TocList/index.tsx +77 -0
  120. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/index.tsx +46 -0
  121. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/loading.tsx +48 -0
  122. package/src/app/[variants]/(main)/discover/(detail)/{plugin/[slug] → assistant/[...slugs]}/page.tsx +39 -42
  123. package/src/app/[variants]/(main)/discover/(detail)/features/Breadcrumb.tsx +56 -0
  124. package/src/app/[variants]/(main)/discover/(detail)/features/DetailLayout.tsx +0 -1
  125. package/src/app/[variants]/(main)/discover/(detail)/features/MakedownRender.tsx +44 -0
  126. package/src/app/[variants]/(main)/discover/(detail)/features/ShareButton.tsx +4 -3
  127. package/src/app/[variants]/(main)/discover/(detail)/features/Toc/Heading.tsx +108 -0
  128. package/src/app/[variants]/(main)/discover/(detail)/features/Toc/index.tsx +92 -0
  129. package/src/app/[variants]/(main)/discover/(detail)/features/Toc/useToc.tsx +66 -0
  130. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/Client.tsx +43 -0
  131. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/Related/index.tsx +32 -0
  132. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/Versions/index.tsx +76 -0
  133. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/index.tsx +59 -0
  134. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ActionButton/index.tsx +84 -0
  135. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ConnectionTypeAlert.tsx +35 -0
  136. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/Related/Item.tsx +57 -0
  137. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/Related/index.tsx +44 -0
  138. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ServerConfig.tsx +36 -0
  139. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/TocList/index.tsx +98 -0
  140. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/index.tsx +58 -0
  141. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/loading.tsx +1 -0
  142. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/page.tsx +103 -0
  143. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/Client.tsx +40 -0
  144. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/DetailProvider.tsx +19 -0
  145. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Nav.tsx +90 -0
  146. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Overview/ProviderList/index.tsx +179 -0
  147. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Overview/index.tsx +22 -0
  148. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/{ParameterList → Details/Parameter}/ParameterItem.tsx +1 -1
  149. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/{ParameterList → Details/Parameter}/index.tsx +11 -11
  150. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Related/index.tsx +31 -0
  151. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/index.tsx +47 -0
  152. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Header.tsx +84 -59
  153. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/ActionButton/ChatWithModel.tsx +92 -0
  154. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/ActionButton/index.tsx +32 -0
  155. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/Related/Item.tsx +60 -0
  156. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/Related/index.tsx +43 -0
  157. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/RelatedProviders/Item.tsx +60 -0
  158. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/RelatedProviders/index.tsx +34 -0
  159. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/index.tsx +44 -0
  160. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/loading.tsx +1 -0
  161. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/page.tsx +22 -45
  162. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/Client.tsx +40 -0
  163. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/DetailProvider.tsx +19 -0
  164. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Guide/index.tsx +25 -0
  165. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Nav.tsx +99 -0
  166. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Overview/ModelList/index.tsx +142 -0
  167. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Overview/index.tsx +23 -0
  168. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Related/index.tsx +22 -0
  169. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/index.tsx +47 -0
  170. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Header.tsx +99 -0
  171. package/src/app/[variants]/(main)/discover/(detail)/provider/{[slug]/features → [...slugs]/features/Sidebar/ActionButton}/ProviderConfig.tsx +9 -14
  172. package/src/app/[variants]/(main)/discover/(detail)/provider/{[slug]/features/Actions.tsx → [...slugs]/features/Sidebar/ActionButton/index.tsx} +14 -18
  173. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/Related/Item.tsx +60 -0
  174. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/Related/index.tsx +34 -0
  175. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/RelatedModels/Item.tsx +60 -0
  176. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/RelatedModels/index.tsx +43 -0
  177. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/index.tsx +44 -0
  178. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/loading.tsx +1 -0
  179. package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/page.tsx +103 -0
  180. package/src/app/[variants]/(main)/discover/(list)/(home)/Client.tsx +24 -21
  181. package/src/app/[variants]/(main)/discover/(list)/(home)/loading.tsx +1 -1
  182. package/src/app/[variants]/(main)/discover/(list)/(home)/page.tsx +13 -38
  183. package/src/app/[variants]/(main)/discover/(list)/_layout/Desktop/Nav.tsx +15 -8
  184. package/src/app/[variants]/(main)/discover/(list)/_layout/Mobile/Header.tsx +1 -1
  185. package/src/app/[variants]/(main)/discover/(list)/_layout/Mobile/Nav.tsx +2 -1
  186. package/src/app/[variants]/(main)/discover/(list)/assistant/Client.tsx +44 -0
  187. package/src/app/[variants]/(main)/discover/(list)/assistant/features/Category/index.tsx +84 -0
  188. package/src/app/[variants]/(main)/discover/(list)/assistant/features/Category/useCategory.tsx +112 -0
  189. package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/Item.tsx +189 -0
  190. package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/TokenTag.tsx +70 -0
  191. package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/index.tsx +33 -0
  192. package/src/app/[variants]/(main)/discover/(list)/assistant/page.tsx +46 -0
  193. package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +67 -0
  194. package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +184 -0
  195. package/src/app/[variants]/(main)/discover/(list)/mcp/Client.tsx +44 -0
  196. package/src/app/[variants]/(main)/discover/(list)/mcp/features/Category/index.tsx +83 -0
  197. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/ConnectionTypeTag.tsx +51 -0
  198. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +225 -0
  199. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/MetaInfo.tsx +33 -0
  200. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/index.tsx +33 -0
  201. package/src/app/[variants]/(main)/discover/(list)/mcp/page.tsx +46 -0
  202. package/src/app/[variants]/(main)/discover/(list)/model/Client.tsx +44 -0
  203. package/src/app/[variants]/(main)/discover/(list)/{models → model}/_layout/Desktop.tsx +1 -7
  204. package/src/app/[variants]/(main)/discover/(list)/model/features/Category/index.tsx +82 -0
  205. package/src/app/[variants]/(main)/discover/(list)/model/features/Category/useCategory.tsx +41 -0
  206. package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +190 -0
  207. package/src/app/[variants]/(main)/discover/(list)/model/features/List/ModelTypeIcon.tsx +39 -0
  208. package/src/app/[variants]/(main)/discover/(list)/model/features/List/index.tsx +33 -0
  209. package/src/app/[variants]/(main)/discover/(list)/model/loading.tsx +1 -0
  210. package/src/app/[variants]/(main)/discover/(list)/model/page.tsx +44 -0
  211. package/src/app/[variants]/(main)/discover/(list)/provider/Client.tsx +43 -0
  212. package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +136 -0
  213. package/src/app/[variants]/(main)/discover/(list)/provider/features/List/index.tsx +33 -0
  214. package/src/app/[variants]/(main)/discover/(list)/provider/loading.tsx +1 -0
  215. package/src/app/[variants]/(main)/discover/(list)/provider/page.tsx +44 -0
  216. package/src/app/[variants]/(main)/discover/_layout/Desktop/Header.tsx +1 -1
  217. package/src/app/[variants]/(main)/discover/components/CategoryContainer.tsx +7 -5
  218. package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +28 -30
  219. package/src/app/[variants]/(main)/discover/components/ListLoading.tsx +56 -46
  220. package/src/app/[variants]/(main)/discover/components/Statistic.tsx +5 -6
  221. package/src/app/[variants]/(main)/discover/features/Search.tsx +62 -0
  222. package/src/app/[variants]/(main)/discover/features/Title.tsx +83 -0
  223. package/src/app/[variants]/(main)/discover/features/__tests__/calculateScore.test.ts +185 -0
  224. package/src/app/[variants]/(main)/discover/features/useNav.tsx +32 -12
  225. package/src/app/robots.tsx +7 -5
  226. package/src/app/sitemap.tsx +81 -13
  227. package/src/components/CopyableLabel/index.tsx +37 -0
  228. package/src/components/Descriptions/index.tsx +119 -0
  229. package/src/components/InlineTable/index.tsx +69 -0
  230. package/src/{features/PluginSettings/PluginSettingRender.tsx → components/JSONSchemaConfig/ItemRender.tsx} +3 -3
  231. package/src/components/MCPDepsIcon/Java.tsx +23 -0
  232. package/src/components/MCPDepsIcon/PowerShell.tsx +23 -0
  233. package/src/components/MCPDepsIcon/Terminal.tsx +23 -0
  234. package/src/components/MCPDepsIcon/UV.tsx +23 -0
  235. package/src/components/MCPDepsIcon/index.tsx +72 -0
  236. package/src/components/MCPStdioCommandInput/index.tsx +47 -0
  237. package/src/components/OfficialIcon.tsx +23 -0
  238. package/src/components/Plugins/MCPTag.tsx +18 -0
  239. package/src/components/Plugins/PluginTag.tsx +50 -0
  240. package/src/components/PublishedTime.tsx +71 -0
  241. package/src/config/__tests__/app.test.ts +6 -2
  242. package/src/const/discover.ts +8 -34
  243. package/src/database/models/message.ts +1 -0
  244. package/src/database/models/plugin.ts +13 -3
  245. package/src/database/schemas/relations.ts +44 -0
  246. package/src/envs/app.ts +1 -1
  247. package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
  248. package/src/features/ChatInput/ActionBar/Tools/ToolItem.tsx +1 -1
  249. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +5 -5
  250. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/index.tsx +25 -11
  251. package/src/features/MCP/MCPInstallProgress/InstallError/ErrorDetails.tsx +110 -0
  252. package/src/features/MCP/MCPInstallProgress/InstallError/index.tsx +51 -0
  253. package/src/features/MCP/MCPInstallProgress/MCPConfigForm.tsx +151 -0
  254. package/src/features/MCP/MCPInstallProgress/MCPDependenciesGuide.tsx +217 -0
  255. package/src/features/MCP/MCPInstallProgress/index.tsx +118 -0
  256. package/src/features/MCP/Scores.tsx +268 -0
  257. package/src/features/MCP/calculateScore.ts +324 -0
  258. package/src/features/MCP/useScoreList.ts +126 -0
  259. package/src/features/MCP/utils.ts +225 -0
  260. package/src/features/MCPPluginDetail/CollapseDesc.tsx +44 -0
  261. package/src/features/MCPPluginDetail/CollapseLayout.tsx +34 -0
  262. package/src/features/MCPPluginDetail/Deployment/Platform/index.tsx +47 -0
  263. package/src/features/MCPPluginDetail/Deployment/index.tsx +322 -0
  264. package/src/features/MCPPluginDetail/DetailProvider.tsx +19 -0
  265. package/src/features/MCPPluginDetail/Header.tsx +218 -0
  266. package/src/features/MCPPluginDetail/Nav.tsx +196 -0
  267. package/src/features/MCPPluginDetail/Overview/TagList.tsx +47 -0
  268. package/src/features/MCPPluginDetail/Overview/index.tsx +57 -0
  269. package/src/features/MCPPluginDetail/Schema/Block.tsx +50 -0
  270. package/src/features/MCPPluginDetail/Schema/Prompts.tsx +125 -0
  271. package/src/features/MCPPluginDetail/Schema/Resources.tsx +70 -0
  272. package/src/features/MCPPluginDetail/Schema/Tools.tsx +146 -0
  273. package/src/features/MCPPluginDetail/Schema/index.tsx +63 -0
  274. package/src/features/MCPPluginDetail/Schema/style.ts +9 -0
  275. package/src/features/MCPPluginDetail/Schema/types.ts +4 -0
  276. package/src/features/MCPPluginDetail/Score/GithubBadge/index.tsx +82 -0
  277. package/src/features/MCPPluginDetail/Score/ScoreItem.tsx +34 -0
  278. package/src/features/MCPPluginDetail/Score/ScoreList.tsx +24 -0
  279. package/src/features/MCPPluginDetail/Score/TotalScore.tsx +289 -0
  280. package/src/features/MCPPluginDetail/Score/index.tsx +88 -0
  281. package/src/features/PluginAvatar/index.tsx +1 -1
  282. package/src/features/PluginDetailModal/Meta.tsx +3 -4
  283. package/src/features/PluginDevModal/MCPManifestForm/MCPTypeSelect.tsx +3 -4
  284. package/src/features/PluginDevModal/MCPManifestForm/index.tsx +4 -41
  285. package/src/features/PluginDevModal/PluginPreview/EmptyState.tsx +5 -7
  286. package/src/features/PluginDevModal/PluginPreview/index.tsx +6 -6
  287. package/src/features/PluginSettings/index.tsx +2 -2
  288. package/src/features/PluginStore/AddPluginButton.tsx +1 -1
  289. package/src/features/PluginStore/Content.tsx +59 -0
  290. package/src/features/PluginStore/InstalledList/Detail/CustomPluginEmptyState.tsx +81 -0
  291. package/src/features/PluginStore/InstalledList/Detail/index.tsx +21 -0
  292. package/src/features/PluginStore/InstalledList/EditCustomPlugin.tsx +52 -0
  293. package/src/features/PluginStore/{PluginItem → InstalledList/List/Item}/Action.tsx +33 -13
  294. package/src/features/PluginStore/InstalledList/List/Item/index.tsx +62 -0
  295. package/src/features/PluginStore/InstalledList/List/index.tsx +77 -0
  296. package/src/features/PluginStore/InstalledList/index.tsx +85 -0
  297. package/src/features/PluginStore/Loading.tsx +2 -2
  298. package/src/features/PluginStore/McpList/Detail/Loading.tsx +44 -0
  299. package/src/features/PluginStore/McpList/Detail/Settings/index.tsx +381 -0
  300. package/src/features/PluginStore/McpList/Detail/index.tsx +71 -0
  301. package/src/features/PluginStore/McpList/List/Action.tsx +94 -0
  302. package/src/features/PluginStore/McpList/List/Item.tsx +84 -0
  303. package/src/features/PluginStore/McpList/List/index.tsx +97 -0
  304. package/src/features/PluginStore/McpList/index.tsx +54 -0
  305. package/src/features/PluginStore/PluginList/Detail/DetailProvider.tsx +19 -0
  306. package/src/features/PluginStore/PluginList/Detail/EmptyState.tsx +58 -0
  307. package/src/features/PluginStore/PluginList/Detail/Header.tsx +132 -0
  308. package/src/features/PluginStore/PluginList/Detail/InstallDetail/Nav.tsx +75 -0
  309. package/src/features/PluginStore/PluginList/Detail/InstallDetail/Settings.tsx +19 -0
  310. package/src/features/PluginStore/PluginList/Detail/InstallDetail/Tools.tsx +109 -0
  311. package/src/features/PluginStore/PluginList/Detail/InstallDetail/index.tsx +24 -0
  312. package/src/features/PluginStore/PluginList/Detail/Loading.tsx +44 -0
  313. package/src/features/PluginStore/PluginList/Detail/TagList.tsx +37 -0
  314. package/src/features/PluginStore/PluginList/Detail/index.tsx +39 -0
  315. package/src/features/PluginStore/PluginList/Detail/useCategory.tsx +76 -0
  316. package/src/features/PluginStore/PluginList/List/Action.tsx +72 -0
  317. package/src/features/PluginStore/PluginList/List/Item.tsx +94 -0
  318. package/src/features/PluginStore/PluginList/List/index.tsx +91 -0
  319. package/src/features/PluginStore/PluginList/index.tsx +47 -0
  320. package/src/features/PluginStore/Search/index.tsx +29 -0
  321. package/src/features/PluginStore/VirtuosoLoading.tsx +16 -0
  322. package/src/features/PluginStore/index.tsx +7 -31
  323. package/src/features/PluginTag/index.tsx +6 -4
  324. package/src/hooks/useInterceptingRoutes.test.ts +6 -0
  325. package/src/hooks/useMCPCategory.tsx +133 -0
  326. package/src/hooks/useQuery.ts +8 -0
  327. package/src/hooks/useQueryRoute.test.ts +7 -0
  328. package/src/hooks/useQueryRoute.ts +5 -3
  329. package/src/layout/GlobalProvider/Locale.tsx +2 -1
  330. package/src/libs/mcp/client.ts +255 -11
  331. package/src/libs/mcp/types.ts +99 -0
  332. package/src/libs/trpc/client/desktop.ts +2 -3
  333. package/src/libs/trpc/lambda/context.ts +36 -5
  334. package/src/libs/trpc/lambda/index.ts +1 -1
  335. package/src/libs/trpc/lambda/init.ts +8 -1
  336. package/src/locales/create.ts +8 -3
  337. package/src/locales/default/discover.ts +457 -12
  338. package/src/locales/default/metadata.ts +9 -4
  339. package/src/locales/default/plugin.ts +89 -1
  340. package/src/locales/default/setting.ts +1 -0
  341. package/src/locales/resources.ts +1 -1
  342. package/src/middleware.ts +13 -3
  343. package/src/server/ld.ts +4 -3
  344. package/src/server/modules/AssistantStore/index.test.ts +10 -8
  345. package/src/server/modules/AssistantStore/index.ts +37 -17
  346. package/src/server/modules/PluginStore/index.test.ts +1 -1
  347. package/src/server/modules/PluginStore/index.ts +24 -1
  348. package/src/server/routers/async/caller.ts +2 -2
  349. package/src/server/routers/desktop/mcp.ts +36 -2
  350. package/src/server/routers/edge/index.ts +0 -6
  351. package/src/server/routers/{edge → lambda}/config/index.ts +1 -1
  352. package/src/server/routers/lambda/index.ts +4 -0
  353. package/src/server/routers/lambda/market/index.ts +621 -0
  354. package/src/server/routers/lambda/plugin.ts +2 -0
  355. package/src/server/routers/tools/mcp.ts +22 -0
  356. package/src/server/services/discover/index.test.ts +573 -250
  357. package/src/server/services/discover/index.ts +1096 -241
  358. package/src/server/services/mcp/deps/MCPSystemDepsCheckService.ts +238 -0
  359. package/src/server/services/mcp/deps/checkers/ManualInstallationChecker.ts +20 -0
  360. package/src/server/services/mcp/deps/checkers/NpmInstallationChecker.ts +51 -0
  361. package/src/server/services/mcp/deps/checkers/PythonInstallationChecker.ts +69 -0
  362. package/src/server/services/mcp/deps/index.ts +14 -0
  363. package/src/server/services/mcp/deps/types.ts +49 -0
  364. package/src/server/services/mcp/index.ts +251 -33
  365. package/src/server/sitemap.test.ts +203 -46
  366. package/src/server/sitemap.ts +159 -52
  367. package/src/services/__tests__/global.test.ts +4 -7
  368. package/src/services/__tests__/tool.test.ts +1 -29
  369. package/src/services/discover.ts +365 -0
  370. package/src/services/global.ts +3 -3
  371. package/src/services/mcp.ts +131 -10
  372. package/src/services/plugin/_deprecated.ts +1 -1
  373. package/src/services/plugin/type.ts +3 -1
  374. package/src/services/tool.ts +9 -6
  375. package/src/store/chat/slices/plugin/action.test.ts +2 -3
  376. package/src/store/chat/slices/plugin/action.ts +22 -4
  377. package/src/store/discover/index.ts +1 -0
  378. package/src/store/discover/slices/assistant/action.ts +73 -0
  379. package/src/store/discover/slices/assistant/index.ts +1 -0
  380. package/src/store/discover/slices/mcp/action.ts +70 -0
  381. package/src/store/discover/slices/mcp/index.ts +1 -0
  382. package/src/store/discover/slices/model/action.ts +70 -0
  383. package/src/store/discover/slices/model/index.ts +1 -0
  384. package/src/store/discover/slices/plugin/action.ts +76 -0
  385. package/src/store/discover/slices/plugin/index.ts +1 -0
  386. package/src/store/discover/slices/provider/action.ts +61 -0
  387. package/src/store/discover/slices/provider/index.ts +1 -0
  388. package/src/store/discover/store.ts +39 -0
  389. package/src/store/tool/initialState.ts +8 -2
  390. package/src/store/tool/selectors/index.ts +2 -1
  391. package/src/store/tool/selectors/tool.test.ts +3 -1
  392. package/src/store/tool/selectors/tool.ts +14 -2
  393. package/src/store/tool/slices/mcpStore/action.ts +496 -0
  394. package/src/store/tool/slices/mcpStore/initialState.ts +40 -0
  395. package/src/store/tool/slices/mcpStore/selectors.ts +62 -0
  396. package/src/store/tool/slices/{store → oldStore}/action.test.ts +24 -19
  397. package/src/store/tool/slices/oldStore/action.ts +269 -0
  398. package/src/store/tool/slices/oldStore/index.ts +3 -0
  399. package/src/store/tool/slices/oldStore/initialState.ts +54 -0
  400. package/src/store/tool/slices/{store → oldStore}/selectors.test.ts +6 -3
  401. package/src/store/tool/slices/{store → oldStore}/selectors.ts +18 -5
  402. package/src/store/tool/slices/plugin/action.test.ts +2 -1
  403. package/src/store/tool/slices/plugin/action.ts +22 -4
  404. package/src/store/tool/slices/plugin/selectors.test.ts +12 -4
  405. package/src/store/tool/slices/plugin/selectors.ts +20 -9
  406. package/src/store/tool/store.ts +5 -2
  407. package/src/types/discover/assistants.ts +72 -0
  408. package/src/types/discover/index.ts +41 -0
  409. package/src/types/discover/mcp.ts +59 -0
  410. package/src/types/discover/models.ts +51 -0
  411. package/src/types/discover/plugins.ts +52 -0
  412. package/src/types/discover/providers.ts +47 -0
  413. package/src/types/message/tools.ts +3 -0
  414. package/src/types/plugins/index.ts +53 -0
  415. package/src/types/plugins/mcp.ts +188 -0
  416. package/src/types/plugins/mcpDeps.ts +30 -0
  417. package/src/types/tool/index.ts +10 -0
  418. package/src/types/tool/plugin.ts +3 -2
  419. package/src/types/tool/tool.ts +4 -1
  420. package/src/utils/client/cookie.ts +5 -2
  421. package/src/utils/locale.ts +3 -3
  422. package/src/utils/object.ts +10 -0
  423. package/src/utils/server/pageProps.ts +9 -0
  424. package/src/utils/toolCall.ts +5 -1
  425. package/src/utils/toolManifest.ts +1 -2
  426. package/vercel.json +1 -1
  427. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Actions.tsx +0 -35
  428. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/ConversationExample/TopicList.tsx +0 -75
  429. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/ConversationExample/index.tsx +0 -105
  430. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Header.tsx +0 -115
  431. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -62
  432. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/ToolItem.tsx +0 -19
  433. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/index.tsx +0 -60
  434. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/SystemRole.tsx +0 -35
  435. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Temp.tsx +0 -44
  436. package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/page.tsx +0 -124
  437. package/src/app/[variants]/(main)/discover/(detail)/loading.tsx +0 -38
  438. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Actions.tsx +0 -40
  439. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ChatWithModel.tsx +0 -93
  440. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/InfoSidebar/SuggestionItem.tsx +0 -74
  441. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/InfoSidebar/index.tsx +0 -45
  442. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ProviderList/ProviderItem.tsx +0 -139
  443. package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ProviderList/index.tsx +0 -45
  444. package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Actions.tsx +0 -35
  445. package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Header.tsx +0 -119
  446. package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -64
  447. package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InfoSidebar/index.tsx +0 -45
  448. package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InstallPlugin.tsx +0 -83
  449. package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/ParameterList.tsx +0 -95
  450. package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Schema.tsx +0 -23
  451. package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/Header.tsx +0 -73
  452. package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -77
  453. package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/InfoSidebar/index.tsx +0 -45
  454. package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/ModelList/ModelItem.tsx +0 -152
  455. package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/ModelList/index.tsx +0 -60
  456. package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/page.tsx +0 -126
  457. package/src/app/[variants]/(main)/discover/(list)/(home)/features/AssistantList.tsx +0 -33
  458. package/src/app/[variants]/(main)/discover/(list)/(home)/features/ModelList.tsx +0 -19
  459. package/src/app/[variants]/(main)/discover/(list)/(home)/features/PluginList.tsx +0 -25
  460. package/src/app/[variants]/(main)/discover/(list)/assistants/[slug]/page.tsx +0 -75
  461. package/src/app/[variants]/(main)/discover/(list)/assistants/features/Card.tsx +0 -195
  462. package/src/app/[variants]/(main)/discover/(list)/assistants/features/Category.tsx +0 -48
  463. package/src/app/[variants]/(main)/discover/(list)/assistants/features/List.tsx +0 -98
  464. package/src/app/[variants]/(main)/discover/(list)/assistants/features/useCategory.tsx +0 -116
  465. package/src/app/[variants]/(main)/discover/(list)/assistants/page.tsx +0 -64
  466. package/src/app/[variants]/(main)/discover/(list)/loading.tsx +0 -39
  467. package/src/app/[variants]/(main)/discover/(list)/models/[slug]/page.tsx +0 -78
  468. package/src/app/[variants]/(main)/discover/(list)/models/features/Card.tsx +0 -118
  469. package/src/app/[variants]/(main)/discover/(list)/models/features/Category.tsx +0 -67
  470. package/src/app/[variants]/(main)/discover/(list)/models/features/List.tsx +0 -71
  471. package/src/app/[variants]/(main)/discover/(list)/models/loading.tsx +0 -1
  472. package/src/app/[variants]/(main)/discover/(list)/models/page.tsx +0 -73
  473. package/src/app/[variants]/(main)/discover/(list)/plugins/[slug]/page.tsx +0 -75
  474. package/src/app/[variants]/(main)/discover/(list)/plugins/features/Card.tsx +0 -161
  475. package/src/app/[variants]/(main)/discover/(list)/plugins/features/Category.tsx +0 -45
  476. package/src/app/[variants]/(main)/discover/(list)/plugins/features/List.tsx +0 -97
  477. package/src/app/[variants]/(main)/discover/(list)/plugins/features/useCategory.tsx +0 -80
  478. package/src/app/[variants]/(main)/discover/(list)/plugins/page.tsx +0 -64
  479. package/src/app/[variants]/(main)/discover/(list)/providers/features/Card.tsx +0 -119
  480. package/src/app/[variants]/(main)/discover/(list)/providers/features/List.tsx +0 -67
  481. package/src/app/[variants]/(main)/discover/(list)/providers/loading.tsx +0 -1
  482. package/src/app/[variants]/(main)/discover/(list)/providers/page.tsx +0 -64
  483. package/src/app/[variants]/(main)/discover/features/StoreSearchBar.tsx +0 -87
  484. package/src/app/[variants]/(main)/discover/loading.tsx +0 -3
  485. package/src/app/[variants]/(main)/discover/search/_layout/Desktop.tsx +0 -42
  486. package/src/app/[variants]/(main)/discover/search/_layout/Mobile/Header.tsx +0 -31
  487. package/src/app/[variants]/(main)/discover/search/_layout/Mobile/Nav.tsx +0 -56
  488. package/src/app/[variants]/(main)/discover/search/_layout/Mobile/index.tsx +0 -32
  489. package/src/app/[variants]/(main)/discover/search/features/AssistantsResult.tsx +0 -27
  490. package/src/app/[variants]/(main)/discover/search/features/Category.tsx +0 -41
  491. package/src/app/[variants]/(main)/discover/search/features/ModelsResult.tsx +0 -27
  492. package/src/app/[variants]/(main)/discover/search/features/PluginsResult.tsx +0 -27
  493. package/src/app/[variants]/(main)/discover/search/features/ProvidersResult.tsx +0 -26
  494. package/src/app/[variants]/(main)/discover/search/layout.tsx +0 -12
  495. package/src/app/[variants]/(main)/discover/search/loading.tsx +0 -1
  496. package/src/app/[variants]/(main)/discover/search/page.tsx +0 -82
  497. package/src/features/PluginStore/InstalledPluginList.tsx +0 -59
  498. package/src/features/PluginStore/OnlineList.tsx +0 -87
  499. package/src/features/PluginStore/PluginItem/EditCustomPlugin.tsx +0 -55
  500. package/src/features/PluginStore/PluginItem/PluginTag.tsx +0 -29
  501. package/src/features/PluginStore/PluginItem/index.tsx +0 -83
  502. package/src/server/routers/edge/market/index.ts +0 -108
  503. package/src/services/__tests__/assistant.test.ts +0 -87
  504. package/src/services/assistant.ts +0 -25
  505. package/src/store/tool/slices/store/action.ts +0 -113
  506. package/src/store/tool/slices/store/initialState.ts +0 -17
  507. package/src/types/discover.ts +0 -179
  508. package/src/types/requestCache.ts +0 -3
  509. /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/_layout/Desktop.tsx +0 -0
  510. /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/_layout/Mobile.tsx +0 -0
  511. /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/layout.tsx +0 -0
  512. /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/loading.tsx +0 -0
  513. /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/_layout/Desktop.tsx +0 -0
  514. /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/_layout/Mobile.tsx +0 -0
  515. /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/layout.tsx +0 -0
  516. /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/loading.tsx +0 -0
  517. /package/src/app/[variants]/(main)/discover/(list)/{models → model}/_layout/Mobile.tsx +0 -0
  518. /package/src/app/[variants]/(main)/discover/(list)/{models → model}/features/const.ts +0 -0
  519. /package/src/app/[variants]/(main)/discover/(list)/{models → model}/layout.tsx +0 -0
  520. /package/src/{features/PluginStore/PluginItem → components/Plugins}/PluginAvatar.tsx +0 -0
  521. /package/src/server/routers/{edge → lambda}/config/__snapshots__/index.test.ts.snap +0 -0
  522. /package/src/server/routers/{edge → lambda}/config/index.test.ts +0 -0
  523. /package/src/store/tool/slices/{store → mcpStore}/index.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,56 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.97.1](https://github.com/lobehub/lobe-chat/compare/v1.97.0...v1.97.1)
6
+
7
+ <sup>Released on **2025-07-10**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: Fix locale hydration error in SSR.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's fixed
19
+
20
+ - **misc**: Fix locale hydration error in SSR, closes [#8365](https://github.com/lobehub/lobe-chat/issues/8365) ([63f482a](https://github.com/lobehub/lobe-chat/commit/63f482a))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
30
+ ## [Version 1.97.0](https://github.com/lobehub/lobe-chat/compare/v1.96.20...v1.97.0)
31
+
32
+ <sup>Released on **2025-07-08**</sup>
33
+
34
+ #### ✨ Features
35
+
36
+ - **misc**: Add MCP marketplace and mcp plugin one-click installation in desktop.
37
+
38
+ <br/>
39
+
40
+ <details>
41
+ <summary><kbd>Improvements and Fixes</kbd></summary>
42
+
43
+ #### What's improved
44
+
45
+ - **misc**: Add MCP marketplace and mcp plugin one-click installation in desktop, closes [#8334](https://github.com/lobehub/lobe-chat/issues/8334) ([416a4b1](https://github.com/lobehub/lobe-chat/commit/416a4b1))
46
+
47
+ </details>
48
+
49
+ <div align="right">
50
+
51
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
52
+
53
+ </div>
54
+
5
55
  ### [Version 1.96.20](https://github.com/lobehub/lobe-chat/compare/v1.96.19...v1.96.20)
6
56
 
7
57
  <sup>Released on **2025-07-08**</sup>
package/README.md CHANGED
@@ -52,22 +52,26 @@ One-click **FREE** deployment of your private OpenAI ChatGPT/Claude/Gemini/Groq/
52
52
 
53
53
  - [👋🏻 Getting Started & Join Our Community](#-getting-started--join-our-community)
54
54
  - [✨ Features](#-features)
55
- - [`1` Chain of Thought](#1-chain-of-thought)
56
- - [`2` Branching Conversations](#2-branching-conversations)
57
- - [`3` Artifacts Support](#3-artifacts-support)
58
- - [`4` File Upload /Knowledge Base](#4-file-upload-knowledge-base)
59
- - [`5` Multi-Model Service Provider Support](#5-multi-model-service-provider-support)
60
- - [`6` Local Large Language Model (LLM) Support](#6-local-large-language-model-llm-support)
61
- - [`7` Model Visual Recognition](#7-model-visual-recognition)
62
- - [`8` TTS & STT Voice Conversation](#8-tts--stt-voice-conversation)
63
- - [`9` Text to Image Generation](#9-text-to-image-generation)
64
- - [`10` Plugin System (Function Calling)](#10-plugin-system-function-calling)
65
- - [`11` Agent Market (GPTs)](#11-agent-market-gpts)
66
- - [`12` Support Local / Remote Database](#12-support-local--remote-database)
67
- - [`13` Support Multi-User Management](#13-support-multi-user-management)
68
- - [`14` Progressive Web App (PWA)](#14-progressive-web-app-pwa)
69
- - [`15` Mobile Device Adaptation](#15-mobile-device-adaptation)
70
- - [`16` Custom Themes](#16-custom-themes)
55
+ - [ MCP Plugin One-Click Installation](#-mcp-plugin-one-click-installation)
56
+ - [🏪 MCP Marketplace](#-mcp-marketplace)
57
+ - [🖥️ Desktop App](#️-desktop-app)
58
+ - [🌐 Smart Internet Search](#-smart-internet-search)
59
+ - [Chain of Thought](#chain-of-thought)
60
+ - [Branching Conversations](#branching-conversations)
61
+ - [Artifacts Support](#artifacts-support)
62
+ - [File Upload /Knowledge Base](#file-upload-knowledge-base)
63
+ - [Multi-Model Service Provider Support](#multi-model-service-provider-support)
64
+ - [Local Large Language Model (LLM) Support](#local-large-language-model-llm-support)
65
+ - [Model Visual Recognition](#model-visual-recognition)
66
+ - [TTS & STT Voice Conversation](#tts--stt-voice-conversation)
67
+ - [Text to Image Generation](#text-to-image-generation)
68
+ - [Plugin System (Function Calling)](#plugin-system-function-calling)
69
+ - [Agent Market (GPTs)](#agent-market-gpts)
70
+ - [Support Local / Remote Database](#support-local--remote-database)
71
+ - [Support Multi-User Management](#support-multi-user-management)
72
+ - [Progressive Web App (PWA)](#progressive-web-app-pwa)
73
+ - [Mobile Device Adaptation](#mobile-device-adaptation)
74
+ - [Custom Themes](#custom-themes)
71
75
  - [`*` What's more](#-whats-more)
72
76
  - [⚡️ Performance](#️-performance)
73
77
  - [🛳 Self Hosting](#-self-hosting)
@@ -114,9 +118,59 @@ Whether for users or professional developers, LobeHub will be your AI Agent play
114
118
 
115
119
  ## ✨ Features
116
120
 
121
+ Transform your AI experience with LobeChat's powerful features designed for seamless connectivity, enhanced productivity, and unlimited creativity.
122
+
123
+ ![][image-feat-mcp]
124
+
125
+ ### ✨ MCP Plugin One-Click Installation
126
+
127
+ **Seamlessly Connect Your AI to the World**
128
+
129
+ Unlock the full potential of your AI by enabling smooth, secure, and dynamic interactions with external tools, data sources, and services. LobeChat's MCP (Model Context Protocol) plugin system breaks down the barriers between your AI and the digital ecosystem, allowing for unprecedented connectivity and functionality.
130
+
131
+ Transform your conversations into powerful workflows by connecting to databases, APIs, file systems, and more. Experience the freedom of AI that truly understands and interacts with your world.
132
+
133
+ [![][back-to-top]](#readme-top)
134
+
135
+ ![][image-feat-mcp-market]
136
+
137
+ ### 🏪 MCP Marketplace
138
+
139
+ **Discover, Connect, Extend**
140
+
141
+ Browse a growing library of MCP plugins to expand your AI's capabilities and streamline your workflows effortlessly. Visit [lobehub.com/mcp](https://lobehub.com/mcp) to explore the MCP Marketplace, which offers a curated collection of integrations that enhance your AI's ability to work with various tools and services.
142
+
143
+ From productivity tools to development environments, discover new ways to extend your AI's reach and effectiveness. Connect with the community and find the perfect plugins for your specific needs.
144
+
145
+ [![][back-to-top]](#readme-top)
146
+
147
+ ![][image-feat-desktop]
148
+
149
+ ### 🖥️ Desktop App
150
+
151
+ **Peak Performance, Zero Distractions**
152
+
153
+ Get the full LobeChat experience without browser limitations—lightweight, focused, and always ready to go. Our desktop application provides a dedicated environment for your AI interactions, ensuring optimal performance and minimal distractions.
154
+
155
+ Experience faster response times, better resource management, and a more stable connection to your AI assistant. The desktop app is designed for users who demand the best performance from their AI tools.
156
+
157
+ [![][back-to-top]](#readme-top)
158
+
159
+ ![][image-feat-web-search]
160
+
161
+ ### 🌐 Smart Internet Search
162
+
163
+ **Online Knowledge On Demand**
164
+
165
+ With real-time internet access, your AI keeps up with the world—news, data, trends, and more. Stay informed and get the most current information available, enabling your AI to provide accurate and up-to-date responses.
166
+
167
+ Access live information, verify facts, and explore current events without leaving your conversation. Your AI becomes a gateway to the world's knowledge, always current and comprehensive.
168
+
169
+ [![][back-to-top]](#readme-top)
170
+
117
171
  [![][image-feat-cot]][docs-feat-cot]
118
172
 
119
- ### `1` [Chain of Thought][docs-feat-cot]
173
+ ### [Chain of Thought][docs-feat-cot]
120
174
 
121
175
  Experience AI reasoning like never before. Watch as complex problems unfold step by step through our innovative Chain of Thought (CoT) visualization. This breakthrough feature provides unprecedented transparency into AI's decision-making process, allowing you to observe how conclusions are reached in real-time.
122
176
 
@@ -126,7 +180,7 @@ By breaking down complex reasoning into clear, logical steps, you can better und
126
180
 
127
181
  [![][image-feat-branch]][docs-feat-branch]
128
182
 
129
- ### `2` [Branching Conversations][docs-feat-branch]
183
+ ### [Branching Conversations][docs-feat-branch]
130
184
 
131
185
  Introducing a more natural and flexible way to chat with AI. With Branch Conversations, your discussions can flow in multiple directions, just like human conversations do. Create new conversation branches from any message, giving you the freedom to explore different paths while preserving the original context.
132
186
 
@@ -141,7 +195,7 @@ This groundbreaking feature transforms linear conversations into dynamic, tree-l
141
195
 
142
196
  [![][image-feat-artifacts]][docs-feat-artifacts]
143
197
 
144
- ### `3` [Artifacts Support][docs-feat-artifacts]
198
+ ### [Artifacts Support][docs-feat-artifacts]
145
199
 
146
200
  Experience the power of Claude Artifacts, now integrated into LobeChat. This revolutionary feature expands the boundaries of AI-human interaction, enabling real-time creation and visualization of diverse content formats.
147
201
 
@@ -155,7 +209,7 @@ Create and visualize with unprecedented flexibility:
155
209
 
156
210
  [![][image-feat-knowledgebase]][docs-feat-knowledgebase]
157
211
 
158
- ### `4` [File Upload /Knowledge Base][docs-feat-knowledgebase]
212
+ ### [File Upload /Knowledge Base][docs-feat-knowledgebase]
159
213
 
160
214
  LobeChat supports file upload and knowledge base functionality. You can upload various types of files including documents, images, audio, and video, as well as create knowledge bases, making it convenient for users to manage and search for files. Additionally, you can utilize files and knowledge base features during conversations, enabling a richer dialogue experience.
161
215
 
@@ -173,7 +227,7 @@ LobeChat supports file upload and knowledge base functionality. You can upload v
173
227
 
174
228
  [![][image-feat-privoder]][docs-feat-provider]
175
229
 
176
- ### `5` [Multi-Model Service Provider Support][docs-feat-provider]
230
+ ### [Multi-Model Service Provider Support][docs-feat-provider]
177
231
 
178
232
  In the continuous development of LobeChat, we deeply understand the importance of diversity in model service providers for meeting the needs of the community when providing AI conversation services. Therefore, we have expanded our support to multiple model service providers, rather than being limited to a single one, in order to offer users a more diverse and rich selection of conversations.
179
233
 
@@ -246,7 +300,7 @@ At the same time, we are also planning to support more model service providers.
246
300
 
247
301
  [![][image-feat-local]][docs-feat-local]
248
302
 
249
- ### `6` [Local Large Language Model (LLM) Support][docs-feat-local]
303
+ ### [Local Large Language Model (LLM) Support][docs-feat-local]
250
304
 
251
305
  To meet the specific needs of users, LobeChat also supports the use of local models based on [Ollama](https://ollama.ai), allowing users to flexibly use their own or third-party models.
252
306
 
@@ -262,7 +316,7 @@ To meet the specific needs of users, LobeChat also supports the use of local mod
262
316
 
263
317
  [![][image-feat-vision]][docs-feat-vision]
264
318
 
265
- ### `7` [Model Visual Recognition][docs-feat-vision]
319
+ ### [Model Visual Recognition][docs-feat-vision]
266
320
 
267
321
  LobeChat now supports OpenAI's latest [`gpt-4-vision`](https://platform.openai.com/docs/guides/vision) model with visual recognition capabilities,
268
322
  a multimodal intelligence that can perceive visuals. Users can easily upload or drag and drop images into the dialogue box,
@@ -280,7 +334,7 @@ Whether it's sharing images in daily use or interpreting images within specific
280
334
 
281
335
  [![][image-feat-tts]][docs-feat-tts]
282
336
 
283
- ### `8` [TTS & STT Voice Conversation][docs-feat-tts]
337
+ ### [TTS & STT Voice Conversation][docs-feat-tts]
284
338
 
285
339
  LobeChat supports Text-to-Speech (TTS) and Speech-to-Text (STT) technologies, enabling our application to convert text messages into clear voice outputs,
286
340
  allowing users to interact with our conversational agent as if they were talking to a real person. Users can choose from a variety of voices to pair with the agent.
@@ -297,7 +351,7 @@ Users can choose the voice that suits their personal preferences or specific sce
297
351
 
298
352
  [![][image-feat-t2i]][docs-feat-t2i]
299
353
 
300
- ### `9` [Text to Image Generation][docs-feat-t2i]
354
+ ### [Text to Image Generation][docs-feat-t2i]
301
355
 
302
356
  With support for the latest text-to-image generation technology, LobeChat now allows users to invoke image creation tools directly within conversations with the agent. By leveraging the capabilities of AI tools such as [`DALL-E 3`](https://openai.com/dall-e-3), [`MidJourney`](https://www.midjourney.com/), and [`Pollinations`](https://pollinations.ai/), the agents are now equipped to transform your ideas into images.
303
357
 
@@ -311,7 +365,7 @@ This enables a more private and immersive creative process, allowing for the sea
311
365
 
312
366
  [![][image-feat-plugin]][docs-feat-plugin]
313
367
 
314
- ### `10` [Plugin System (Function Calling)][docs-feat-plugin]
368
+ ### [Plugin System (Function Calling)][docs-feat-plugin]
315
369
 
316
370
  The plugin ecosystem of LobeChat is an important extension of its core functionality, greatly enhancing the practicality and flexibility of the LobeChat assistant.
317
371
 
@@ -346,7 +400,7 @@ In addition, these plugins are not limited to news aggregation, but can also ext
346
400
 
347
401
  [![][image-feat-agent]][docs-feat-agent]
348
402
 
349
- ### `11` [Agent Market (GPTs)][docs-feat-agent]
403
+ ### [Agent Market (GPTs)][docs-feat-agent]
350
404
 
351
405
  In LobeChat Agent Marketplace, creators can discover a vibrant and innovative community that brings together a multitude of well-designed agents,
352
406
  which not only play an important role in work scenarios but also offer great convenience in learning processes.
@@ -385,7 +439,7 @@ Our marketplace is not just a showcase platform but also a collaborative space.
385
439
 
386
440
  [![][image-feat-database]][docs-feat-database]
387
441
 
388
- ### `12` [Support Local / Remote Database][docs-feat-database]
442
+ ### [Support Local / Remote Database][docs-feat-database]
389
443
 
390
444
  LobeChat supports the use of both server-side and local databases. Depending on your needs, you can choose the appropriate deployment solution:
391
445
 
@@ -402,7 +456,7 @@ Regardless of which database you choose, LobeChat can provide you with an excell
402
456
 
403
457
  [![][image-feat-auth]][docs-feat-auth]
404
458
 
405
- ### `13` [Support Multi-User Management][docs-feat-auth]
459
+ ### [Support Multi-User Management][docs-feat-auth]
406
460
 
407
461
  LobeChat supports multi-user management and provides two main user authentication and management solutions to meet different needs:
408
462
 
@@ -420,7 +474,7 @@ Regardless of which user management solution you choose, LobeChat can provide yo
420
474
 
421
475
  [![][image-feat-pwa]][docs-feat-pwa]
422
476
 
423
- ### `14` [Progressive Web App (PWA)][docs-feat-pwa]
477
+ ### [Progressive Web App (PWA)][docs-feat-pwa]
424
478
 
425
479
  We deeply understand the importance of providing a seamless experience for users in today's multi-device environment.
426
480
  Therefore, we have adopted Progressive Web Application ([PWA](https://support.google.com/chrome/answer/9658361)) technology,
@@ -447,7 +501,7 @@ providing smooth animations, responsive layouts, and adapting to different devic
447
501
 
448
502
  [![][image-feat-mobile]][docs-feat-mobile]
449
503
 
450
- ### `15` [Mobile Device Adaptation][docs-feat-mobile]
504
+ ### [Mobile Device Adaptation][docs-feat-mobile]
451
505
 
452
506
  We have carried out a series of optimization designs for mobile devices to enhance the user's mobile experience. Currently, we are iterating on the mobile user experience to achieve smoother and more intuitive interactions. If you have any suggestions or ideas, we welcome you to provide feedback through GitHub Issues or Pull Requests.
453
507
 
@@ -459,7 +513,7 @@ We have carried out a series of optimization designs for mobile devices to enhan
459
513
 
460
514
  [![][image-feat-theme]][docs-feat-theme]
461
515
 
462
- ### `16` [Custom Themes][docs-feat-theme]
516
+ ### [Custom Themes][docs-feat-theme]
463
517
 
464
518
  As a design-engineering-oriented application, LobeChat places great emphasis on users' personalized experiences,
465
519
  hence introducing flexible and diverse theme modes, including a light mode for daytime and a dark mode for nighttime.
@@ -858,8 +912,11 @@ This project is [Apache 2.0](./LICENSE) licensed.
858
912
  [image-feat-branch]: https://github.com/user-attachments/assets/92f72082-02bd-4835-9c54-b089aad7fd41
859
913
  [image-feat-cot]: https://github.com/user-attachments/assets/f74f1139-d115-4e9c-8c43-040a53797a5e
860
914
  [image-feat-database]: https://github.com/user-attachments/assets/f1697c8b-d1fb-4dac-ba05-153c6295d91d
915
+ [image-feat-desktop]: https://github.com/user-attachments/assets/a7bac8d3-ea96-4000-bb39-fadc9b610f96
861
916
  [image-feat-knowledgebase]: https://github.com/user-attachments/assets/7da7a3b2-92fd-4630-9f4e-8560c74955ae
862
917
  [image-feat-local]: https://github.com/user-attachments/assets/1239da50-d832-4632-a7ef-bd754c0f3850
918
+ [image-feat-mcp]: https://github.com/user-attachments/assets/1be85d36-3975-4413-931f-27e05e440995
919
+ [image-feat-mcp-market]: https://github.com/user-attachments/assets/bb114f9f-24c5-4000-a984-c10d187da5a0
863
920
  [image-feat-mobile]: https://github.com/user-attachments/assets/32cf43c4-96bd-4a4c-bfb6-59acde6fe380
864
921
  [image-feat-plugin]: https://github.com/user-attachments/assets/66a891ac-01b6-4e3f-b978-2eb07b489b1b
865
922
  [image-feat-privoder]: https://github.com/user-attachments/assets/e553e407-42de-4919-977d-7dbfcf44a821
@@ -868,6 +925,7 @@ This project is [Apache 2.0](./LICENSE) licensed.
868
925
  [image-feat-theme]: https://github.com/user-attachments/assets/b47c39f1-806f-492b-8fcb-b0fa973937c1
869
926
  [image-feat-tts]: https://github.com/user-attachments/assets/50189597-2cc3-4002-b4c8-756a52ad5c0a
870
927
  [image-feat-vision]: https://github.com/user-attachments/assets/18574a1f-46c2-4cbc-af2c-35a86e128a07
928
+ [image-feat-web-search]: https://github.com/user-attachments/assets/cfdc48ac-b5f8-4a00-acee-db8f2eba09ad
871
929
  [image-overview]: https://github.com/user-attachments/assets/dbfaa84a-2c82-4dd9-815c-5be616f264a4
872
930
  [image-star]: https://github.com/user-attachments/assets/c3b482e7-cef5-4e94-bef9-226900ecfaab
873
931
  [issues-link]: https://img.shields.io/github/issues/lobehub/lobe-chat.svg?style=flat
package/README.zh-CN.md CHANGED
@@ -52,22 +52,26 @@
52
52
 
53
53
  - [👋🏻 开始使用 & 交流](#-开始使用--交流)
54
54
  - [✨ 特性一览](#-特性一览)
55
- - [`1` 思维链 (CoT)](#1-思维链-cot)
56
- - [`2` 分支对话](#2-分支对话)
57
- - [`3` 支持白板 (Artifacts)](#3-支持白板-artifacts)
58
- - [`4` 文件上传 / 知识库](#4-文件上传--知识库)
59
- - [`5` 多模型服务商支持](#5-多模型服务商支持)
60
- - [`6` 支持本地大语言模型 (LLM)](#6-支持本地大语言模型-llm)
61
- - [`7` 模型视觉识别 (Model Visual)](#7-模型视觉识别-model-visual)
62
- - [`8` TTS & STT 语音会话](#8-tts--stt-语音会话)
63
- - [`9` Text to Image 文生图](#9-text-to-image-文生图)
64
- - [`10` 插件系统 (Tools Calling)](#10-插件系统-tools-calling)
65
- - [`11` 助手市场 (GPTs)](#11-助手市场-gpts)
66
- - [`12` 支持本地 / 远程数据库](#12-支持本地--远程数据库)
67
- - [`13` 支持多用户管理](#13-支持多用户管理)
68
- - [`14` 渐进式 Web 应用 (PWA)](#14-渐进式-web-应用-pwa)
69
- - [`15` 移动设备适配](#15-移动设备适配)
70
- - [`16` 自定义主题](#16-自定义主题)
55
+ - [ MCP 插件一键安装](#-mcp-插件一键安装)
56
+ - [🏪 MCP 市场](#-mcp-市场)
57
+ - [🖥️ 桌面应用](#️-桌面应用)
58
+ - [🌐 智能联网搜索](#-智能联网搜索)
59
+ - [思维链 (CoT)](#思维链-cot)
60
+ - [分支对话](#分支对话)
61
+ - [支持白板 (Artifacts)](#支持白板-artifacts)
62
+ - [文件上传 / 知识库](#文件上传--知识库)
63
+ - [多模型服务商支持](#多模型服务商支持)
64
+ - [支持本地大语言模型 (LLM)](#支持本地大语言模型-llm)
65
+ - [模型视觉识别 (Model Visual)](#模型视觉识别-model-visual)
66
+ - [TTS & STT 语音会话](#tts--stt-语音会话)
67
+ - [Text to Image 文生图](#text-to-image-文生图)
68
+ - [插件系统 (Tools Calling)](#插件系统-tools-calling)
69
+ - [助手市场 (GPTs)](#助手市场-gpts)
70
+ - [支持本地 / 远程数据库](#支持本地--远程数据库)
71
+ - [支持多用户管理](#支持多用户管理)
72
+ - [渐进式 Web 应用 (PWA)](#渐进式-web-应用-pwa)
73
+ - [移动设备适配](#移动设备适配)
74
+ - [自定义主题](#自定义主题)
71
75
  - [`*` 更多特性](#-更多特性)
72
76
  - [⚡️ 性能测试](#️-性能测试)
73
77
  - [🛳 开箱即用](#-开箱即用)
@@ -114,9 +118,59 @@
114
118
 
115
119
  ## ✨ 特性一览
116
120
 
121
+ 通过 LobeChat 的强大功能,体验为无缝连接、提升效率和无限创意而设计的全新 AI 体验。
122
+
123
+ ### ✨ MCP 插件一键安装
124
+
125
+ [![](https://github.com/user-attachments/assets/1be85d36-3975-4413-931f-27e05e440995)](https://lobehub.com/mcp)
126
+
127
+ **无缝连接你的 AI 与世界**
128
+
129
+ 通过启用与外部工具、数据源和服务的平滑、安全和动态交互,释放你的 AI 的全部潜力。基于 MCP(模型上下文协议)的插件系统打破了 AI 与数字生态系统之间的壁垒,实现了前所未有的连接性和功能性。
130
+
131
+ 将对话转化为强大的工作流程,连接数据库、API、文件系统等。体验真正理解并与你的世界互动的 AI Agent。
132
+
133
+ [![][back-to-top]](#readme-top)
134
+
135
+ ### 🏪 MCP 市场
136
+
137
+ ![][image-feat-mcp-market]
138
+
139
+ **发现、连接、扩展**
140
+
141
+ 浏览不断增长的 MCP 插件库,轻松扩展你的 AI 能力并简化工作流程。访问 [lobehub.com/mcp](https://lobehub.com/mcp) 探索 MCP 市场,提供精选的集成集合,增强你的 AI 与各种工具和服务协作的能力。
142
+
143
+ 从生产力工具到开发环境,发现扩展 AI 覆盖范围和效率的新方式。与社区连接,找到满足特定需求的完美插件。
144
+
145
+ [![][back-to-top]](#readme-top)
146
+
147
+ ### 🖥️ 桌面应用
148
+
149
+ ![][image-feat-desktop]
150
+
151
+ **巅峰性能,零干扰**
152
+
153
+ 获得完整的 LobeChat 体验,摆脱浏览器限制 —— 轻量级、专注且随时就绪。我们的桌面应用程序为你的 AI 交互提供专用环境,确保最佳性能和最小干扰。
154
+
155
+ 体验更快的响应时间、更好的资源管理和与 AI 助手的更稳定连接。桌面应用专为要求 AI 工具最佳性能的用户设计。
156
+
157
+ [![][back-to-top]](#readme-top)
158
+
159
+ ### 🌐 智能联网搜索
160
+
161
+ ![][image-feat-web-search]
162
+
163
+ **在线知识,按需获取**
164
+
165
+ 通过实时联网访问,你的 AI 与世界保持同步 —— 新闻、数据、趋势等。保持信息更新,获取最新可用信息,使你的 AI 能够提供准确和最新的回复。
166
+
167
+ 访问实时信息,验证事实,探索当前事件,无需离开对话。你的 AI 成为通向世界知识的门户,始终保持最新和全面。
168
+
169
+ [![][back-to-top]](#readme-top)
170
+
117
171
  [![][image-feat-cot]][docs-feat-cot]
118
172
 
119
- ### `1` [思维链 (CoT)][docs-feat-cot]
173
+ ### [思维链 (CoT)][docs-feat-cot]
120
174
 
121
175
  体验前所未有的 AI 推理过程。通过创新的思维链(CoT)可视化功能,您可以实时观察复杂问题是如何一步步被解析的。这项突破性的功能为 AI 的决策过程提供了前所未有的透明度,让您能够清晰地了解结论是如何得出的。
122
176
 
@@ -126,7 +180,7 @@
126
180
 
127
181
  [![][image-feat-branch]][docs-feat-branch]
128
182
 
129
- ### `2` [分支对话][docs-feat-branch]
183
+ ### [分支对话][docs-feat-branch]
130
184
 
131
185
  为您带来更自然、更灵活的 AI 对话方式。通过分支对话功能,您的讨论可以像人类对话一样自然延伸。在任意消息处创建新的对话分支,让您在保留原有上下文的同时,自由探索不同的对话方向。
132
186
 
@@ -141,7 +195,7 @@
141
195
 
142
196
  [![][image-feat-artifacts]][docs-feat-artifacts]
143
197
 
144
- ### `3` [支持白板 (Artifacts)][docs-feat-artifacts]
198
+ ### [支持白板 (Artifacts)][docs-feat-artifacts]
145
199
 
146
200
  体验集成于 LobeChat 的 Claude Artifacts 能力。这项革命性功能突破了 AI 人机交互的边界,让您能够实时创建和可视化各种格式的内容。
147
201
 
@@ -155,7 +209,7 @@
155
209
 
156
210
  [![][image-feat-knowledgebase]][docs-feat-knowledgebase]
157
211
 
158
- ### `4` [文件上传 / 知识库][docs-feat-knowledgebase]
212
+ ### [文件上传 / 知识库][docs-feat-knowledgebase]
159
213
 
160
214
  LobeChat 支持文件上传与知识库功能,你可以上传文件、图片、音频、视频等多种类型的文件,以及创建知识库,方便用户管理和查找文件。同时在对话中使用文件和知识库功能,实现更加丰富的对话体验。
161
215
 
@@ -173,7 +227,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
173
227
 
174
228
  [![][image-feat-privoder]][docs-feat-provider]
175
229
 
176
- ### `5` [多模型服务商支持][docs-feat-provider]
230
+ ### [多模型服务商支持][docs-feat-provider]
177
231
 
178
232
  在 LobeChat 的不断发展过程中,我们深刻理解到在提供 AI 会话服务时模型服务商的多样性对于满足社区需求的重要性。因此,我们不再局限于单一的模型服务商,而是拓展了对多种模型服务商的支持,以便为用户提供更为丰富和多样化的会话选择。
179
233
 
@@ -246,7 +300,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
246
300
 
247
301
  [![][image-feat-local]][docs-feat-local]
248
302
 
249
- ### `6` [支持本地大语言模型 (LLM)][docs-feat-local]
303
+ ### [支持本地大语言模型 (LLM)][docs-feat-local]
250
304
 
251
305
  为了满足特定用户的需求,LobeChat 还基于 [Ollama](https://ollama.ai) 支持了本地模型的使用,让用户能够更灵活地使用自己的或第三方的模型。
252
306
 
@@ -262,7 +316,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
262
316
 
263
317
  [![][image-feat-vision]][docs-feat-vision]
264
318
 
265
- ### `7` [模型视觉识别 (Model Visual)][docs-feat-vision]
319
+ ### [模型视觉识别 (Model Visual)][docs-feat-vision]
266
320
 
267
321
  LobeChat 已经支持 OpenAI 最新的 [`gpt-4-vision`](https://platform.openai.com/docs/guides/vision) 支持视觉识别的模型,这是一个具备视觉识别能力的多模态应用。
268
322
  用户可以轻松上传图片或者拖拽图片到对话框中,助手将能够识别图片内容,并在此基础上进行智能对话,构建更智能、更多元化的聊天场景。
@@ -277,7 +331,7 @@ LobeChat 已经支持 OpenAI 最新的 [`gpt-4-vision`](https://platform.openai.
277
331
 
278
332
  [![][image-feat-tts]][docs-feat-tts]
279
333
 
280
- ### `8` [TTS & STT 语音会话][docs-feat-tts]
334
+ ### [TTS & STT 语音会话][docs-feat-tts]
281
335
 
282
336
  LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Speech-to-Text,STT)技术,这使得我们的应用能够将文本信息转化为清晰的语音输出,用户可以像与真人交谈一样与我们的对话助手进行交流。
283
337
  用户可以从多种声音中选择,给助手搭配合适的音源。 同时,对于那些倾向于听觉学习或者想要在忙碌中获取信息的用户来说,TTS 提供了一个极佳的解决方案。
@@ -292,7 +346,7 @@ LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Spe
292
346
 
293
347
  [![][image-feat-t2i]][docs-feat-t2i]
294
348
 
295
- ### `9` [Text to Image 文生图][docs-feat-t2i]
349
+ ### [Text to Image 文生图][docs-feat-t2i]
296
350
 
297
351
  支持最新的文本到图片生成技术,LobeChat 现在能够让用户在与助手对话中直接调用文生图工具进行创作。
298
352
  通过利用 [`DALL-E 3`](https://openai.com/dall-e-3)、[`MidJourney`](https://www.midjourney.com/) 和 [`Pollinations`](https://pollinations.ai/) 等 AI 工具的能力, 助手们现在可以将你的想法转化为图像。
@@ -306,7 +360,7 @@ LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Spe
306
360
 
307
361
  [![][image-feat-plugin]][docs-feat-plugin]
308
362
 
309
- ### `10` [插件系统 (Tools Calling)][docs-feat-plugin]
363
+ ### [插件系统 (Tools Calling)][docs-feat-plugin]
310
364
 
311
365
  LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地增强了 ChatGPT 的实用性和灵活性。
312
366
 
@@ -339,7 +393,7 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
339
393
 
340
394
  [![][image-feat-agent]][docs-feat-agent]
341
395
 
342
- ### `11` [助手市场 (GPTs)][docs-feat-agent]
396
+ ### [助手市场 (GPTs)][docs-feat-agent]
343
397
 
344
398
  在 LobeChat 的助手市场中,创作者们可以发现一个充满活力和创新的社区,它汇聚了众多精心设计的助手,这些助手不仅在工作场景中发挥着重要作用,也在学习过程中提供了极大的便利。
345
399
  我们的市场不仅是一个展示平台,更是一个协作的空间。在这里,每个人都可以贡献自己的智慧,分享个人开发的助手。
@@ -374,7 +428,7 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
374
428
 
375
429
  [![][image-feat-database]][docs-feat-database]
376
430
 
377
- ### `12` [支持本地 / 远程数据库][docs-feat-database]
431
+ ### [支持本地 / 远程数据库][docs-feat-database]
378
432
 
379
433
  LobeChat 支持同时使用服务端数据库和本地数据库。根据您的需求,您可以选择合适的部署方案:
380
434
 
@@ -391,7 +445,7 @@ LobeChat 支持同时使用服务端数据库和本地数据库。根据您的
391
445
 
392
446
  [![][image-feat-auth]][docs-feat-auth]
393
447
 
394
- ### `13` [支持多用户管理][docs-feat-auth]
448
+ ### [支持多用户管理][docs-feat-auth]
395
449
 
396
450
  LobeChat 支持多用户管理,提供了两种主要的用户认证和管理方案,以满足不同需求:
397
451
 
@@ -409,7 +463,7 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
409
463
 
410
464
  [![][image-feat-pwa]][docs-feat-pwa]
411
465
 
412
- ### `14` [渐进式 Web 应用 (PWA)][docs-feat-pwa]
466
+ ### [渐进式 Web 应用 (PWA)][docs-feat-pwa]
413
467
 
414
468
  我们深知在当今多设备环境下为用户提供无缝体验的重要性。为此,我们采用了渐进式 Web 应用 [PWA](https://support.google.com/chrome/answer/9658361) 技术,
415
469
  这是一种能够将网页应用提升至接近原生应用体验的现代 Web 技术。通过 PWA,LobeChat 能够在桌面和移动设备上提供高度优化的用户体验,同时保持轻量级和高性能的特点。
@@ -422,7 +476,6 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
422
476
  > - 在电脑上运行 Chrome 或 Edge 浏览器 .
423
477
  > - 访问 LobeChat 网页 .
424
478
  > - 在地址栏的右上角,单击 <kbd>安装</kbd> 图标 .
425
- > - 根据屏幕上的指示完成 PWA 的安装 .
426
479
 
427
480
  <div align="right">
428
481
 
@@ -432,7 +485,7 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
432
485
 
433
486
  [![][image-feat-mobile]][docs-feat-mobile]
434
487
 
435
- ### `15` [移动设备适配][docs-feat-mobile]
488
+ ### [移动设备适配][docs-feat-mobile]
436
489
 
437
490
  针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。
438
491
 
@@ -444,7 +497,7 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
444
497
 
445
498
  [![][image-feat-theme]][docs-feat-theme]
446
499
 
447
- ### `16` [自定义主题][docs-feat-theme]
500
+ ### [自定义主题][docs-feat-theme]
448
501
 
449
502
  作为设计工程师出身,LobeChat 在界面设计上充分考虑用户的个性化体验,因此引入了灵活多变的主题模式,其中包括日间的亮色模式和夜间的深色模式。
450
503
  除了主题模式的切换,还提供了一系列的颜色定制选项,允许用户根据自己的喜好来调整应用的主题色彩。无论是想要沉稳的深蓝,还是希望活泼的桃粉,或者是专业的灰白,用户都能够在 LobeChat 中找到匹配自己风格的颜色选择。
@@ -531,7 +584,7 @@ LobeChat 提供了 Vercel 的 自托管版本 和 [Docker 镜像][docker-release
531
584
 
532
585
  #### 保持更新
533
586
 
534
- 如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 “有可用更新”。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。
587
+ 如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 "有可用更新"。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。
535
588
 
536
589
  > \[!TIP]
537
590
  >
@@ -880,8 +933,10 @@ This project is [Apache 2.0](./LICENSE) licensed.
880
933
  [image-feat-branch]: https://github.com/user-attachments/assets/92f72082-02bd-4835-9c54-b089aad7fd41
881
934
  [image-feat-cot]: https://github.com/user-attachments/assets/f74f1139-d115-4e9c-8c43-040a53797a5e
882
935
  [image-feat-database]: https://github.com/user-attachments/assets/f1697c8b-d1fb-4dac-ba05-153c6295d91d
936
+ [image-feat-desktop]: https://github.com/user-attachments/assets/a7bac8d3-ea96-4000-bb39-fadc9b610f96
883
937
  [image-feat-knowledgebase]: https://github.com/user-attachments/assets/7da7a3b2-92fd-4630-9f4e-8560c74955ae
884
938
  [image-feat-local]: https://github.com/user-attachments/assets/1239da50-d832-4632-a7ef-bd754c0f3850
939
+ [image-feat-mcp-market]: https://github.com/user-attachments/assets/bb114f9f-24c5-4000-a984-c10d187da5a0
885
940
  [image-feat-mobile]: https://github.com/user-attachments/assets/32cf43c4-96bd-4a4c-bfb6-59acde6fe380
886
941
  [image-feat-plugin]: https://github.com/user-attachments/assets/66a891ac-01b6-4e3f-b978-2eb07b489b1b
887
942
  [image-feat-privoder]: https://github.com/user-attachments/assets/e553e407-42de-4919-977d-7dbfcf44a821
@@ -890,6 +945,7 @@ This project is [Apache 2.0](./LICENSE) licensed.
890
945
  [image-feat-theme]: https://github.com/user-attachments/assets/b47c39f1-806f-492b-8fcb-b0fa973937c1
891
946
  [image-feat-tts]: https://github.com/user-attachments/assets/50189597-2cc3-4002-b4c8-756a52ad5c0a
892
947
  [image-feat-vision]: https://github.com/user-attachments/assets/18574a1f-46c2-4cbc-af2c-35a86e128a07
948
+ [image-feat-web-search]: https://github.com/user-attachments/assets/cfdc48ac-b5f8-4a00-acee-db8f2eba09ad
893
949
  [image-overview]: https://github.com/user-attachments/assets/dbfaa84a-2c82-4dd9-815c-5be616f264a4
894
950
  [image-star]: https://github.com/user-attachments/assets/c3b482e7-cef5-4e94-bef9-226900ecfaab
895
951
  [issues-link]: https://img.shields.io/github/issues/lobehub/lobe-chat.svg?style=flat
@@ -48,7 +48,7 @@
48
48
  "@typescript/native-preview": "latest",
49
49
  "consola": "^3.1.0",
50
50
  "cookie": "^1.0.2",
51
- "electron": "^36.2.0",
51
+ "electron": "^37.2.0",
52
52
  "electron-builder": "^26.0.12",
53
53
  "electron-is": "^3.0.0",
54
54
  "electron-log": "^5.3.3",
@@ -152,7 +152,8 @@ export default class Browser {
152
152
 
153
153
  show() {
154
154
  logger.debug(`Showing window: ${this.identifier}`);
155
- this.determineWindowPosition();
155
+ if (!this._browserWindow.isDestroyed()) this.determineWindowPosition();
156
+
156
157
  this.browserWindow.show();
157
158
  }
158
159
 
@@ -58,7 +58,7 @@ export const createRequest = async ({
58
58
 
59
59
  for (const cookie of cookies) {
60
60
  const { name, value } = cookie;
61
- cookiesHeader.push(serializeCookie(name, value)); // ...(options as any)?
61
+ cookiesHeader.push(serializeCookie(name, value));
62
62
  }
63
63
 
64
64
  req.headers.cookie = cookiesHeader.join('; ');
@@ -305,20 +305,27 @@ export function createHandler({
305
305
  );
306
306
 
307
307
  for (const cookie of cookies) {
308
- const expires = cookie.expires
309
- ? cookie.expires.getTime()
310
- : cookie.maxAge
311
- ? Date.now() + cookie.maxAge * 1000
312
- : undefined;
308
+ let expirationDate: number | undefined;
309
+
310
+ if (cookie.expires) {
311
+ // expires Date 对象,转换为秒级时间戳
312
+ expirationDate = Math.floor(cookie.expires.getTime() / 1000);
313
+ } else if (cookie.maxAge) {
314
+ // maxAge 是秒数,计算过期时间戳
315
+ expirationDate = Math.floor(Date.now() / 1000) + cookie.maxAge;
316
+ }
317
+
318
+ // 如果都没有,则为 session cookie,不设置 expirationDate
313
319
 
314
- if (expires && expires < Date.now()) {
320
+ // 检查是否已过期
321
+ if (expirationDate && expirationDate < Math.floor(Date.now() / 1000)) {
315
322
  await session.cookies.remove(request.url, cookie.name);
316
323
  continue;
317
324
  }
318
325
 
319
326
  await session.cookies.set({
320
327
  domain: cookie.domain,
321
- expirationDate: expires,
328
+ expirationDate,
322
329
  httpOnly: cookie.httpOnly,
323
330
  name: cookie.name,
324
331
  path: cookie.path,