@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.
- package/CHANGELOG.md +50 -0
- package/README.md +90 -32
- package/README.zh-CN.md +90 -34
- package/apps/desktop/package.json +1 -1
- package/apps/desktop/src/main/core/Browser.ts +2 -1
- package/apps/desktop/src/main/utils/next-electron-rsc.ts +15 -8
- package/changelog/v1.json +18 -0
- package/docs/usage/features/desktop.mdx +53 -0
- package/docs/usage/features/desktop.zh-CN.mdx +49 -0
- package/docs/usage/features/mcp-market.mdx +26 -0
- package/docs/usage/features/mcp-market.zh-CN.mdx +22 -0
- package/docs/usage/features/mcp.mdx +58 -0
- package/docs/usage/features/mcp.zh-CN.mdx +54 -0
- package/docs/usage/features/search.mdx +56 -0
- package/docs/usage/features/search.zh-CN.mdx +52 -0
- package/locales/ar/discover.json +452 -12
- package/locales/ar/metadata.json +4 -0
- package/locales/ar/plugin.json +89 -2
- package/locales/ar/setting.json +1 -0
- package/locales/bg-BG/discover.json +452 -12
- package/locales/bg-BG/metadata.json +4 -0
- package/locales/bg-BG/plugin.json +89 -2
- package/locales/bg-BG/setting.json +1 -0
- package/locales/de-DE/discover.json +452 -12
- package/locales/de-DE/metadata.json +4 -0
- package/locales/de-DE/plugin.json +89 -2
- package/locales/de-DE/setting.json +1 -0
- package/locales/en-US/discover.json +452 -12
- package/locales/en-US/metadata.json +4 -0
- package/locales/en-US/plugin.json +89 -2
- package/locales/en-US/setting.json +1 -0
- package/locales/es-ES/discover.json +452 -12
- package/locales/es-ES/metadata.json +4 -0
- package/locales/es-ES/plugin.json +89 -2
- package/locales/es-ES/setting.json +1 -0
- package/locales/fa-IR/discover.json +452 -12
- package/locales/fa-IR/metadata.json +4 -0
- package/locales/fa-IR/plugin.json +89 -2
- package/locales/fa-IR/setting.json +1 -0
- package/locales/fr-FR/discover.json +452 -12
- package/locales/fr-FR/metadata.json +4 -0
- package/locales/fr-FR/plugin.json +89 -2
- package/locales/fr-FR/setting.json +1 -0
- package/locales/it-IT/discover.json +452 -12
- package/locales/it-IT/metadata.json +4 -0
- package/locales/it-IT/plugin.json +89 -2
- package/locales/it-IT/setting.json +1 -0
- package/locales/ja-JP/discover.json +452 -12
- package/locales/ja-JP/metadata.json +4 -0
- package/locales/ja-JP/plugin.json +89 -2
- package/locales/ja-JP/setting.json +1 -0
- package/locales/ko-KR/discover.json +452 -12
- package/locales/ko-KR/metadata.json +4 -0
- package/locales/ko-KR/plugin.json +89 -2
- package/locales/ko-KR/setting.json +1 -0
- package/locales/nl-NL/discover.json +452 -12
- package/locales/nl-NL/metadata.json +4 -0
- package/locales/nl-NL/plugin.json +89 -2
- package/locales/nl-NL/setting.json +1 -0
- package/locales/pl-PL/discover.json +452 -12
- package/locales/pl-PL/metadata.json +4 -0
- package/locales/pl-PL/plugin.json +89 -2
- package/locales/pl-PL/setting.json +1 -0
- package/locales/pt-BR/discover.json +452 -12
- package/locales/pt-BR/metadata.json +4 -0
- package/locales/pt-BR/plugin.json +89 -2
- package/locales/pt-BR/setting.json +1 -0
- package/locales/ru-RU/discover.json +452 -12
- package/locales/ru-RU/metadata.json +4 -0
- package/locales/ru-RU/plugin.json +89 -2
- package/locales/ru-RU/setting.json +1 -0
- package/locales/tr-TR/discover.json +452 -12
- package/locales/tr-TR/metadata.json +4 -0
- package/locales/tr-TR/plugin.json +89 -2
- package/locales/tr-TR/setting.json +1 -0
- package/locales/vi-VN/discover.json +452 -12
- package/locales/vi-VN/metadata.json +4 -0
- package/locales/vi-VN/plugin.json +89 -2
- package/locales/vi-VN/setting.json +1 -0
- package/locales/zh-CN/discover.json +452 -12
- package/locales/zh-CN/metadata.json +8 -4
- package/locales/zh-CN/plugin.json +89 -2
- package/locales/zh-CN/setting.json +1 -0
- package/locales/zh-TW/discover.json +452 -12
- package/locales/zh-TW/metadata.json +4 -0
- package/locales/zh-TW/plugin.json +89 -2
- package/locales/zh-TW/setting.json +1 -0
- package/next.config.ts +70 -19
- package/package.json +7 -3
- package/scripts/buildSitemapIndex/index.ts +9 -4
- package/src/app/(backend)/trpc/async/[trpc]/route.ts +4 -2
- package/src/app/(backend)/trpc/lambda/[trpc]/route.ts +5 -0
- package/src/app/[variants]/(main)/_layout/Mobile/index.tsx +5 -4
- package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/InboxWelcome/AgentsSuggest.tsx +31 -45
- package/src/app/[variants]/(main)/discover/(detail)/_layout/Desktop.tsx +8 -6
- package/src/app/[variants]/(main)/discover/(detail)/_layout/Mobile/Header.tsx +3 -2
- package/src/app/[variants]/(main)/discover/(detail)/_layout/Mobile/index.tsx +5 -1
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/Client.tsx +40 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/DetailProvider.tsx +19 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Block.tsx +27 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Knowledge.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/KnowledgeItem.tsx +58 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/PluginItem.tsx +68 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Plugins.tsx +32 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/index.tsx +37 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Nav.tsx +121 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/TagList.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/index.tsx +96 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Related/index.tsx +31 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/TagList.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/index.tsx +54 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/index.tsx +49 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Header.tsx +176 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/{[slug]/features → [...slugs]/features/Sidebar/ActionButton}/AddAgent.tsx +22 -21
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/ActionButton/index.tsx +31 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Related/Item.tsx +57 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Related/index.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Summary/index.tsx +38 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/TocList/index.tsx +77 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/index.tsx +46 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/loading.tsx +48 -0
- package/src/app/[variants]/(main)/discover/(detail)/{plugin/[slug] → assistant/[...slugs]}/page.tsx +39 -42
- package/src/app/[variants]/(main)/discover/(detail)/features/Breadcrumb.tsx +56 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/DetailLayout.tsx +0 -1
- package/src/app/[variants]/(main)/discover/(detail)/features/MakedownRender.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/ShareButton.tsx +4 -3
- package/src/app/[variants]/(main)/discover/(detail)/features/Toc/Heading.tsx +108 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/Toc/index.tsx +92 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/Toc/useToc.tsx +66 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/Client.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/Related/index.tsx +32 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/Versions/index.tsx +76 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/index.tsx +59 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ActionButton/index.tsx +84 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ConnectionTypeAlert.tsx +35 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/Related/Item.tsx +57 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/Related/index.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ServerConfig.tsx +36 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/TocList/index.tsx +98 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/index.tsx +58 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/page.tsx +103 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/Client.tsx +40 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/DetailProvider.tsx +19 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Nav.tsx +90 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Overview/ProviderList/index.tsx +179 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Overview/index.tsx +22 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/{ParameterList → Details/Parameter}/ParameterItem.tsx +1 -1
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/{ParameterList → Details/Parameter}/index.tsx +11 -11
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Related/index.tsx +31 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/index.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Header.tsx +84 -59
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/ActionButton/ChatWithModel.tsx +92 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/ActionButton/index.tsx +32 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/Related/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/Related/index.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/RelatedProviders/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/RelatedProviders/index.tsx +34 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/index.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/page.tsx +22 -45
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/Client.tsx +40 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/DetailProvider.tsx +19 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Guide/index.tsx +25 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Nav.tsx +99 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Overview/ModelList/index.tsx +142 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Overview/index.tsx +23 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Related/index.tsx +22 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/index.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Header.tsx +99 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/{[slug]/features → [...slugs]/features/Sidebar/ActionButton}/ProviderConfig.tsx +9 -14
- package/src/app/[variants]/(main)/discover/(detail)/provider/{[slug]/features/Actions.tsx → [...slugs]/features/Sidebar/ActionButton/index.tsx} +14 -18
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/Related/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/Related/index.tsx +34 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/RelatedModels/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/RelatedModels/index.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/index.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/page.tsx +103 -0
- package/src/app/[variants]/(main)/discover/(list)/(home)/Client.tsx +24 -21
- package/src/app/[variants]/(main)/discover/(list)/(home)/loading.tsx +1 -1
- package/src/app/[variants]/(main)/discover/(list)/(home)/page.tsx +13 -38
- package/src/app/[variants]/(main)/discover/(list)/_layout/Desktop/Nav.tsx +15 -8
- package/src/app/[variants]/(main)/discover/(list)/_layout/Mobile/Header.tsx +1 -1
- package/src/app/[variants]/(main)/discover/(list)/_layout/Mobile/Nav.tsx +2 -1
- package/src/app/[variants]/(main)/discover/(list)/assistant/Client.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/Category/index.tsx +84 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/Category/useCategory.tsx +112 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/Item.tsx +189 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/TokenTag.tsx +70 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/page.tsx +46 -0
- package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +67 -0
- package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +184 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/Client.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/Category/index.tsx +83 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/ConnectionTypeTag.tsx +51 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +225 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/MetaInfo.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/page.tsx +46 -0
- package/src/app/[variants]/(main)/discover/(list)/model/Client.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/{models → model}/_layout/Desktop.tsx +1 -7
- package/src/app/[variants]/(main)/discover/(list)/model/features/Category/index.tsx +82 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/Category/useCategory.tsx +41 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +190 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/List/ModelTypeIcon.tsx +39 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/model/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(list)/model/page.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/Client.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +136 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/page.tsx +44 -0
- package/src/app/[variants]/(main)/discover/_layout/Desktop/Header.tsx +1 -1
- package/src/app/[variants]/(main)/discover/components/CategoryContainer.tsx +7 -5
- package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +28 -30
- package/src/app/[variants]/(main)/discover/components/ListLoading.tsx +56 -46
- package/src/app/[variants]/(main)/discover/components/Statistic.tsx +5 -6
- package/src/app/[variants]/(main)/discover/features/Search.tsx +62 -0
- package/src/app/[variants]/(main)/discover/features/Title.tsx +83 -0
- package/src/app/[variants]/(main)/discover/features/__tests__/calculateScore.test.ts +185 -0
- package/src/app/[variants]/(main)/discover/features/useNav.tsx +32 -12
- package/src/app/robots.tsx +7 -5
- package/src/app/sitemap.tsx +81 -13
- package/src/components/CopyableLabel/index.tsx +37 -0
- package/src/components/Descriptions/index.tsx +119 -0
- package/src/components/InlineTable/index.tsx +69 -0
- package/src/{features/PluginSettings/PluginSettingRender.tsx → components/JSONSchemaConfig/ItemRender.tsx} +3 -3
- package/src/components/MCPDepsIcon/Java.tsx +23 -0
- package/src/components/MCPDepsIcon/PowerShell.tsx +23 -0
- package/src/components/MCPDepsIcon/Terminal.tsx +23 -0
- package/src/components/MCPDepsIcon/UV.tsx +23 -0
- package/src/components/MCPDepsIcon/index.tsx +72 -0
- package/src/components/MCPStdioCommandInput/index.tsx +47 -0
- package/src/components/OfficialIcon.tsx +23 -0
- package/src/components/Plugins/MCPTag.tsx +18 -0
- package/src/components/Plugins/PluginTag.tsx +50 -0
- package/src/components/PublishedTime.tsx +71 -0
- package/src/config/__tests__/app.test.ts +6 -2
- package/src/const/discover.ts +8 -34
- package/src/database/models/message.ts +1 -0
- package/src/database/models/plugin.ts +13 -3
- package/src/database/schemas/relations.ts +44 -0
- package/src/envs/app.ts +1 -1
- package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
- package/src/features/ChatInput/ActionBar/Tools/ToolItem.tsx +1 -1
- package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +5 -5
- package/src/features/Conversation/Messages/Assistant/Tool/Inspector/index.tsx +25 -11
- package/src/features/MCP/MCPInstallProgress/InstallError/ErrorDetails.tsx +110 -0
- package/src/features/MCP/MCPInstallProgress/InstallError/index.tsx +51 -0
- package/src/features/MCP/MCPInstallProgress/MCPConfigForm.tsx +151 -0
- package/src/features/MCP/MCPInstallProgress/MCPDependenciesGuide.tsx +217 -0
- package/src/features/MCP/MCPInstallProgress/index.tsx +118 -0
- package/src/features/MCP/Scores.tsx +268 -0
- package/src/features/MCP/calculateScore.ts +324 -0
- package/src/features/MCP/useScoreList.ts +126 -0
- package/src/features/MCP/utils.ts +225 -0
- package/src/features/MCPPluginDetail/CollapseDesc.tsx +44 -0
- package/src/features/MCPPluginDetail/CollapseLayout.tsx +34 -0
- package/src/features/MCPPluginDetail/Deployment/Platform/index.tsx +47 -0
- package/src/features/MCPPluginDetail/Deployment/index.tsx +322 -0
- package/src/features/MCPPluginDetail/DetailProvider.tsx +19 -0
- package/src/features/MCPPluginDetail/Header.tsx +218 -0
- package/src/features/MCPPluginDetail/Nav.tsx +196 -0
- package/src/features/MCPPluginDetail/Overview/TagList.tsx +47 -0
- package/src/features/MCPPluginDetail/Overview/index.tsx +57 -0
- package/src/features/MCPPluginDetail/Schema/Block.tsx +50 -0
- package/src/features/MCPPluginDetail/Schema/Prompts.tsx +125 -0
- package/src/features/MCPPluginDetail/Schema/Resources.tsx +70 -0
- package/src/features/MCPPluginDetail/Schema/Tools.tsx +146 -0
- package/src/features/MCPPluginDetail/Schema/index.tsx +63 -0
- package/src/features/MCPPluginDetail/Schema/style.ts +9 -0
- package/src/features/MCPPluginDetail/Schema/types.ts +4 -0
- package/src/features/MCPPluginDetail/Score/GithubBadge/index.tsx +82 -0
- package/src/features/MCPPluginDetail/Score/ScoreItem.tsx +34 -0
- package/src/features/MCPPluginDetail/Score/ScoreList.tsx +24 -0
- package/src/features/MCPPluginDetail/Score/TotalScore.tsx +289 -0
- package/src/features/MCPPluginDetail/Score/index.tsx +88 -0
- package/src/features/PluginAvatar/index.tsx +1 -1
- package/src/features/PluginDetailModal/Meta.tsx +3 -4
- package/src/features/PluginDevModal/MCPManifestForm/MCPTypeSelect.tsx +3 -4
- package/src/features/PluginDevModal/MCPManifestForm/index.tsx +4 -41
- package/src/features/PluginDevModal/PluginPreview/EmptyState.tsx +5 -7
- package/src/features/PluginDevModal/PluginPreview/index.tsx +6 -6
- package/src/features/PluginSettings/index.tsx +2 -2
- package/src/features/PluginStore/AddPluginButton.tsx +1 -1
- package/src/features/PluginStore/Content.tsx +59 -0
- package/src/features/PluginStore/InstalledList/Detail/CustomPluginEmptyState.tsx +81 -0
- package/src/features/PluginStore/InstalledList/Detail/index.tsx +21 -0
- package/src/features/PluginStore/InstalledList/EditCustomPlugin.tsx +52 -0
- package/src/features/PluginStore/{PluginItem → InstalledList/List/Item}/Action.tsx +33 -13
- package/src/features/PluginStore/InstalledList/List/Item/index.tsx +62 -0
- package/src/features/PluginStore/InstalledList/List/index.tsx +77 -0
- package/src/features/PluginStore/InstalledList/index.tsx +85 -0
- package/src/features/PluginStore/Loading.tsx +2 -2
- package/src/features/PluginStore/McpList/Detail/Loading.tsx +44 -0
- package/src/features/PluginStore/McpList/Detail/Settings/index.tsx +381 -0
- package/src/features/PluginStore/McpList/Detail/index.tsx +71 -0
- package/src/features/PluginStore/McpList/List/Action.tsx +94 -0
- package/src/features/PluginStore/McpList/List/Item.tsx +84 -0
- package/src/features/PluginStore/McpList/List/index.tsx +97 -0
- package/src/features/PluginStore/McpList/index.tsx +54 -0
- package/src/features/PluginStore/PluginList/Detail/DetailProvider.tsx +19 -0
- package/src/features/PluginStore/PluginList/Detail/EmptyState.tsx +58 -0
- package/src/features/PluginStore/PluginList/Detail/Header.tsx +132 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/Nav.tsx +75 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/Settings.tsx +19 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/Tools.tsx +109 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/index.tsx +24 -0
- package/src/features/PluginStore/PluginList/Detail/Loading.tsx +44 -0
- package/src/features/PluginStore/PluginList/Detail/TagList.tsx +37 -0
- package/src/features/PluginStore/PluginList/Detail/index.tsx +39 -0
- package/src/features/PluginStore/PluginList/Detail/useCategory.tsx +76 -0
- package/src/features/PluginStore/PluginList/List/Action.tsx +72 -0
- package/src/features/PluginStore/PluginList/List/Item.tsx +94 -0
- package/src/features/PluginStore/PluginList/List/index.tsx +91 -0
- package/src/features/PluginStore/PluginList/index.tsx +47 -0
- package/src/features/PluginStore/Search/index.tsx +29 -0
- package/src/features/PluginStore/VirtuosoLoading.tsx +16 -0
- package/src/features/PluginStore/index.tsx +7 -31
- package/src/features/PluginTag/index.tsx +6 -4
- package/src/hooks/useInterceptingRoutes.test.ts +6 -0
- package/src/hooks/useMCPCategory.tsx +133 -0
- package/src/hooks/useQuery.ts +8 -0
- package/src/hooks/useQueryRoute.test.ts +7 -0
- package/src/hooks/useQueryRoute.ts +5 -3
- package/src/layout/GlobalProvider/Locale.tsx +2 -1
- package/src/libs/mcp/client.ts +255 -11
- package/src/libs/mcp/types.ts +99 -0
- package/src/libs/trpc/client/desktop.ts +2 -3
- package/src/libs/trpc/lambda/context.ts +36 -5
- package/src/libs/trpc/lambda/index.ts +1 -1
- package/src/libs/trpc/lambda/init.ts +8 -1
- package/src/locales/create.ts +8 -3
- package/src/locales/default/discover.ts +457 -12
- package/src/locales/default/metadata.ts +9 -4
- package/src/locales/default/plugin.ts +89 -1
- package/src/locales/default/setting.ts +1 -0
- package/src/locales/resources.ts +1 -1
- package/src/middleware.ts +13 -3
- package/src/server/ld.ts +4 -3
- package/src/server/modules/AssistantStore/index.test.ts +10 -8
- package/src/server/modules/AssistantStore/index.ts +37 -17
- package/src/server/modules/PluginStore/index.test.ts +1 -1
- package/src/server/modules/PluginStore/index.ts +24 -1
- package/src/server/routers/async/caller.ts +2 -2
- package/src/server/routers/desktop/mcp.ts +36 -2
- package/src/server/routers/edge/index.ts +0 -6
- package/src/server/routers/{edge → lambda}/config/index.ts +1 -1
- package/src/server/routers/lambda/index.ts +4 -0
- package/src/server/routers/lambda/market/index.ts +621 -0
- package/src/server/routers/lambda/plugin.ts +2 -0
- package/src/server/routers/tools/mcp.ts +22 -0
- package/src/server/services/discover/index.test.ts +573 -250
- package/src/server/services/discover/index.ts +1096 -241
- package/src/server/services/mcp/deps/MCPSystemDepsCheckService.ts +238 -0
- package/src/server/services/mcp/deps/checkers/ManualInstallationChecker.ts +20 -0
- package/src/server/services/mcp/deps/checkers/NpmInstallationChecker.ts +51 -0
- package/src/server/services/mcp/deps/checkers/PythonInstallationChecker.ts +69 -0
- package/src/server/services/mcp/deps/index.ts +14 -0
- package/src/server/services/mcp/deps/types.ts +49 -0
- package/src/server/services/mcp/index.ts +251 -33
- package/src/server/sitemap.test.ts +203 -46
- package/src/server/sitemap.ts +159 -52
- package/src/services/__tests__/global.test.ts +4 -7
- package/src/services/__tests__/tool.test.ts +1 -29
- package/src/services/discover.ts +365 -0
- package/src/services/global.ts +3 -3
- package/src/services/mcp.ts +131 -10
- package/src/services/plugin/_deprecated.ts +1 -1
- package/src/services/plugin/type.ts +3 -1
- package/src/services/tool.ts +9 -6
- package/src/store/chat/slices/plugin/action.test.ts +2 -3
- package/src/store/chat/slices/plugin/action.ts +22 -4
- package/src/store/discover/index.ts +1 -0
- package/src/store/discover/slices/assistant/action.ts +73 -0
- package/src/store/discover/slices/assistant/index.ts +1 -0
- package/src/store/discover/slices/mcp/action.ts +70 -0
- package/src/store/discover/slices/mcp/index.ts +1 -0
- package/src/store/discover/slices/model/action.ts +70 -0
- package/src/store/discover/slices/model/index.ts +1 -0
- package/src/store/discover/slices/plugin/action.ts +76 -0
- package/src/store/discover/slices/plugin/index.ts +1 -0
- package/src/store/discover/slices/provider/action.ts +61 -0
- package/src/store/discover/slices/provider/index.ts +1 -0
- package/src/store/discover/store.ts +39 -0
- package/src/store/tool/initialState.ts +8 -2
- package/src/store/tool/selectors/index.ts +2 -1
- package/src/store/tool/selectors/tool.test.ts +3 -1
- package/src/store/tool/selectors/tool.ts +14 -2
- package/src/store/tool/slices/mcpStore/action.ts +496 -0
- package/src/store/tool/slices/mcpStore/initialState.ts +40 -0
- package/src/store/tool/slices/mcpStore/selectors.ts +62 -0
- package/src/store/tool/slices/{store → oldStore}/action.test.ts +24 -19
- package/src/store/tool/slices/oldStore/action.ts +269 -0
- package/src/store/tool/slices/oldStore/index.ts +3 -0
- package/src/store/tool/slices/oldStore/initialState.ts +54 -0
- package/src/store/tool/slices/{store → oldStore}/selectors.test.ts +6 -3
- package/src/store/tool/slices/{store → oldStore}/selectors.ts +18 -5
- package/src/store/tool/slices/plugin/action.test.ts +2 -1
- package/src/store/tool/slices/plugin/action.ts +22 -4
- package/src/store/tool/slices/plugin/selectors.test.ts +12 -4
- package/src/store/tool/slices/plugin/selectors.ts +20 -9
- package/src/store/tool/store.ts +5 -2
- package/src/types/discover/assistants.ts +72 -0
- package/src/types/discover/index.ts +41 -0
- package/src/types/discover/mcp.ts +59 -0
- package/src/types/discover/models.ts +51 -0
- package/src/types/discover/plugins.ts +52 -0
- package/src/types/discover/providers.ts +47 -0
- package/src/types/message/tools.ts +3 -0
- package/src/types/plugins/index.ts +53 -0
- package/src/types/plugins/mcp.ts +188 -0
- package/src/types/plugins/mcpDeps.ts +30 -0
- package/src/types/tool/index.ts +10 -0
- package/src/types/tool/plugin.ts +3 -2
- package/src/types/tool/tool.ts +4 -1
- package/src/utils/client/cookie.ts +5 -2
- package/src/utils/locale.ts +3 -3
- package/src/utils/object.ts +10 -0
- package/src/utils/server/pageProps.ts +9 -0
- package/src/utils/toolCall.ts +5 -1
- package/src/utils/toolManifest.ts +1 -2
- package/vercel.json +1 -1
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Actions.tsx +0 -35
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/ConversationExample/TopicList.tsx +0 -75
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/ConversationExample/index.tsx +0 -105
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Header.tsx +0 -115
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -62
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/ToolItem.tsx +0 -19
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/index.tsx +0 -60
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/SystemRole.tsx +0 -35
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Temp.tsx +0 -44
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/page.tsx +0 -124
- package/src/app/[variants]/(main)/discover/(detail)/loading.tsx +0 -38
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Actions.tsx +0 -40
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ChatWithModel.tsx +0 -93
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/InfoSidebar/SuggestionItem.tsx +0 -74
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/InfoSidebar/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ProviderList/ProviderItem.tsx +0 -139
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ProviderList/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Actions.tsx +0 -35
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Header.tsx +0 -119
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -64
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InfoSidebar/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InstallPlugin.tsx +0 -83
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/ParameterList.tsx +0 -95
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Schema.tsx +0 -23
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/Header.tsx +0 -73
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -77
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/InfoSidebar/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/ModelList/ModelItem.tsx +0 -152
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/ModelList/index.tsx +0 -60
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/page.tsx +0 -126
- package/src/app/[variants]/(main)/discover/(list)/(home)/features/AssistantList.tsx +0 -33
- package/src/app/[variants]/(main)/discover/(list)/(home)/features/ModelList.tsx +0 -19
- package/src/app/[variants]/(main)/discover/(list)/(home)/features/PluginList.tsx +0 -25
- package/src/app/[variants]/(main)/discover/(list)/assistants/[slug]/page.tsx +0 -75
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/Card.tsx +0 -195
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/Category.tsx +0 -48
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/List.tsx +0 -98
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/useCategory.tsx +0 -116
- package/src/app/[variants]/(main)/discover/(list)/assistants/page.tsx +0 -64
- package/src/app/[variants]/(main)/discover/(list)/loading.tsx +0 -39
- package/src/app/[variants]/(main)/discover/(list)/models/[slug]/page.tsx +0 -78
- package/src/app/[variants]/(main)/discover/(list)/models/features/Card.tsx +0 -118
- package/src/app/[variants]/(main)/discover/(list)/models/features/Category.tsx +0 -67
- package/src/app/[variants]/(main)/discover/(list)/models/features/List.tsx +0 -71
- package/src/app/[variants]/(main)/discover/(list)/models/loading.tsx +0 -1
- package/src/app/[variants]/(main)/discover/(list)/models/page.tsx +0 -73
- package/src/app/[variants]/(main)/discover/(list)/plugins/[slug]/page.tsx +0 -75
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/Card.tsx +0 -161
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/Category.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/List.tsx +0 -97
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/useCategory.tsx +0 -80
- package/src/app/[variants]/(main)/discover/(list)/plugins/page.tsx +0 -64
- package/src/app/[variants]/(main)/discover/(list)/providers/features/Card.tsx +0 -119
- package/src/app/[variants]/(main)/discover/(list)/providers/features/List.tsx +0 -67
- package/src/app/[variants]/(main)/discover/(list)/providers/loading.tsx +0 -1
- package/src/app/[variants]/(main)/discover/(list)/providers/page.tsx +0 -64
- package/src/app/[variants]/(main)/discover/features/StoreSearchBar.tsx +0 -87
- package/src/app/[variants]/(main)/discover/loading.tsx +0 -3
- package/src/app/[variants]/(main)/discover/search/_layout/Desktop.tsx +0 -42
- package/src/app/[variants]/(main)/discover/search/_layout/Mobile/Header.tsx +0 -31
- package/src/app/[variants]/(main)/discover/search/_layout/Mobile/Nav.tsx +0 -56
- package/src/app/[variants]/(main)/discover/search/_layout/Mobile/index.tsx +0 -32
- package/src/app/[variants]/(main)/discover/search/features/AssistantsResult.tsx +0 -27
- package/src/app/[variants]/(main)/discover/search/features/Category.tsx +0 -41
- package/src/app/[variants]/(main)/discover/search/features/ModelsResult.tsx +0 -27
- package/src/app/[variants]/(main)/discover/search/features/PluginsResult.tsx +0 -27
- package/src/app/[variants]/(main)/discover/search/features/ProvidersResult.tsx +0 -26
- package/src/app/[variants]/(main)/discover/search/layout.tsx +0 -12
- package/src/app/[variants]/(main)/discover/search/loading.tsx +0 -1
- package/src/app/[variants]/(main)/discover/search/page.tsx +0 -82
- package/src/features/PluginStore/InstalledPluginList.tsx +0 -59
- package/src/features/PluginStore/OnlineList.tsx +0 -87
- package/src/features/PluginStore/PluginItem/EditCustomPlugin.tsx +0 -55
- package/src/features/PluginStore/PluginItem/PluginTag.tsx +0 -29
- package/src/features/PluginStore/PluginItem/index.tsx +0 -83
- package/src/server/routers/edge/market/index.ts +0 -108
- package/src/services/__tests__/assistant.test.ts +0 -87
- package/src/services/assistant.ts +0 -25
- package/src/store/tool/slices/store/action.ts +0 -113
- package/src/store/tool/slices/store/initialState.ts +0 -17
- package/src/types/discover.ts +0 -179
- package/src/types/requestCache.ts +0 -3
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/_layout/Desktop.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/_layout/Mobile.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/layout.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/loading.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/_layout/Desktop.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/_layout/Mobile.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/layout.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/loading.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{models → model}/_layout/Mobile.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{models → model}/features/const.ts +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{models → model}/layout.tsx +0 -0
- /package/src/{features/PluginStore/PluginItem → components/Plugins}/PluginAvatar.tsx +0 -0
- /package/src/server/routers/{edge → lambda}/config/__snapshots__/index.test.ts.snap +0 -0
- /package/src/server/routers/{edge → lambda}/config/index.test.ts +0 -0
- /package/src/store/tool/slices/{store → mcpStore}/index.ts +0 -0
@@ -1,3 +1,4 @@
|
|
1
|
+
import { parse } from 'cookie';
|
1
2
|
import debug from 'debug';
|
2
3
|
import { User } from 'next-auth';
|
3
4
|
import { NextRequest } from 'next/server';
|
@@ -23,9 +24,12 @@ export interface AuthContext {
|
|
23
24
|
authorizationHeader?: string | null;
|
24
25
|
clerkAuth?: IClerkAuth;
|
25
26
|
jwtPayload?: JWTPayload | null;
|
27
|
+
marketAccessToken?: string;
|
26
28
|
nextAuth?: User;
|
27
29
|
// Add OIDC authentication information
|
28
30
|
oidcAuth?: OIDCAuth | null;
|
31
|
+
resHeaders?: Headers;
|
32
|
+
userAgent?: string;
|
29
33
|
userId?: string | null;
|
30
34
|
}
|
31
35
|
|
@@ -36,16 +40,23 @@ export interface AuthContext {
|
|
36
40
|
export const createContextInner = async (params?: {
|
37
41
|
authorizationHeader?: string | null;
|
38
42
|
clerkAuth?: IClerkAuth;
|
43
|
+
marketAccessToken?: string;
|
39
44
|
nextAuth?: User;
|
40
45
|
oidcAuth?: OIDCAuth | null;
|
46
|
+
userAgent?: string;
|
41
47
|
userId?: string | null;
|
42
48
|
}): Promise<AuthContext> => {
|
43
49
|
log('createContextInner called with params: %O', params);
|
50
|
+
const responseHeaders = new Headers();
|
51
|
+
|
44
52
|
return {
|
45
53
|
authorizationHeader: params?.authorizationHeader,
|
46
54
|
clerkAuth: params?.clerkAuth,
|
55
|
+
marketAccessToken: params?.marketAccessToken,
|
47
56
|
nextAuth: params?.nextAuth,
|
48
57
|
oidcAuth: params?.oidcAuth,
|
58
|
+
resHeaders: responseHeaders,
|
59
|
+
userAgent: params?.userAgent,
|
49
60
|
userId: params?.userId,
|
50
61
|
};
|
51
62
|
};
|
@@ -68,6 +79,19 @@ export const createLambdaContext = async (request: NextRequest): Promise<LambdaC
|
|
68
79
|
// for API-response caching see https://trpc.io/docs/v11/caching
|
69
80
|
|
70
81
|
const authorization = request.headers.get(LOBE_CHAT_AUTH_HEADER);
|
82
|
+
const userAgent = request.headers.get('user-agent') || undefined;
|
83
|
+
|
84
|
+
// get marketAccessToken from cookies
|
85
|
+
const cookieHeader = request.headers.get('cookie');
|
86
|
+
const cookies = cookieHeader ? parse(cookieHeader) : {};
|
87
|
+
const marketAccessToken = cookies['mp_token'];
|
88
|
+
|
89
|
+
log('marketAccessToken from cookie:', marketAccessToken ? '[HIDDEN]' : 'undefined');
|
90
|
+
const commonContext = {
|
91
|
+
authorizationHeader: authorization,
|
92
|
+
marketAccessToken,
|
93
|
+
userAgent,
|
94
|
+
};
|
71
95
|
log('LobeChat Authorization header: %s', authorization ? 'exists' : 'not found');
|
72
96
|
|
73
97
|
let userId;
|
@@ -105,9 +129,8 @@ export const createLambdaContext = async (request: NextRequest): Promise<LambdaC
|
|
105
129
|
// If OIDC authentication is successful, return context immediately
|
106
130
|
log('OIDC authentication successful, creating context and returning');
|
107
131
|
return createContextInner({
|
108
|
-
// Preserve original LobeChat Authorization Header (if any)
|
109
|
-
authorizationHeader: authorization,
|
110
132
|
oidcAuth,
|
133
|
+
...commonContext,
|
111
134
|
userId,
|
112
135
|
});
|
113
136
|
}
|
@@ -129,7 +152,11 @@ export const createLambdaContext = async (request: NextRequest): Promise<LambdaC
|
|
129
152
|
userId = result.userId;
|
130
153
|
log('Clerk authentication result, userId: %s', userId || 'not authenticated');
|
131
154
|
|
132
|
-
return createContextInner({
|
155
|
+
return createContextInner({
|
156
|
+
clerkAuth: auth,
|
157
|
+
...commonContext,
|
158
|
+
userId,
|
159
|
+
});
|
133
160
|
}
|
134
161
|
|
135
162
|
if (enableNextAuth) {
|
@@ -145,7 +172,11 @@ export const createLambdaContext = async (request: NextRequest): Promise<LambdaC
|
|
145
172
|
} else {
|
146
173
|
log('NextAuth authentication failed, no valid session');
|
147
174
|
}
|
148
|
-
return createContextInner({
|
175
|
+
return createContextInner({
|
176
|
+
nextAuth: auth,
|
177
|
+
...commonContext,
|
178
|
+
userId,
|
179
|
+
});
|
149
180
|
} catch (e) {
|
150
181
|
log('NextAuth authentication error: %O', e);
|
151
182
|
console.error('next auth err', e);
|
@@ -157,5 +188,5 @@ export const createLambdaContext = async (request: NextRequest): Promise<LambdaC
|
|
157
188
|
'All authentication methods attempted, returning final context, userId: %s',
|
158
189
|
userId || 'not authenticated',
|
159
190
|
);
|
160
|
-
return createContextInner({
|
191
|
+
return createContextInner({ ...commonContext, userId });
|
161
192
|
};
|
@@ -26,7 +26,7 @@ export const router = trpc.router;
|
|
26
26
|
**/
|
27
27
|
export const publicProcedure = trpc.procedure.use(({ next, ctx }) => {
|
28
28
|
return next({
|
29
|
-
ctx: { userId: isDesktop ? DESKTOP_USER_ID : ctx.userId },
|
29
|
+
ctx: { ...ctx, userId: isDesktop ? DESKTOP_USER_ID : ctx.userId },
|
30
30
|
});
|
31
31
|
});
|
32
32
|
|
@@ -16,7 +16,14 @@ export const trpc = initTRPC.context<LambdaContext>().create({
|
|
16
16
|
/**
|
17
17
|
* @link https://trpc.io/docs/v11/error-formatting
|
18
18
|
*/
|
19
|
-
errorFormatter({ shape }) {
|
19
|
+
errorFormatter({ shape, error }) {
|
20
|
+
if (error.cause && 'data' in error.cause) {
|
21
|
+
return {
|
22
|
+
...shape,
|
23
|
+
data: { ...shape.data, errorData: error.cause.data },
|
24
|
+
};
|
25
|
+
}
|
26
|
+
|
20
27
|
return shape;
|
21
28
|
},
|
22
29
|
/**
|
package/src/locales/create.ts
CHANGED
@@ -31,8 +31,10 @@ export const createI18nNext = (lang?: string) => {
|
|
31
31
|
}
|
32
32
|
});
|
33
33
|
return {
|
34
|
-
init: () =>
|
35
|
-
|
34
|
+
init: (params: { initAsync?: boolean } = {}) => {
|
35
|
+
const { initAsync = true } = params;
|
36
|
+
|
37
|
+
return instance.init({
|
36
38
|
debug: debugMode,
|
37
39
|
defaultNS: ['error', 'common', 'chat'],
|
38
40
|
// detection: {
|
@@ -50,11 +52,14 @@ export const createI18nNext = (lang?: string) => {
|
|
50
52
|
// lookupCookie: LOBE_LOCALE_COOKIE,
|
51
53
|
// },
|
52
54
|
fallbackLng: DEFAULT_LANG,
|
55
|
+
|
56
|
+
initAsync,
|
53
57
|
interpolation: {
|
54
58
|
escapeValue: false,
|
55
59
|
},
|
56
60
|
lng: lang,
|
57
|
-
})
|
61
|
+
});
|
62
|
+
},
|
58
63
|
instance,
|
59
64
|
};
|
60
65
|
};
|
@@ -10,13 +10,57 @@ export default {
|
|
10
10
|
},
|
11
11
|
description: '助手介绍',
|
12
12
|
detail: '详情',
|
13
|
+
details: {
|
14
|
+
capabilities: {
|
15
|
+
knowledge: {
|
16
|
+
desc: '助手内置了以下知识库,帮助你回答更多问题。',
|
17
|
+
title: '知识库',
|
18
|
+
},
|
19
|
+
plugin: {
|
20
|
+
desc: '助手内置了以下插件,帮助你完成更多任务。',
|
21
|
+
title: '内置插件',
|
22
|
+
},
|
23
|
+
title: '助手能力',
|
24
|
+
},
|
25
|
+
overview: {
|
26
|
+
example: '助手演示',
|
27
|
+
title: '概览',
|
28
|
+
},
|
29
|
+
related: {
|
30
|
+
listTitle: '相关助手',
|
31
|
+
more: '查看更多',
|
32
|
+
title: '相关推荐',
|
33
|
+
},
|
34
|
+
sidebar: {
|
35
|
+
toc: '目录',
|
36
|
+
},
|
37
|
+
summary: {
|
38
|
+
title: '你可以使用该助手做什么?',
|
39
|
+
},
|
40
|
+
systemRole: {
|
41
|
+
openingMessage: '开场消息',
|
42
|
+
openingQuestions: '开场问题',
|
43
|
+
title: '助手设定',
|
44
|
+
},
|
45
|
+
},
|
13
46
|
list: '助手列表',
|
14
47
|
more: '更多',
|
15
48
|
plugins: '集成插件',
|
16
49
|
recentSubmits: '最近更新',
|
50
|
+
sorts: {
|
51
|
+
createdAt: '最近发布',
|
52
|
+
identifier: '助手 ID',
|
53
|
+
knowledgeCount: '知识库数量',
|
54
|
+
pluginCount: '插件数量',
|
55
|
+
title: '助手名称',
|
56
|
+
tokenUsage: 'Token 使用量',
|
57
|
+
},
|
17
58
|
suggestions: '相关推荐',
|
18
59
|
systemRole: '助手设定',
|
60
|
+
tokenUsage: '助手提示词 Token 使用量',
|
19
61
|
try: '试一下',
|
62
|
+
withKnowledge: '该助手附带知识库',
|
63
|
+
withPlugin: '该助手附带插件',
|
20
64
|
},
|
21
65
|
back: '返回发现',
|
22
66
|
category: {
|
@@ -41,6 +85,7 @@ export default {
|
|
41
85
|
'all': '全部',
|
42
86
|
'gaming-entertainment': '游戏娱乐',
|
43
87
|
'life-style': '生活方式',
|
88
|
+
'lifestyle': '生活方式',
|
44
89
|
'media-generate': '媒体生成',
|
45
90
|
'science-education': '科学教育',
|
46
91
|
'social': '社交媒体',
|
@@ -65,7 +110,6 @@ export default {
|
|
65
110
|
title: '通过 Github 提交',
|
66
111
|
},
|
67
112
|
},
|
68
|
-
|
69
113
|
dislike: '不喜欢',
|
70
114
|
filter: '筛选',
|
71
115
|
filterBy: {
|
@@ -103,10 +147,374 @@ export default {
|
|
103
147
|
featuredTools: '推荐插件',
|
104
148
|
more: '发现更多',
|
105
149
|
},
|
150
|
+
isClaimed: '已认领',
|
151
|
+
isFeatured: '推荐',
|
152
|
+
isOfficial: '官方认证',
|
106
153
|
like: '喜欢',
|
154
|
+
mcp: {
|
155
|
+
categories: {
|
156
|
+
'all': {
|
157
|
+
description: '全部 MCP Servers',
|
158
|
+
name: '全部',
|
159
|
+
},
|
160
|
+
'business': {
|
161
|
+
description: '商业与企业服务',
|
162
|
+
name: '商业服务',
|
163
|
+
},
|
164
|
+
'developer': {
|
165
|
+
description: '开发相关的工具与服务',
|
166
|
+
name: '开发工具',
|
167
|
+
},
|
168
|
+
'gaming-entertainment': {
|
169
|
+
description: '游戏、娱乐和休闲活动',
|
170
|
+
name: '游戏娱乐',
|
171
|
+
},
|
172
|
+
'health-wellness': {
|
173
|
+
description: '健康、健身与身心养护',
|
174
|
+
name: '健康养生',
|
175
|
+
},
|
176
|
+
'lifestyle': {
|
177
|
+
description: '个人生活方式、习惯与日常活动',
|
178
|
+
name: '生活方式',
|
179
|
+
},
|
180
|
+
'media-generate': {
|
181
|
+
description: '媒体的生成、编辑与处理',
|
182
|
+
name: '媒体生成',
|
183
|
+
},
|
184
|
+
'news': {
|
185
|
+
description: '新闻聚合、报道与资讯服务',
|
186
|
+
name: '新闻咨询',
|
187
|
+
},
|
188
|
+
'productivity': {
|
189
|
+
description: '任务管理、笔记与效率工具',
|
190
|
+
name: '效率工具',
|
191
|
+
},
|
192
|
+
'science-education': {
|
193
|
+
description: '科学研究、学习与教育工具',
|
194
|
+
name: '科学教育',
|
195
|
+
},
|
196
|
+
'social': {
|
197
|
+
description: '社交网络与沟通交流',
|
198
|
+
name: '社交媒体',
|
199
|
+
},
|
200
|
+
'stocks-finance': {
|
201
|
+
description: '金融市场、交易与投资',
|
202
|
+
name: '股票金融',
|
203
|
+
},
|
204
|
+
'tools': {
|
205
|
+
description: '通用实用工具与服务',
|
206
|
+
name: '实用工具',
|
207
|
+
},
|
208
|
+
'travel-transport': {
|
209
|
+
description: '旅行规划与交通出行',
|
210
|
+
name: '旅行交通',
|
211
|
+
},
|
212
|
+
'weather': {
|
213
|
+
description: '天气预报与气象服务',
|
214
|
+
name: '气象天气',
|
215
|
+
},
|
216
|
+
'web-search': {
|
217
|
+
description: '网页搜索与信息检索',
|
218
|
+
name: '信息检索',
|
219
|
+
},
|
220
|
+
},
|
221
|
+
details: {
|
222
|
+
connectionType: {
|
223
|
+
hybrid: {
|
224
|
+
desc: '该服务可根据配置或使用场景,在本地或云端运行,具备双重运行能力。',
|
225
|
+
title: '混合型服务',
|
226
|
+
},
|
227
|
+
local: {
|
228
|
+
desc: '该服务器只能在客户端本地设备上运行,需安装并依赖本地资源。',
|
229
|
+
title: '本地服务',
|
230
|
+
},
|
231
|
+
remote: {
|
232
|
+
desc: '该服务器托管在远程运行,因为它主要依赖远程服务,不依赖本地环境。',
|
233
|
+
title: '云服务',
|
234
|
+
},
|
235
|
+
},
|
236
|
+
deployment: {
|
237
|
+
args: '参数',
|
238
|
+
checkCommand: '检查命令',
|
239
|
+
command: '命令',
|
240
|
+
commandLine: '系统依赖',
|
241
|
+
connection: '连接方式',
|
242
|
+
connectionType: '连接类型',
|
243
|
+
description: '插件的安装和部署方式',
|
244
|
+
descriptionPlaceholder: '可选的描述信息',
|
245
|
+
empty: '暂无部署选项',
|
246
|
+
env: '环境变量',
|
247
|
+
guide: '安装说明',
|
248
|
+
installation: '通过 {{method}} 安装',
|
249
|
+
installationMethod: '安装方式',
|
250
|
+
other: '其他设置',
|
251
|
+
packageName: '包名称',
|
252
|
+
platform: {
|
253
|
+
steps: {
|
254
|
+
claude:
|
255
|
+
'- 打开 **Claude Desktop** 应用\n- 前往 **设置**,然后选择 **开发者**\n- 点击 **编辑配置**\n- 打开 **claude_desktop_config.json** 文件\n- 复制并粘贴服务器配置到现有文件中,然后保存',
|
256
|
+
cline:
|
257
|
+
'- 打开安装了 Cline 扩展的 VS Code\n- 点击侧边栏中的 Cline 图标\n- 从下拉菜单中选择 **MCP Servers**\n- 在 **Remote Servers** 标签页中,输入服务器名称和您的 MCP 服务器 URL\n- 点击 **Add Server** 进行连接',
|
258
|
+
cursor:
|
259
|
+
'- 导航到 **设置**,然后选择 Cursor 设置\n- 在左侧选择 **MCP**\n- 点击右上角的 **添加新的全局 MCP 服务器**\n- 复制并粘贴服务器配置到现有文件中,然后保存',
|
260
|
+
lobeChat:
|
261
|
+
'- 打开 **LobeChat 桌面版** 应用\n- 前往 **设置** - **默认助手**\n- 然后选择 **插件设置** - **自定义插件**\n- 点击 **快速导入 JSON 配置**\n- 复制并粘贴服务器配置到文本框,然后安装',
|
262
|
+
openai:
|
263
|
+
'- 打开您的 **OpenAI 应用** 或开发环境\n- 在 **Responses API** 中配置 MCP 工具\n- 在 API 请求的 **tools** 数组中添加 MCP 块\n- 设置 **server_url** 为您的 MCP 服务器端点\n- 包含认证所需的头部信息(API 密钥、令牌等)\n- 使用 `allowed_tools` 参数限制暴露的工具\n- 设置 `require_approval` 来控制工具执行审批',
|
264
|
+
vscode:
|
265
|
+
'- 打开 VS Code\n- 打开命令面板(`Ctrl+Shift+P` / `Cmd+Shift+P`)\n- 输入 **MCP: Add Server** 并选择它\n- 选择添加到工作区或用户设置\n- 复制并粘贴服务器配置',
|
266
|
+
},
|
267
|
+
title: '在 {{platform}} 中安装',
|
268
|
+
},
|
269
|
+
recommended: '推荐',
|
270
|
+
systemDependencies: '系统依赖',
|
271
|
+
table: {
|
272
|
+
description: '描述',
|
273
|
+
name: '名称',
|
274
|
+
required: '必填',
|
275
|
+
type: '类型',
|
276
|
+
},
|
277
|
+
title: '安装方式',
|
278
|
+
},
|
279
|
+
githubBadge: {
|
280
|
+
desc: 'LobeHub 定期对代码库和文档进行扫描,以便于:\n\n- 确认 MCP 服务器正常运行。\n- 提取服务器特性,例如工具、资源、提示信息以及所需参数。\n- 我们的 Badge 帮助用户快速评估 MCP 服务器的安全性、功能特性以及安装指南。\n\n请将以下代码复制到你的 `README.md` 文件中:',
|
281
|
+
},
|
282
|
+
nav: {
|
283
|
+
needHelp: '需要帮助?',
|
284
|
+
reportIssue: '报告问题',
|
285
|
+
viewSourceCode: '查看源码',
|
286
|
+
},
|
287
|
+
overview: {
|
288
|
+
title: '概览',
|
289
|
+
},
|
290
|
+
related: {
|
291
|
+
listTitle: '相关 MCP Server',
|
292
|
+
more: '查看更多',
|
293
|
+
title: '相关推荐',
|
294
|
+
},
|
295
|
+
schema: {
|
296
|
+
mode: {
|
297
|
+
docs: '文档',
|
298
|
+
},
|
299
|
+
prompts: {
|
300
|
+
arguments: '参数配置',
|
301
|
+
desc: '由用户选择触发的交互式模板',
|
302
|
+
empty: '暂无提示词',
|
303
|
+
instructions: '指令说明',
|
304
|
+
table: {
|
305
|
+
description: '描述',
|
306
|
+
name: '名称',
|
307
|
+
required: '必填',
|
308
|
+
},
|
309
|
+
title: '提示词列表',
|
310
|
+
},
|
311
|
+
resources: {
|
312
|
+
desc: '由客户端附加和管理的上下文数据',
|
313
|
+
empty: '暂无资源',
|
314
|
+
table: {
|
315
|
+
description: '描述',
|
316
|
+
mineType: 'MIME 类型',
|
317
|
+
name: '名称',
|
318
|
+
uri: 'URI',
|
319
|
+
},
|
320
|
+
title: '资源列表',
|
321
|
+
},
|
322
|
+
title: '插件功能',
|
323
|
+
tools: {
|
324
|
+
desc: '向大语言模型(LLM)暴露的功能接口以执行操作',
|
325
|
+
empty: '暂无工具',
|
326
|
+
inputSchema: '输入描述',
|
327
|
+
instructions: '指令说明',
|
328
|
+
table: {
|
329
|
+
description: '描述',
|
330
|
+
name: '名称',
|
331
|
+
required: '必填',
|
332
|
+
type: '类型',
|
333
|
+
},
|
334
|
+
title: '工具列表',
|
335
|
+
},
|
336
|
+
},
|
337
|
+
score: {
|
338
|
+
claimed: {
|
339
|
+
desc: '此 MCP Server 已被所有者认领,确保其所有权和管理。',
|
340
|
+
title: '已被所有者认领',
|
341
|
+
},
|
342
|
+
deployMoreThanManual: {
|
343
|
+
desc: '该 MCP Server 提供了除 Manual 外更友好的安装方式,允许用户轻松部署和使用。',
|
344
|
+
title: '提供友好的安装方式',
|
345
|
+
},
|
346
|
+
deployment: {
|
347
|
+
desc: '该 MCP Server 提供了至少一种安装方式,允许用户部署和使用。',
|
348
|
+
descWithCount: '该 MCP Server 提供了 {{number}} 种安装方式,允许用户部署和使用。',
|
349
|
+
title: '提供至少一种安装方式',
|
350
|
+
},
|
351
|
+
license: {
|
352
|
+
desc: '该仓库包含一个 LICENSE 文件。',
|
353
|
+
descWithlicense: '该仓库许可证为 {{license}}。',
|
354
|
+
title: '具有 LICENSE',
|
355
|
+
},
|
356
|
+
listTitle: '评分明细',
|
357
|
+
notClaimed: {
|
358
|
+
desc: '如果您是此 MCP Server 所有者,可通过以下方式认领。',
|
359
|
+
title: '未被所有者认领',
|
360
|
+
},
|
361
|
+
prompts: {
|
362
|
+
desc: '该 MCP Server 提供了提示词,允许用户与服务进行交互。',
|
363
|
+
descWithCount: '该 MCP Server 提供了 {{number}} 个提示词,允许用户与服务进行交互。',
|
364
|
+
title: '包含提示词',
|
365
|
+
},
|
366
|
+
readme: {
|
367
|
+
desc: '该仓库包含一个 README.md 文件。',
|
368
|
+
title: '具有 README',
|
369
|
+
},
|
370
|
+
resources: {
|
371
|
+
desc: '该 MCP Server 提供了资源,允许用户附加和管理上下文数据。',
|
372
|
+
descWithCount: '该 MCP Server 提供了 {{number}} 个资源,允许用户附加和管理上下文数据。',
|
373
|
+
title: '包含资源',
|
374
|
+
},
|
375
|
+
title: '评分',
|
376
|
+
tools: {
|
377
|
+
desc: '服务需提供至少一个工具,允许用户执行特定操作。',
|
378
|
+
descWithCount: '该 MCP Server 提供了 {{number}} 个工具功能,允许用户执行特定操作。',
|
379
|
+
title: '包含至少一个工具',
|
380
|
+
},
|
381
|
+
validated: {
|
382
|
+
desc: '该 MCP Server 已通过安装验证,确保其质量和可靠性。',
|
383
|
+
title: '已通过验证',
|
384
|
+
},
|
385
|
+
},
|
386
|
+
scoreLevel: {
|
387
|
+
a: {
|
388
|
+
desc: '该 MCP Server 经过严格验证,提供了全面的功能和高质量的用户体验。',
|
389
|
+
fullTitle: '优秀插件',
|
390
|
+
title: '优质',
|
391
|
+
},
|
392
|
+
b: {
|
393
|
+
desc: '该 MCP Server 提供了良好的功能和用户体验,但可能在某些方面需要改进。',
|
394
|
+
fullTitle: '功能良好',
|
395
|
+
title: '良好',
|
396
|
+
},
|
397
|
+
f: {
|
398
|
+
desc: '该 MCP Server 功能不完整或质量较低,建议用户谨慎使用。',
|
399
|
+
fullTitle: '质量欠佳',
|
400
|
+
title: '欠佳',
|
401
|
+
},
|
402
|
+
},
|
403
|
+
settings: {
|
404
|
+
capabilities: {
|
405
|
+
prompts: '提示词',
|
406
|
+
resources: '资源',
|
407
|
+
title: '插件能力',
|
408
|
+
tools: '工具',
|
409
|
+
},
|
410
|
+
configuration: {
|
411
|
+
title: '插件配置',
|
412
|
+
},
|
413
|
+
connection: {
|
414
|
+
args: '启动参数',
|
415
|
+
command: '启动命令',
|
416
|
+
title: '连接信息',
|
417
|
+
type: '连接类型',
|
418
|
+
url: '服务地址',
|
419
|
+
},
|
420
|
+
saveSettings: '保存设置',
|
421
|
+
title: '插件设置',
|
422
|
+
},
|
423
|
+
sidebar: {
|
424
|
+
install: '安装 MCP Server',
|
425
|
+
meta: {
|
426
|
+
homepage: '官网主页',
|
427
|
+
installCount: '安装数',
|
428
|
+
language: '源码语种',
|
429
|
+
license: '许可证',
|
430
|
+
published: '发布时间',
|
431
|
+
repo: '源码仓库',
|
432
|
+
stars: '星标数',
|
433
|
+
title: '详细信息',
|
434
|
+
updated: '最近更新',
|
435
|
+
},
|
436
|
+
moreServerConfig: '查看详情',
|
437
|
+
recommendServers: '相关 MCP',
|
438
|
+
serverConfig: '安装配置',
|
439
|
+
toc: '目录',
|
440
|
+
},
|
441
|
+
summary: {
|
442
|
+
title: '你可以使用该 MCP Server 做什么?',
|
443
|
+
},
|
444
|
+
totalScore: {
|
445
|
+
description: '根据各项指标综合计算得出的总分',
|
446
|
+
legend: {
|
447
|
+
aGrade: 'A级 ({{minPercent}}-100%)',
|
448
|
+
bGrade: 'B级 ({{minPercent}}-{{maxPercent}}%)',
|
449
|
+
fGrade: 'F级 (0-{{maxPercent}}%)',
|
450
|
+
},
|
451
|
+
pointsFormat: '{{score}}/{{total}} 分',
|
452
|
+
popover: {
|
453
|
+
completedOptional: '✅ 已完成可选项 ({{count}}项)',
|
454
|
+
completedRequired: '✅ 已完成必需项 ({{count}}项)',
|
455
|
+
incompleteOptional: '⏸️ 未完成可选项 ({{count}}项)',
|
456
|
+
incompleteRequired: '❌ 未完成必需项 ({{count}}项)',
|
457
|
+
title: '评分详情',
|
458
|
+
},
|
459
|
+
ratingFormat: '评级: {{level}}',
|
460
|
+
scoreInfo: {
|
461
|
+
items: '项',
|
462
|
+
points: '分',
|
463
|
+
requiredItems: '必需项',
|
464
|
+
},
|
465
|
+
title: '总分',
|
466
|
+
},
|
467
|
+
versions: {
|
468
|
+
table: {
|
469
|
+
isLatest: '最新版本',
|
470
|
+
isValidated: '通过验证',
|
471
|
+
publishAt: '发布时间',
|
472
|
+
version: '版本',
|
473
|
+
},
|
474
|
+
title: '版本历史',
|
475
|
+
},
|
476
|
+
},
|
477
|
+
hero: {
|
478
|
+
desc: '开源、可部署的 MCP Servers 平台,帮助 AI 系统轻松访问文件系统、数据库、API 等关键资源,全面扩展你的 AI 能力。',
|
479
|
+
subTitle: '开源 & 开箱即用',
|
480
|
+
title: '面向 AI 的开源 MCP 市场',
|
481
|
+
},
|
482
|
+
sorts: {
|
483
|
+
createdAt: '最近新增',
|
484
|
+
installCount: '安装数',
|
485
|
+
isFeatured: '推荐插件',
|
486
|
+
isValidated: '已验证插件',
|
487
|
+
promptsCount: '提示词数',
|
488
|
+
ratingCount: '评分数',
|
489
|
+
resourcesCount: '资源数',
|
490
|
+
toolsCount: '工具数',
|
491
|
+
updatedAt: '最近更新',
|
492
|
+
},
|
493
|
+
title: 'MCP 市场',
|
494
|
+
unvalidated: {
|
495
|
+
desc: '此 MCP Server 暂未经过验证',
|
496
|
+
title: '未验证',
|
497
|
+
},
|
498
|
+
validated: {
|
499
|
+
desc: '此 MCP Server 经过验证,确保其质量和可靠性。',
|
500
|
+
descWithDate: '此 MCP Server 于 {{date}} 经过验证,确保其质量和可靠性。',
|
501
|
+
title: '已验证',
|
502
|
+
},
|
503
|
+
},
|
107
504
|
models: {
|
505
|
+
abilities: '模型能力',
|
108
506
|
chat: '开始会话',
|
109
507
|
contentLength: '最大上下文长度',
|
508
|
+
details: {
|
509
|
+
overview: {
|
510
|
+
title: '概览',
|
511
|
+
},
|
512
|
+
related: {
|
513
|
+
listTitle: '相关模型',
|
514
|
+
more: '查看更多',
|
515
|
+
title: '相关推荐',
|
516
|
+
},
|
517
|
+
},
|
110
518
|
free: '免费',
|
111
519
|
guide: '配置指南',
|
112
520
|
list: '模型列表',
|
@@ -157,11 +565,30 @@ export default {
|
|
157
565
|
throughput: '吞吐量',
|
158
566
|
throughputTooltip: '流请求每秒传输的平均 Token 数',
|
159
567
|
},
|
568
|
+
sorts: {
|
569
|
+
contextWindowTokens: '上下文长度',
|
570
|
+
identifier: '模型 ID',
|
571
|
+
inputPrice: '输入价格',
|
572
|
+
outputPrice: '输出价格',
|
573
|
+
providerCount: '服务商数量',
|
574
|
+
releasedAt: '最近发布',
|
575
|
+
},
|
160
576
|
suggestions: '相关模型',
|
161
577
|
supportedProviders: '支持该模型的服务商',
|
162
578
|
},
|
163
579
|
plugins: {
|
164
580
|
community: '社区插件',
|
581
|
+
details: {
|
582
|
+
settings: {
|
583
|
+
title: '插件设置',
|
584
|
+
},
|
585
|
+
summary: {
|
586
|
+
title: '你可以使用该插件做什么?',
|
587
|
+
},
|
588
|
+
tools: {
|
589
|
+
title: '插件工具',
|
590
|
+
},
|
591
|
+
},
|
165
592
|
install: '安装插件',
|
166
593
|
installed: '已安装',
|
167
594
|
list: '插件列表',
|
@@ -174,36 +601,54 @@ export default {
|
|
174
601
|
more: '更多',
|
175
602
|
official: '官方插件',
|
176
603
|
recentSubmits: '最近更新',
|
604
|
+
sorts: {
|
605
|
+
createdAt: '最近发布',
|
606
|
+
identifier: '插件 ID',
|
607
|
+
title: '插件名称',
|
608
|
+
},
|
177
609
|
suggestions: '相关推荐',
|
178
610
|
},
|
179
611
|
providers: {
|
180
612
|
config: '配置服务商',
|
613
|
+
details: {
|
614
|
+
guide: {
|
615
|
+
title: '接入指南',
|
616
|
+
},
|
617
|
+
overview: {
|
618
|
+
title: '概览',
|
619
|
+
},
|
620
|
+
related: {
|
621
|
+
listTitle: '相关服务商',
|
622
|
+
more: '查看更多',
|
623
|
+
title: '相关推荐',
|
624
|
+
},
|
625
|
+
},
|
181
626
|
list: '模型服务商列表',
|
182
627
|
modelCount: '{{count}} 个模型',
|
628
|
+
modelName: '模型名称',
|
183
629
|
modelSite: '模型文档',
|
184
630
|
more: '更多',
|
185
631
|
officialSite: '官方网站',
|
186
632
|
showAllModels: '显示所有模型',
|
633
|
+
sorts: {
|
634
|
+
default: '默认排序',
|
635
|
+
identifier: '服务商 ID',
|
636
|
+
modelCount: '模型数量',
|
637
|
+
},
|
187
638
|
suggestions: '相关服务商',
|
188
639
|
supportedModels: '支持模型',
|
189
640
|
},
|
641
|
+
publishedTime: '发布于',
|
190
642
|
search: {
|
191
643
|
placeholder: '搜索名称介绍或关键词...',
|
192
644
|
result: '{{count}} 个关于 <highlight>{{keyword}}</highlight> 的搜索结果',
|
193
645
|
searching: '搜索中...',
|
194
646
|
},
|
195
|
-
sort: {
|
196
|
-
mostLiked: '最多喜欢',
|
197
|
-
mostUsed: '最多使用',
|
198
|
-
newest: '从新到旧',
|
199
|
-
oldest: '从旧到新',
|
200
|
-
recommended: '推荐',
|
201
|
-
},
|
202
647
|
tab: {
|
203
|
-
|
648
|
+
assistant: '助手',
|
204
649
|
home: '首页',
|
205
|
-
|
206
|
-
|
207
|
-
|
650
|
+
model: '模型',
|
651
|
+
plugin: '插件',
|
652
|
+
provider: '模型服务商',
|
208
653
|
},
|
209
654
|
};
|