@lobehub/chat 1.66.6 → 1.67.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 (105) hide show
  1. package/.env.example +3 -3
  2. package/CHANGELOG.md +42 -0
  3. package/Dockerfile +3 -9
  4. package/Dockerfile.database +11 -11
  5. package/Dockerfile.pglite +3 -9
  6. package/README.md +17 -20
  7. package/README.zh-CN.md +6 -6
  8. package/changelog/v1.json +14 -0
  9. package/locales/ar/models.json +9 -3
  10. package/locales/ar/plugin.json +12 -0
  11. package/locales/bg-BG/models.json +9 -3
  12. package/locales/bg-BG/plugin.json +12 -0
  13. package/locales/de-DE/models.json +9 -3
  14. package/locales/de-DE/plugin.json +12 -0
  15. package/locales/en-US/models.json +9 -3
  16. package/locales/en-US/plugin.json +12 -0
  17. package/locales/es-ES/models.json +9 -3
  18. package/locales/es-ES/plugin.json +12 -0
  19. package/locales/fa-IR/models.json +9 -3
  20. package/locales/fa-IR/plugin.json +12 -0
  21. package/locales/fr-FR/models.json +9 -3
  22. package/locales/fr-FR/plugin.json +12 -0
  23. package/locales/it-IT/models.json +9 -3
  24. package/locales/it-IT/plugin.json +12 -0
  25. package/locales/ja-JP/models.json +9 -3
  26. package/locales/ja-JP/plugin.json +12 -0
  27. package/locales/ko-KR/models.json +9 -3
  28. package/locales/ko-KR/plugin.json +12 -0
  29. package/locales/nl-NL/models.json +9 -3
  30. package/locales/nl-NL/plugin.json +12 -0
  31. package/locales/pl-PL/models.json +9 -3
  32. package/locales/pl-PL/plugin.json +12 -0
  33. package/locales/pt-BR/models.json +9 -3
  34. package/locales/pt-BR/plugin.json +12 -0
  35. package/locales/ru-RU/models.json +9 -3
  36. package/locales/ru-RU/plugin.json +12 -0
  37. package/locales/tr-TR/models.json +9 -3
  38. package/locales/tr-TR/plugin.json +12 -0
  39. package/locales/vi-VN/models.json +9 -3
  40. package/locales/vi-VN/plugin.json +12 -0
  41. package/locales/zh-CN/models.json +9 -3
  42. package/locales/zh-CN/plugin.json +12 -0
  43. package/locales/zh-TW/models.json +9 -3
  44. package/locales/zh-TW/plugin.json +12 -0
  45. package/next.config.ts +3 -0
  46. package/package.json +5 -1
  47. package/packages/web-crawler/README.md +34 -0
  48. package/packages/web-crawler/package.json +13 -0
  49. package/packages/web-crawler/src/crawImpl/browserless.ts +62 -0
  50. package/packages/web-crawler/src/crawImpl/index.ts +11 -0
  51. package/packages/web-crawler/src/crawImpl/jina.ts +37 -0
  52. package/packages/web-crawler/src/crawImpl/naive.ts +84 -0
  53. package/packages/web-crawler/src/crawler.ts +66 -0
  54. package/packages/web-crawler/src/index.ts +2 -0
  55. package/packages/web-crawler/src/type.ts +42 -0
  56. package/packages/web-crawler/src/urlRules.ts +34 -0
  57. package/packages/web-crawler/src/utils/__snapshots__/htmlToMarkdown.test.ts.snap +638 -0
  58. package/packages/web-crawler/src/utils/appUrlRules.test.ts +26 -0
  59. package/packages/web-crawler/src/utils/appUrlRules.ts +40 -0
  60. package/packages/web-crawler/src/utils/errorType.ts +12 -0
  61. package/packages/web-crawler/src/utils/html/terms.html +1222 -0
  62. package/packages/web-crawler/src/utils/html/yingchao.html +1001 -0
  63. package/packages/web-crawler/src/utils/htmlToMarkdown.test.ts +35 -0
  64. package/packages/web-crawler/src/utils/htmlToMarkdown.ts +45 -0
  65. package/packages/web-crawler/tsconfig.json +20 -0
  66. package/pnpm-workspace.yaml +3 -0
  67. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +4 -35
  68. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +1 -1
  69. package/src/features/PluginsUI/Render/BuiltinType/index.tsx +3 -0
  70. package/src/features/PluginsUI/Render/index.tsx +1 -0
  71. package/src/features/Portal/Plugins/Body/ToolRender.tsx +1 -0
  72. package/src/locales/default/plugin.ts +12 -0
  73. package/src/server/routers/tools/search.ts +23 -0
  74. package/src/services/search.ts +8 -0
  75. package/src/store/chat/slices/builtinTool/actions/searXNG.ts +50 -0
  76. package/src/store/chat/slices/builtinTool/initialState.ts +1 -0
  77. package/src/tools/web-browsing/Portal/PageContent/index.tsx +190 -0
  78. package/src/tools/web-browsing/Portal/PageContents/index.tsx +23 -0
  79. package/src/tools/web-browsing/Portal/{ResultList → Search/ResultList}/SearchItem/Video.tsx +1 -1
  80. package/src/tools/web-browsing/Portal/Search/index.tsx +69 -0
  81. package/src/tools/web-browsing/Portal/index.tsx +28 -64
  82. package/src/tools/web-browsing/Render/PageContent/Loading.tsx +57 -0
  83. package/src/tools/web-browsing/Render/PageContent/Result.tsx +142 -0
  84. package/src/tools/web-browsing/Render/PageContent/index.tsx +41 -0
  85. package/src/tools/web-browsing/Render/{SearchQuery → Search/SearchQuery}/SearchView.tsx +1 -1
  86. package/src/tools/web-browsing/Render/{SearchQuery → Search/SearchQuery}/index.tsx +1 -1
  87. package/src/tools/web-browsing/Render/{SearchResult → Search/SearchResult}/ShowMore.tsx +1 -1
  88. package/src/tools/web-browsing/Render/Search/index.tsx +62 -0
  89. package/src/tools/web-browsing/Render/index.tsx +35 -44
  90. package/src/tools/web-browsing/index.ts +43 -47
  91. package/src/tools/web-browsing/systemRole.ts +109 -0
  92. package/src/types/tool/builtin.ts +2 -0
  93. package/src/types/tool/crawler.ts +19 -0
  94. package/src/types/tool/search.ts +1 -0
  95. /package/src/tools/web-browsing/Portal/{Footer.tsx → Search/Footer.tsx} +0 -0
  96. /package/src/tools/web-browsing/Portal/{ResultList → Search/ResultList}/SearchItem/CategoryAvatar.tsx +0 -0
  97. /package/src/tools/web-browsing/Portal/{ResultList → Search/ResultList}/SearchItem/TitleExtra.tsx +0 -0
  98. /package/src/tools/web-browsing/Portal/{ResultList → Search/ResultList}/SearchItem/index.tsx +0 -0
  99. /package/src/tools/web-browsing/Portal/{ResultList → Search/ResultList}/index.tsx +0 -0
  100. /package/src/tools/web-browsing/Render/{ConfigForm → Search/ConfigForm}/Form.tsx +0 -0
  101. /package/src/tools/web-browsing/Render/{ConfigForm → Search/ConfigForm}/SearchXNGIcon.tsx +0 -0
  102. /package/src/tools/web-browsing/Render/{ConfigForm → Search/ConfigForm}/index.tsx +0 -0
  103. /package/src/tools/web-browsing/Render/{ConfigForm → Search/ConfigForm}/style.tsx +0 -0
  104. /package/src/tools/web-browsing/Render/{SearchResult → Search/SearchResult}/SearchResultItem.tsx +0 -0
  105. /package/src/tools/web-browsing/Render/{SearchResult → Search/SearchResult}/index.tsx +0 -0
