diff --git a/web/src/app/home/components/home-sidebar/HomeSidebar.tsx b/web/src/app/home/components/home-sidebar/HomeSidebar.tsx index f8901614..98861481 100644 --- a/web/src/app/home/components/home-sidebar/HomeSidebar.tsx +++ b/web/src/app/home/components/home-sidebar/HomeSidebar.tsx @@ -422,12 +422,12 @@ export default function HomeSidebar({ const language = localStorage.getItem('langbot_language'); if (language === 'zh-Hans' || language === 'zh-Hant') { window.open( - 'https://docs.langbot.app/zh/insight/guide.html', + 'https://docs.langbot.app/zh/insight/guide', '_blank', ); } else { window.open( - 'https://docs.langbot.app/en/insight/guide.html', + 'https://docs.langbot.app/en/insight/guide', '_blank', ); } diff --git a/web/src/app/home/components/home-sidebar/sidbarConfigList.tsx b/web/src/app/home/components/home-sidebar/sidbarConfigList.tsx index cdb99945..47070bdc 100644 --- a/web/src/app/home/components/home-sidebar/sidbarConfigList.tsx +++ b/web/src/app/home/components/home-sidebar/sidbarConfigList.tsx @@ -23,9 +23,9 @@ export const sidebarConfigList = [ route: '/home/bots', description: t('bots.description'), helpLink: { - en_US: 'https://docs.langbot.app/en/usage/platforms/readme.html', - zh_Hans: 'https://docs.langbot.app/zh/usage/platforms/readme.html', - ja_JP: 'https://docs.langbot.app/ja/usage/platforms/readme.html', + en_US: 'https://docs.langbot.app/en/usage/platforms/readme', + zh_Hans: 'https://docs.langbot.app/zh/usage/platforms/readme', + ja_JP: 'https://docs.langbot.app/ja/usage/platforms/readme', }, }), new SidebarChildVO({ @@ -44,9 +44,9 @@ export const sidebarConfigList = [ route: '/home/pipelines', description: t('pipelines.description'), helpLink: { - en_US: 'https://docs.langbot.app/en/usage/pipelines/readme.html', - zh_Hans: 'https://docs.langbot.app/zh/usage/pipelines/readme.html', - ja_JP: 'https://docs.langbot.app/ja/usage/pipelines/readme.html', + en_US: 'https://docs.langbot.app/en/usage/pipelines/readme', + zh_Hans: 'https://docs.langbot.app/zh/usage/pipelines/readme', + ja_JP: 'https://docs.langbot.app/ja/usage/pipelines/readme', }, }), new SidebarChildVO({ @@ -65,8 +65,8 @@ export const sidebarConfigList = [ route: '/home/monitoring', description: t('monitoring.description'), helpLink: { - en_US: 'https://docs.langbot.app/en/features/monitoring.html', - zh_Hans: 'https://docs.langbot.app/zh/features/monitoring.html', + en_US: '', + zh_Hans: '', }, }), new SidebarChildVO({ @@ -84,9 +84,9 @@ export const sidebarConfigList = [ route: '/home/knowledge', description: t('knowledge.description'), helpLink: { - en_US: 'https://docs.langbot.app/en/usage/knowledge/readme.html', - zh_Hans: 'https://docs.langbot.app/zh/usage/knowledge/readme.html', - ja_JP: 'https://docs.langbot.app/ja/usage/knowledge/readme.html', + en_US: 'https://docs.langbot.app/en/usage/knowledge/readme', + zh_Hans: 'https://docs.langbot.app/zh/usage/knowledge/readme', + ja_JP: 'https://docs.langbot.app/ja/usage/knowledge/readme', }, }), new SidebarChildVO({ @@ -105,9 +105,9 @@ export const sidebarConfigList = [ route: '/home/plugins', description: t('plugins.description'), helpLink: { - en_US: 'https://docs.langbot.app/en/usage/plugin/plugin-intro.html', - zh_Hans: 'https://docs.langbot.app/zh/usage/plugin/plugin-intro.html', - ja_JP: 'https://docs.langbot.app/ja/usage/plugin/plugin-intro.html', + en_US: 'https://docs.langbot.app/en/usage/plugin/plugin-intro', + zh_Hans: 'https://docs.langbot.app/zh/usage/plugin/plugin-intro', + ja_JP: 'https://docs.langbot.app/ja/usage/plugin/plugin-intro', }, }), ]; diff --git a/web/src/app/home/components/new-version-dialog/NewVersionDialog.tsx b/web/src/app/home/components/new-version-dialog/NewVersionDialog.tsx index 019e57d8..8b0ad127 100644 --- a/web/src/app/home/components/new-version-dialog/NewVersionDialog.tsx +++ b/web/src/app/home/components/new-version-dialog/NewVersionDialog.tsx @@ -36,11 +36,11 @@ export default function NewVersionDialog({ const getUpdateDocsUrl = () => { const language = i18n.language; if (language === 'zh-Hans' || language === 'zh-Hant') { - return 'https://docs.langbot.app/zh/deploy/update.html'; + return 'https://docs.langbot.app/zh/deploy/update'; } else if (language === 'ja-JP') { - return 'https://docs.langbot.app/ja/deploy/update.html'; + return 'https://docs.langbot.app/ja/deploy/update'; } else { - return 'https://docs.langbot.app/en/deploy/update.html'; + return 'https://docs.langbot.app/en/deploy/update'; } }; diff --git a/web/src/app/home/knowledge/components/kb-form/KBForm.tsx b/web/src/app/home/knowledge/components/kb-form/KBForm.tsx index 96ace870..25f5c5ca 100644 --- a/web/src/app/home/knowledge/components/kb-form/KBForm.tsx +++ b/web/src/app/home/knowledge/components/kb-form/KBForm.tsx @@ -1,4 +1,5 @@ import { useEffect, useState } from 'react'; +import Link from 'next/link'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { z } from 'zod'; @@ -264,9 +265,12 @@ export default function KBForm({

{t('knowledge.noEnginesAvailable')}

-

+ {t('knowledge.installEngineHint')} -

+ ); } diff --git a/web/src/app/home/knowledge/knowledgeBase.module.css b/web/src/app/home/knowledge/knowledgeBase.module.css index 8305fc13..e811b521 100644 --- a/web/src/app/home/knowledge/knowledgeBase.module.css +++ b/web/src/app/home/knowledge/knowledgeBase.module.css @@ -5,7 +5,6 @@ .knowledgeListContainer { width: 100%; - margin-top: 2rem; padding-left: 0.8rem; padding-right: 0.8rem; display: grid; diff --git a/web/src/app/home/plugins/components/plugin-market/PluginMarketComponent.tsx b/web/src/app/home/plugins/components/plugin-market/PluginMarketComponent.tsx index fcdc84d2..97c82881 100644 --- a/web/src/app/home/plugins/components/plugin-market/PluginMarketComponent.tsx +++ b/web/src/app/home/plugins/components/plugin-market/PluginMarketComponent.tsx @@ -562,8 +562,7 @@ function MarketPageContent({ {/* Recommendation Lists */} {!searchQuery && componentFilter === 'all' && - selectedTags.length === 0 && - currentPage === 1 && ( + selectedTags.length === 0 && (
, }; + // Plugins that only contain KnowledgeRetriever components are deprecated + const isDeprecated = (() => { + if (!cardVO.components) return false; + const keys = Object.keys(cardVO.components); + return keys.length > 0 && keys.every((k) => k === 'KnowledgeRetriever'); + })(); + return (
{cardVO.pluginId}
-
- {cardVO.label} +
+
+ {cardVO.label} +
+ {isDeprecated && ( + + + e.preventDefault()} + > + + {t('market.deprecated')} + + + + + {t('market.deprecatedTooltip')} + + + + )}
diff --git a/web/src/i18n/locales/en-US.ts b/web/src/i18n/locales/en-US.ts index 0e06bba9..b8e3d3be 100644 --- a/web/src/i18n/locales/en-US.ts +++ b/web/src/i18n/locales/en-US.ts @@ -483,6 +483,9 @@ const enUS = { allComponents: 'All Components', requestPlugin: 'Request Plugin', viewDetails: 'View Details', + deprecated: 'Deprecated', + deprecatedTooltip: + 'Please install the corresponding Knowledge Engine plugin.', tags: { filterByTags: 'Filter by Tags', selected: 'selected', @@ -757,7 +760,7 @@ const enUS = { engineSettingsReadonly: 'read-only in edit mode', retrievalSettings: 'Retrieval Settings', noEnginesAvailable: 'No knowledge base engines available', - installEngineHint: 'Please install a knowledge base plugin first', + installEngineHint: 'Please install a "Knowledge Engine" plugin first', createKnowledgeBaseFailed: 'Failed to create knowledge base: ', loadKnowledgeBaseFailed: 'Failed to load knowledge base: ', deleteKnowledgeBaseFailed: 'Failed to delete knowledge base: ', diff --git a/web/src/i18n/locales/ja-JP.ts b/web/src/i18n/locales/ja-JP.ts index 4b529b35..e5de5b24 100644 --- a/web/src/i18n/locales/ja-JP.ts +++ b/web/src/i18n/locales/ja-JP.ts @@ -491,6 +491,9 @@ const jaJP = { noTags: 'タグがありません', }, viewDetails: '詳細を表示', + deprecated: '非推奨', + deprecatedTooltip: + '対応する「ナレッジエンジン」プラグインをインストールしてください。', }, mcp: { title: 'MCP', @@ -749,6 +752,9 @@ const jaJP = { fileName: 'ファイル名', noResults: '検索結果がありません', retrieveError: '検索に失敗しました:', + noEnginesAvailable: '利用可能なナレッジエンジンがありません', + installEngineHint: + '先に「ナレッジエンジン」プラグインをインストールしてください', unknownEngine: '不明なエンジン', loadKnowledgeBaseFailed: 'ナレッジベースの読み込みに失敗しました:', deleteKnowledgeBaseFailed: 'ナレッジベースの削除に失敗しました:', diff --git a/web/src/i18n/locales/zh-Hans.ts b/web/src/i18n/locales/zh-Hans.ts index 7e4661d9..7f2b86b5 100644 --- a/web/src/i18n/locales/zh-Hans.ts +++ b/web/src/i18n/locales/zh-Hans.ts @@ -468,6 +468,8 @@ const zhHans = { noTags: '暂无标签', }, viewDetails: '查看详情', + deprecated: '已弃用', + deprecatedTooltip: '请安装对应「知识引擎」插件', }, mcp: { title: 'MCP', @@ -726,7 +728,7 @@ const zhHans = { engineSettingsReadonly: '编辑模式下不可修改', retrievalSettings: '检索设置', noEnginesAvailable: '没有可用的知识库引擎', - installEngineHint: '请先安装知识库插件', + installEngineHint: '请先安装「知识引擎」插件', createKnowledgeBaseFailed: '知识库创建失败:', loadKnowledgeBaseFailed: '知识库加载失败:', deleteKnowledgeBaseFailed: '知识库删除失败:', diff --git a/web/src/i18n/locales/zh-Hant.ts b/web/src/i18n/locales/zh-Hant.ts index 87e691f9..4bef802b 100644 --- a/web/src/i18n/locales/zh-Hant.ts +++ b/web/src/i18n/locales/zh-Hant.ts @@ -461,6 +461,8 @@ const zhHant = { noTags: '暫無標籤', }, viewDetails: '查看詳情', + deprecated: '已棄用', + deprecatedTooltip: '請安裝對應「知識引擎」插件', }, mcp: { title: 'MCP', @@ -709,6 +711,8 @@ const zhHant = { fileName: '文檔名稱', noResults: '暫無結果', retrieveError: '檢索失敗:', + noEnginesAvailable: '沒有可用的知識庫引擎', + installEngineHint: '請先安裝「知識引擎」插件', unknownEngine: '未知引擎', loadKnowledgeBaseFailed: '知識庫載入失敗:', deleteKnowledgeBaseFailed: '知識庫刪除失敗:',