@@ -0,0 +1,40 @@
1
+ import { CrawlUrlRule } from '../type';
2
+
3
+ export const applyUrlRules = (
4
+ url: string,
5
+ urlRules: CrawlUrlRule[],
6
+ ): {
7
+ filterOptions?: CrawlUrlRule['filterOptions'];
8
+ transformedUrl: string;
9
+ } => {
10
+ for (const rule of urlRules) {
11
+ // 转换为正则表达式
12
+ const regex = new RegExp(rule.urlPattern);
13
+ const match = url.match(regex);
14
+
15
+ if (match) {
16
+ if (rule.urlTransform) {
17
+ // 如果有转换规则,进行 URL 转换
18
+ // 替换 $1, $2 等占位符为捕获组内容
19
+ const transformedUrl = rule.urlTransform.replaceAll(
20
+ /\$(\d+)/g,
21
+ (_, index) => match[parseInt(index)] || '',
22
+ );
23
+
24
+ return {
25
+ filterOptions: rule.filterOptions,
26
+ transformedUrl,
27
+ };
28
+ } else {
29
+ // 没有转换规则但匹配了模式,只返回过滤选项
30
+ return {
31
+ filterOptions: rule.filterOptions,
32
+ transformedUrl: url,
33
+ };
34
+ }
35
+ }
36
+ }
37
+
38
+ // 没有匹配任何规则,返回原始 URL
39
+ return { transformedUrl: url };
40
+ };
@@ -0,0 +1,12 @@
1
+ export class PageNotFoundError extends Error {
2
+ constructor(message: string) {
3
+ super(message);
4
+ this.name = 'PageNotFoundError';
5
+ }
6
+ }
7
+ export class NetworkConnectionError extends Error {
8
+ constructor() {
9
+ super('Network connection error');
10
+ this.name = 'NetworkConnectionError';
11
+ }
12
+ }