@lobehub/chat 0.114.6 → 0.114.8

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 (208) hide show
  1. package/.i18nrc.js +12 -12
  2. package/CHANGELOG.md +42 -0
  3. package/README.md +8 -8
  4. package/README.zh-CN.md +8 -8
  5. package/locales/{ru_RU → ru-RU}/setting.json +1 -1
  6. package/package.json +1 -1
  7. package/scripts/i18nWorkflow/const.ts +1 -2
  8. package/scripts/i18nWorkflow/genDefaultLocale.ts +2 -2
  9. package/scripts/i18nWorkflow/genDiff.ts +2 -2
  10. package/scripts/i18nWorkflow/index.ts +0 -4
  11. package/scripts/i18nWorkflow/utils.ts +0 -11
  12. package/src/app/chat/(desktop)/features/ChatInput/index.tsx +3 -3
  13. package/src/app/chat/(desktop)/index.tsx +1 -1
  14. package/src/app/chat/(mobile)/features/ChatInput/index.tsx +4 -4
  15. package/src/app/chat/(mobile)/mobile/index.tsx +1 -1
  16. package/src/app/chat/features/ChatHeader/ShareButton/Preview.tsx +1 -1
  17. package/src/locales/create.ts +25 -24
  18. package/src/locales/default/index.ts +23 -0
  19. package/src/locales/options.ts +2 -10
  20. package/src/locales/resources.ts +18 -0
  21. package/src/services/plugin.ts +4 -2
  22. package/scripts/i18nWorkflow/genResources.ts +0 -26
  23. package/src/locales/resources/de_DE.ts +0 -23
  24. package/src/locales/resources/en_US.ts +0 -23
  25. package/src/locales/resources/es_ES.ts +0 -23
  26. package/src/locales/resources/fr_FR.ts +0 -23
  27. package/src/locales/resources/index.ts +0 -31
  28. package/src/locales/resources/ja_JP.ts +0 -23
  29. package/src/locales/resources/ko_KR.ts +0 -23
  30. package/src/locales/resources/pt_BR.ts +0 -23
  31. package/src/locales/resources/ru_RU.ts +0 -23
  32. package/src/locales/resources/tr_TR.ts +0 -23
  33. package/src/locales/resources/zh_CN.ts +0 -23
  34. package/src/locales/resources/zh_TW.ts +0 -23
  35. /package/locales/{de_DE → de-DE}/chat.json +0 -0
  36. /package/locales/{de_DE → de-DE}/common.json +0 -0
  37. /package/locales/{de_DE → de-DE}/empty.json +0 -0
  38. /package/locales/{de_DE → de-DE}/error.json +0 -0
  39. /package/locales/{de_DE → de-DE}/market.json +0 -0
  40. /package/locales/{de_DE → de-DE}/migration.json +0 -0
  41. /package/locales/{de_DE → de-DE}/plugin.json +0 -0
  42. /package/locales/{de_DE → de-DE}/setting.json +0 -0
  43. /package/locales/{de_DE → de-DE}/welcome.json +0 -0
  44. /package/locales/{en_US → en-US}/chat.json +0 -0
  45. /package/locales/{en_US → en-US}/common.json +0 -0
  46. /package/locales/{en_US → en-US}/empty.json +0 -0
  47. /package/locales/{en_US → en-US}/error.json +0 -0
  48. /package/locales/{en_US → en-US}/market.json +0 -0
  49. /package/locales/{en_US → en-US}/migration.json +0 -0
  50. /package/locales/{en_US → en-US}/plugin.json +0 -0
  51. /package/locales/{en_US → en-US}/setting.json +0 -0
  52. /package/locales/{en_US → en-US}/welcome.json +0 -0
  53. /package/locales/{es_ES → es-ES}/chat.json +0 -0
  54. /package/locales/{es_ES → es-ES}/common.json +0 -0
  55. /package/locales/{es_ES → es-ES}/empty.json +0 -0
  56. /package/locales/{es_ES → es-ES}/error.json +0 -0
  57. /package/locales/{es_ES → es-ES}/market.json +0 -0
  58. /package/locales/{es_ES → es-ES}/migration.json +0 -0
  59. /package/locales/{es_ES → es-ES}/plugin.json +0 -0
  60. /package/locales/{es_ES → es-ES}/setting.json +0 -0
  61. /package/locales/{es_ES → es-ES}/welcome.json +0 -0
  62. /package/locales/{fr_FR → fr-FR}/chat.json +0 -0
  63. /package/locales/{fr_FR → fr-FR}/common.json +0 -0
  64. /package/locales/{fr_FR → fr-FR}/empty.json +0 -0
  65. /package/locales/{fr_FR → fr-FR}/error.json +0 -0
  66. /package/locales/{fr_FR → fr-FR}/market.json +0 -0
  67. /package/locales/{fr_FR → fr-FR}/migration.json +0 -0
  68. /package/locales/{fr_FR → fr-FR}/plugin.json +0 -0
  69. /package/locales/{fr_FR → fr-FR}/setting.json +0 -0
  70. /package/locales/{fr_FR → fr-FR}/welcome.json +0 -0
  71. /package/locales/{ja_JP → ja-JP}/chat.json +0 -0
  72. /package/locales/{ja_JP → ja-JP}/common.json +0 -0
  73. /package/locales/{ja_JP → ja-JP}/empty.json +0 -0
  74. /package/locales/{ja_JP → ja-JP}/error.json +0 -0
  75. /package/locales/{ja_JP → ja-JP}/market.json +0 -0
  76. /package/locales/{ja_JP → ja-JP}/migration.json +0 -0
  77. /package/locales/{ja_JP → ja-JP}/plugin.json +0 -0
  78. /package/locales/{ja_JP → ja-JP}/setting.json +0 -0
  79. /package/locales/{ja_JP → ja-JP}/welcome.json +0 -0
  80. /package/locales/{ko_KR → ko-KR}/chat.json +0 -0
  81. /package/locales/{ko_KR → ko-KR}/common.json +0 -0
  82. /package/locales/{ko_KR → ko-KR}/empty.json +0 -0
  83. /package/locales/{ko_KR → ko-KR}/error.json +0 -0
  84. /package/locales/{ko_KR → ko-KR}/market.json +0 -0
  85. /package/locales/{ko_KR → ko-KR}/migration.json +0 -0
  86. /package/locales/{ko_KR → ko-KR}/plugin.json +0 -0
  87. /package/locales/{ko_KR → ko-KR}/setting.json +0 -0
  88. /package/locales/{ko_KR → ko-KR}/welcome.json +0 -0
  89. /package/locales/{pt_BR → pt-BR}/chat.json +0 -0
  90. /package/locales/{pt_BR → pt-BR}/common.json +0 -0
  91. /package/locales/{pt_BR → pt-BR}/empty.json +0 -0
  92. /package/locales/{pt_BR → pt-BR}/error.json +0 -0
  93. /package/locales/{pt_BR → pt-BR}/market.json +0 -0
  94. /package/locales/{pt_BR → pt-BR}/migration.json +0 -0
  95. /package/locales/{pt_BR → pt-BR}/plugin.json +0 -0
  96. /package/locales/{pt_BR → pt-BR}/setting.json +0 -0
  97. /package/locales/{pt_BR → pt-BR}/welcome.json +0 -0
  98. /package/locales/{ru_RU → ru-RU}/chat.json +0 -0
  99. /package/locales/{ru_RU → ru-RU}/common.json +0 -0
  100. /package/locales/{ru_RU → ru-RU}/empty.json +0 -0
  101. /package/locales/{ru_RU → ru-RU}/error.json +0 -0
  102. /package/locales/{ru_RU → ru-RU}/market.json +0 -0
  103. /package/locales/{ru_RU → ru-RU}/migration.json +0 -0
  104. /package/locales/{ru_RU → ru-RU}/plugin.json +0 -0
  105. /package/locales/{ru_RU → ru-RU}/welcome.json +0 -0
  106. /package/locales/{tr_TR → tr-TR}/chat.json +0 -0
  107. /package/locales/{tr_TR → tr-TR}/common.json +0 -0
  108. /package/locales/{tr_TR → tr-TR}/empty.json +0 -0
  109. /package/locales/{tr_TR → tr-TR}/error.json +0 -0
  110. /package/locales/{tr_TR → tr-TR}/market.json +0 -0
  111. /package/locales/{tr_TR → tr-TR}/migration.json +0 -0
  112. /package/locales/{tr_TR → tr-TR}/plugin.json +0 -0
  113. /package/locales/{tr_TR → tr-TR}/setting.json +0 -0
  114. /package/locales/{tr_TR → tr-TR}/welcome.json +0 -0
  115. /package/locales/{zh_CN → zh-CN}/chat.json +0 -0
  116. /package/locales/{zh_CN → zh-CN}/common.json +0 -0
  117. /package/locales/{zh_CN → zh-CN}/empty.json +0 -0
  118. /package/locales/{zh_CN → zh-CN}/error.json +0 -0
  119. /package/locales/{zh_CN → zh-CN}/market.json +0 -0
  120. /package/locales/{zh_CN → zh-CN}/migration.json +0 -0
  121. /package/locales/{zh_CN → zh-CN}/plugin.json +0 -0
  122. /package/locales/{zh_CN → zh-CN}/setting.json +0 -0
  123. /package/locales/{zh_CN → zh-CN}/welcome.json +0 -0
  124. /package/locales/{zh_TW → zh-TW}/chat.json +0 -0
  125. /package/locales/{zh_TW → zh-TW}/common.json +0 -0
  126. /package/locales/{zh_TW → zh-TW}/empty.json +0 -0
  127. /package/locales/{zh_TW → zh-TW}/error.json +0 -0
  128. /package/locales/{zh_TW → zh-TW}/market.json +0 -0
  129. /package/locales/{zh_TW → zh-TW}/migration.json +0 -0
  130. /package/locales/{zh_TW → zh-TW}/plugin.json +0 -0
  131. /package/locales/{zh_TW → zh-TW}/setting.json +0 -0
  132. /package/locales/{zh_TW → zh-TW}/welcome.json +0 -0
  133. /package/src/{app/chat/features → features}/ChatInput/ActionBar/Clear.tsx +0 -0
  134. /package/src/{app/chat/features → features}/ChatInput/ActionBar/FileUpload.tsx +0 -0
  135. /package/src/{app/chat/features → features}/ChatInput/ActionBar/History.tsx +0 -0
  136. /package/src/{app/chat/features → features}/ChatInput/ActionBar/ModelSwitch.tsx +0 -0
  137. /package/src/{app/chat/features → features}/ChatInput/ActionBar/Temperature.tsx +0 -0
  138. /package/src/{app/chat/features → features}/ChatInput/ActionBar/Token/TokenTag.tsx +0 -0
  139. /package/src/{app/chat/features → features}/ChatInput/ActionBar/Token/index.tsx +0 -0
  140. /package/src/{app/chat/features → features}/ChatInput/ActionBar/Tools/ToolItem.tsx +0 -0
  141. /package/src/{app/chat/features → features}/ChatInput/ActionBar/Tools/index.tsx +0 -0
  142. /package/src/{app/chat/features → features}/ChatInput/ActionBar/config.ts +0 -0
  143. /package/src/{app/chat/features → features}/ChatInput/ActionBar/index.tsx +0 -0
  144. /package/src/{app/chat/features → features}/ChatInput/STT/index.tsx +0 -0
  145. /package/src/{app/chat/features → features}/ChatInput/Topic/index.tsx +0 -0
  146. /package/src/{app/chat/features → features}/ChatInput/useChatInput.ts +0 -0
  147. /package/src/{app/chat/features → features}/ChatInput/useSend.ts +0 -0
  148. /package/src/{app/chat/features → features}/Conversation/ChatList/Actions/Assistant.tsx +0 -0
  149. /package/src/{app/chat/features → features}/Conversation/ChatList/Actions/Error.tsx +0 -0
  150. /package/src/{app/chat/features → features}/Conversation/ChatList/Actions/Fallback.tsx +0 -0
  151. /package/src/{app/chat/features → features}/Conversation/ChatList/Actions/Function.tsx +0 -0
  152. /package/src/{app/chat/features → features}/Conversation/ChatList/Actions/User.tsx +0 -0
  153. /package/src/{app/chat/features → features}/Conversation/ChatList/Actions/customAction.ts +0 -0
  154. /package/src/{app/chat/features → features}/Conversation/ChatList/Actions/index.ts +0 -0
  155. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/ApiKeyForm.tsx +0 -0
  156. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/ErrorActionContainer.tsx +0 -0
  157. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/InvalidAccess.tsx +0 -0
  158. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/OpenAPIKey.tsx +0 -0
  159. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/OpenAiBizError.tsx +0 -0
  160. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/Plugin/PluginError.tsx +0 -0
  161. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/Plugin/PluginSettings.tsx +0 -0
  162. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/index.tsx +0 -0
  163. /package/src/{app/chat/features → features}/Conversation/ChatList/Error/style.tsx +0 -0
  164. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/Assistant.test.tsx +0 -0
  165. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/Assistant.tsx +0 -0
  166. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/ExtraContainer.tsx +0 -0
  167. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/TTS/FilePlayer.tsx +0 -0
  168. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/TTS/InitPlayer.tsx +0 -0
  169. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/TTS/Player.tsx +0 -0
  170. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/TTS/index.tsx +0 -0
  171. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/Translate.tsx +0 -0
  172. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/User.tsx +0 -0
  173. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/index.ts +0 -0
  174. /package/src/{app/chat/features → features}/Conversation/ChatList/Extras/type.ts +0 -0
  175. /package/src/{app/chat/features → features}/Conversation/ChatList/Loading.tsx +0 -0
  176. /package/src/{app/chat/features → features}/Conversation/ChatList/Messages/Assistant.tsx +0 -0
  177. /package/src/{app/chat/features → features}/Conversation/ChatList/Messages/Default.tsx +0 -0
  178. /package/src/{app/chat/features → features}/Conversation/ChatList/Messages/Function.tsx +0 -0
  179. /package/src/{app/chat/features → features}/Conversation/ChatList/Messages/User.tsx +0 -0
  180. /package/src/{app/chat/features → features}/Conversation/ChatList/Messages/index.ts +0 -0
  181. /package/src/{app/chat/features → features}/Conversation/ChatList/OTPInput.tsx +0 -0
  182. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Inspector/PluginResultJSON.tsx +0 -0
  183. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Inspector/Settings.tsx +0 -0
  184. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Inspector/index.tsx +0 -0
  185. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Inspector/style.ts +0 -0
  186. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/DefaultType/IFrameRender/index.tsx +0 -0
  187. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/DefaultType/SystemJsRender/index.tsx +0 -0
  188. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/DefaultType/SystemJsRender/utils.ts +0 -0
  189. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/DefaultType/index.tsx +0 -0
  190. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/StandaloneType/Iframe.tsx +0 -0
  191. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/StandaloneType/index.tsx +0 -0
  192. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/index.tsx +0 -0
  193. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/iframeOnReady.test.ts +0 -0
  194. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/iframeOnReady.ts +0 -0
  195. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/listenToPlugin.test.ts +0 -0
  196. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/listenToPlugin.ts +0 -0
  197. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/pluginSettings.test.ts +0 -0
  198. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/pluginSettings.ts +0 -0
  199. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/pluginState.test.ts +0 -0
  200. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/pluginState.ts +0 -0
  201. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/postMessage.test.ts +0 -0
  202. /package/src/{app/chat/features → features}/Conversation/ChatList/Plugins/Render/utils/postMessage.ts +0 -0
  203. /package/src/{app/chat/features → features}/Conversation/ChatList/SkeletonList.tsx +0 -0
  204. /package/src/{app/chat/features → features}/Conversation/ChatList/index.tsx +0 -0
  205. /package/src/{app/chat/features → features}/Conversation/ScrollAnchor/index.tsx +0 -0
  206. /package/src/{app/chat/features → features}/Conversation/ScrollAnchor/useAtBottom.ts +0 -0
  207. /package/src/{app/chat/features → features}/Conversation/index.tsx +0 -0
  208. /package/src/{app/chat/features → features}/Conversation/useInitConversation.ts +0 -0
package/.i18nrc.js CHANGED
@@ -1,20 +1,20 @@
1
1
  const { defineConfig } = require('@lobehub/i18n-cli');
2
2
 
3
3
  module.exports = defineConfig({
4
- entry: 'locales/zh_CN',
5
- entryLocale: 'zh_CN',
4
+ entry: 'locales/zh-CN',
5
+ entryLocale: 'zh-CN',
6
6
  output: 'locales',
7
7
  outputLocales: [
8
- 'zh_TW',
9
- 'en_US',
10
- 'ru_RU',
11
- 'ja_JP',
12
- 'ko_KR',
13
- 'fr_FR',
14
- 'tr_TR',
15
- 'es_ES',
16
- 'pt_BR',
17
- 'de_DE',
8
+ 'zh-TW',
9
+ 'en-US',
10
+ 'ru-RU',
11
+ 'ja-JP',
12
+ 'ko-KR',
13
+ 'fr-FR',
14
+ 'tr-TR',
15
+ 'es-ES',
16
+ 'pt-BR',
17
+ 'de-DE',
18
18
  ],
19
19
  temperature: 0,
20
20
  modelName: 'gpt-3.5-turbo-1106',
package/CHANGELOG.md CHANGED
@@ -2,6 +2,48 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 0.114.8](https://github.com/lobehub/lobe-chat/compare/v0.114.7...v0.114.8)
6
+
7
+ <sup>Released on **2023-12-22**</sup>
8
+
9
+ <br/>
10
+
11
+ <details>
12
+ <summary><kbd>Improvements and Fixes</kbd></summary>
13
+
14
+ </details>
15
+
16
+ <div align="right">
17
+
18
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
19
+
20
+ </div>
21
+
22
+ ### [Version 0.114.7](https://github.com/lobehub/lobe-chat/compare/v0.114.6...v0.114.7)
23
+
24
+ <sup>Released on **2023-12-22**</sup>
25
+
26
+ #### ♻ Code Refactoring
27
+
28
+ - **misc**: Move the conversation and chatInput to features folder.
29
+
30
+ <br/>
31
+
32
+ <details>
33
+ <summary><kbd>Improvements and Fixes</kbd></summary>
34
+
35
+ #### Code refactoring
36
+
37
+ - **misc**: Move the conversation and chatInput to features folder, closes [#750](https://github.com/lobehub/lobe-chat/issues/750) ([0334592](https://github.com/lobehub/lobe-chat/commit/0334592))
38
+
39
+ </details>
40
+
41
+ <div align="right">
42
+
43
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
44
+
45
+ </div>
46
+
5
47
  ### [Version 0.114.6](https://github.com/lobehub/lobe-chat/compare/v0.114.5...v0.114.6)
6
48
 
7
49
  <sup>Released on **2023-12-22**</sup>
package/README.md CHANGED
@@ -206,14 +206,14 @@ Our marketplace is not just a showcase platform but also a collaborative space.
206
206
 
207
207
  <!-- AGENT LIST -->
208
208
 
209
- | Recent Submits | Description |
210
- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
211
- | [Dream Painter](https://chat-preview.lobehub.com/market?agent=dream-painter)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A dream artist who can bring your dreams into reality.<br/>`txt-2-img` `painter` |
212
- | [NewsHub](https://chat-preview.lobehub.com/market?agent=news-hub)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A news search assistant proficient at finding and presenting relevant news<br/>`news` `search` `helper` |
213
- | [NewsNest](https://chat-preview.lobehub.com/market?agent=news-nest)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A news search assistant, can help you find and display relevant news based on your needs.<br/>`news` `search` |
214
- | [Research Assistant](https://chat-preview.lobehub.com/market?agent=research-assistant)<br/><sup>By **[ccsen](https://github.com/ccsen)** on **2023-12-19**</sup> | Capable of answering questions, conducting research, drafting content, and more, utilizing scientific research papers.<br/>`research-assistant` `literature-retrieval` `writing` `scientific-research` `citation` |
215
-
216
- > 📊 Total agents: [<kbd>**78**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
209
+ | Recent Submits | Description |
210
+ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
211
+ | [Facebook Ads Expert](https://chat-preview.lobehub.com/market?agent=facebook-ads-expert)<br/><sup>By **[alissonryan](https://github.com/alissonryan)** on **2023-12-20**</sup> | Create a Facebook Ads with a expert<br/>`copywriting` `facebook-ads` `lead-generation` |
212
+ | [Dream Painter](https://chat-preview.lobehub.com/market?agent=dream-painter)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A dream artist who can bring your dreams into reality.<br/>`txt-2-img` `painter` |
213
+ | [NewsHub](https://chat-preview.lobehub.com/market?agent=news-hub)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A news search assistant proficient at finding and presenting relevant news<br/>`news` `search` `helper` |
214
+ | [NewsNest](https://chat-preview.lobehub.com/market?agent=news-nest)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A news search assistant, can help you find and display relevant news based on your needs.<br/>`news` `search` |
215
+
216
+ > 📊 Total agents: [<kbd>**79**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
217
217
 
218
218
  <!-- AGENT LIST -->
219
219
 
package/README.zh-CN.md CHANGED
@@ -183,14 +183,14 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
183
183
 
184
184
  <!-- AGENT LIST -->
185
185
 
186
- | 最近新增 | 助手说明 |
187
- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
188
- | [梦境画家](https://chat-preview.lobehub.com/market?agent=dream-painter)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一位能将你的梦想变成现实的梦境艺术家。<br/>`txt-2-img` `painter` |
189
- | [NewsHub](https://chat-preview.lobehub.com/market?agent=news-hub)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一个新闻搜索助手,擅长查找和呈现相关新闻<br/>`新闻` `搜索` `助手` |
190
- | [NewsNest](https://chat-preview.lobehub.com/market?agent=news-nest)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一个新闻搜索助手,可以根据您的需求帮助您查找和显示相关新闻。<br/>`新闻` `搜索` |
191
- | [研究助理](https://chat-preview.lobehub.com/market?agent=research-assistant)<br/><sup>By **[ccsen](https://github.com/ccsen)** on **2023-12-19**</sup> | 能够回答问题,进行研究,起草内容等,利用科学研究论文。<br/>`research-assistant` `literature-retrieval` `writing` `scientific-research` `citation` |
192
-
193
- > 📊 Total agents: [<kbd>**78**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
186
+ | 最近新增 | 助手说明 |
187
+ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
188
+ | [Facebook 广告专家](https://chat-preview.lobehub.com/market?agent=facebook-ads-expert)<br/><sup>By **[alissonryan](https://github.com/alissonryan)** on **2023-12-20**</sup> | 与专家一起创建 Facebook 广告<br/>`文案撰写` `facebook广告` `潜在客户生成` |
189
+ | [梦境画家](https://chat-preview.lobehub.com/market?agent=dream-painter)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一位能将你的梦想变成现实的梦境艺术家。<br/>`txt-2-img` `painter` |
190
+ | [NewsHub](https://chat-preview.lobehub.com/market?agent=news-hub)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一个新闻搜索助手,擅长查找和呈现相关新闻<br/>`新闻` `搜索` `助手` |
191
+ | [NewsNest](https://chat-preview.lobehub.com/market?agent=news-nest)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一个新闻搜索助手,可以根据您的需求帮助您查找和显示相关新闻。<br/>`新闻` `搜索` |
192
+
193
+ > 📊 Total agents: [<kbd>**79**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
194
194
 
195
195
  <!-- AGENT LIST -->
196
196
 
@@ -303,4 +303,4 @@
303
303
  },
304
304
  "title": "Дополнительные инструменты"
305
305
  }
306
- }
306
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "0.114.6",
3
+ "version": "0.114.8",
4
4
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -13,7 +13,6 @@ export const entryLocaleJsonFilepath = (file: string) =>
13
13
  resolve(localesDir, i18nConfig.entryLocale, file);
14
14
  export const outputLocaleJsonFilepath = (locale: string, file: string) =>
15
15
  resolve(localesDir, locale, file);
16
- export const srcLocalesResources = resolve(root, srcLocalesDir, 'resources');
17
- export const localesResourcesFilepath = (locale: string) => resolve(srcLocalesResources, locale);
16
+ export const srcDefaultLocales = resolve(root, srcLocalesDir, 'default');
18
17
 
19
18
  export { default as i18nConfig } from '../../.i18nrc';
@@ -1,13 +1,13 @@
1
1
  import { consola } from 'consola';
2
2
  import { colors } from 'consola/utils';
3
3
 
4
- import { entryLocaleJsonFilepath, i18nConfig, localesResourcesFilepath } from './const';
4
+ import { entryLocaleJsonFilepath, i18nConfig, srcDefaultLocales } from './const';
5
5
  import { tagWhite, writeJSON } from './utils';
6
6
 
7
7
  export const genDefaultLocale = () => {
8
8
  consola.info(`Default locale is ${i18nConfig.entryLocale}...`);
9
9
 
10
- const resources = require(localesResourcesFilepath(i18nConfig.entryLocale));
10
+ const resources = require(srcDefaultLocales);
11
11
  const data = Object.entries(resources.default);
12
12
  consola.start(`Generate default locale json, found ${data.length} namespaces...`);
13
13
 
@@ -7,15 +7,15 @@ import { existsSync } from 'node:fs';
7
7
  import {
8
8
  entryLocaleJsonFilepath,
9
9
  i18nConfig,
10
- localesResourcesFilepath,
11
10
  outputLocaleJsonFilepath,
11
+ srcDefaultLocales,
12
12
  } from './const';
13
13
  import { readJSON, tagWhite, writeJSON } from './utils';
14
14
 
15
15
  export const genDiff = () => {
16
16
  consola.start(`Diff between Dev/Prod local...`);
17
17
 
18
- const resources = require(localesResourcesFilepath(i18nConfig.entryLocale));
18
+ const resources = require(srcDefaultLocales);
19
19
  const data = Object.entries(resources.default);
20
20
 
21
21
  for (const [ns, devJSON] of data) {
@@ -1,6 +1,5 @@
1
1
  import { genDefaultLocale } from './genDefaultLocale';
2
2
  import { genDiff } from './genDiff';
3
- import { genResources } from './genResources';
4
3
  import { split } from './utils';
5
4
 
6
5
  split('DIFF ANALYSIS');
@@ -9,7 +8,4 @@ genDiff();
9
8
  split('GENERATE DEFAULT LOCALE');
10
9
  genDefaultLocale();
11
10
 
12
- split('GENERATE RESOURCE & TOC');
13
- genResources();
14
-
15
11
  split('GENERATE I18N FILES');
@@ -1,11 +1,9 @@
1
1
  import { consola } from 'consola';
2
2
  import { colors } from 'consola/utils';
3
- import { tocForResources } from 'i18next-resources-for-ts';
4
3
  import { readFileSync, writeFileSync } from 'node:fs';
5
4
  import { resolve } from 'node:path';
6
5
 
7
6
  import i18nConfig from '../../.i18nrc';
8
- import { srcLocalesResources } from './const';
9
7
 
10
8
  export const readJSON = (filePath: string) => {
11
9
  const data = readFileSync(filePath, 'utf8');
@@ -48,15 +46,6 @@ export const genNamespaceList = (files: string[], locale: string) => {
48
46
  }));
49
47
  };
50
48
 
51
- export const genToc = (files: string[], locale: string) => {
52
- const ns = genNamespaceList(files, locale);
53
- let toc = tocForResources(ns, srcLocalesResources).replaceAll('\\', '/');
54
- if (locale === i18nConfig.entryLocale) {
55
- toc = toc.replaceAll('.json', '').replaceAll('../../../locales/zh_CN', '../default');
56
- }
57
- return toc;
58
- };
59
-
60
49
  export const tagBlue = (text: string) => colors.bgBlueBright(colors.black(` ${text} `));
61
50
  export const tagYellow = (text: string) => colors.bgYellowBright(colors.black(` ${text} `));
62
51
  export const tagGreen = (text: string) => colors.bgGreenBright(colors.black(` ${text} `));
@@ -3,14 +3,14 @@ import { Maximize2, Minimize2 } from 'lucide-react';
3
3
  import { memo, useCallback, useMemo } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
5
 
6
- import ActionBar from '@/app/chat/features/ChatInput/ActionBar';
7
- import SaveTopic from '@/app/chat/features/ChatInput/Topic';
8
- import { useChatInput } from '@/app/chat/features/ChatInput/useChatInput';
9
6
  import {
10
7
  CHAT_TEXTAREA_HEIGHT,
11
8
  CHAT_TEXTAREA_MAX_HEIGHT,
12
9
  HEADER_HEIGHT,
13
10
  } from '@/const/layoutTokens';
11
+ import ActionBar from '@/features/ChatInput/ActionBar';
12
+ import SaveTopic from '@/features/ChatInput/Topic';
13
+ import { useChatInput } from '@/features/ChatInput/useChatInput';
14
14
 
15
15
  import DragUpload from './DragUpload';
16
16
  import { LocalFiles } from './LocalFiles';
@@ -5,8 +5,8 @@ import { FC, memo } from 'react';
5
5
  import { Flexbox } from 'react-layout-kit';
6
6
 
7
7
  import ResponsiveIndex from '@/components/ResponsiveIndex';
8
+ import Conversation from '@/features/Conversation';
8
9
 
9
- import Conversation from '../features/Conversation';
10
10
  import PageTitle from '../features/PageTitle';
11
11
  import ChatHeader from './features/ChatHeader';
12
12
  import ChatInput from './features/ChatInput';
@@ -3,10 +3,10 @@ import { useTheme } from 'antd-style';
3
3
  import { memo } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
5
 
6
- import ActionBar from '@/app/chat/features/ChatInput/ActionBar';
7
- import STT from '@/app/chat/features/ChatInput/STT';
8
- import SaveTopic from '@/app/chat/features/ChatInput/Topic';
9
- import { useChatInput } from '@/app/chat/features/ChatInput/useChatInput';
6
+ import ActionBar from '@/features/ChatInput/ActionBar';
7
+ import STT from '@/features/ChatInput/STT';
8
+ import SaveTopic from '@/features/ChatInput/Topic';
9
+ import { useChatInput } from '@/features/ChatInput/useChatInput';
10
10
 
11
11
  import Files from './Files';
12
12
 
@@ -4,9 +4,9 @@ import dynamic from 'next/dynamic';
4
4
  import { memo } from 'react';
5
5
  import { Flexbox } from 'react-layout-kit';
6
6
 
7
+ import Conversation from '@/features/Conversation';
7
8
  import { useSessionStore } from '@/store/session';
8
9
 
9
- import Conversation from '../../features/Conversation';
10
10
  import ChatInput from '../features/ChatInput';
11
11
  import Layout from './layout.mobile';
12
12
 
@@ -8,7 +8,7 @@ import { useTranslation } from 'react-i18next';
8
8
  import { Flexbox } from 'react-layout-kit';
9
9
 
10
10
  import pkg from '@/../package.json';
11
- import ChatList from '@/app/chat/features/Conversation/ChatList';
11
+ import ChatList from '@/features/Conversation/ChatList';
12
12
  import { useSessionStore } from '@/store/session';
13
13
  import { agentSelectors, sessionSelectors } from '@/store/session/selectors';
14
14
 
@@ -1,43 +1,46 @@
1
1
  import i18n from 'i18next';
2
2
  import LanguageDetector from 'i18next-browser-languagedetector';
3
+ import resourcesToBackend from 'i18next-resources-to-backend';
3
4
  import { initReactI18next } from 'react-i18next';
4
5
 
5
6
  import { getClientConfig } from '@/config/client';
6
7
  import { DEFAULT_LANG, LOBE_LOCALE_COOKIE } from '@/const/locale';
7
8
  import { COOKIE_CACHE_DAYS } from '@/const/settings';
8
- import type { Namespaces } from '@/types/locale';
9
- import { isOnServerSide } from '@/utils/env';
10
-
11
- import { resources } from './options';
9
+ import { isDev, isOnServerSide } from '@/utils/env';
12
10
 
13
11
  const { I18N_DEBUG, I18N_DEBUG_BROWSER, I18N_DEBUG_SERVER } = getClientConfig();
14
12
  const debugMode = I18N_DEBUG ?? isOnServerSide ? I18N_DEBUG_SERVER : I18N_DEBUG_BROWSER;
15
13
 
16
14
  export const createI18nNext = (lang?: string) => {
17
- const ns: Namespaces[] = [
18
- 'error',
19
- 'common',
20
- 'empty',
21
- 'error',
22
- 'market',
23
- 'plugin',
24
- 'setting',
25
- 'welcome',
26
- ];
15
+ const instance = i18n
16
+ .use(initReactI18next)
17
+ .use(LanguageDetector)
18
+ .use(
19
+ resourcesToBackend(async (lng: string, ns: string) => {
20
+ switch (lng) {
21
+ case 'zh-CN':
22
+ case 'zh': {
23
+ if (isDev) return import(`./default/${ns}`);
24
+
25
+ return import(`@/../locales/zh-CN/${ns}.json`);
26
+ }
27
27
 
28
- const instance = i18n.use(initReactI18next).use(LanguageDetector);
29
- // not find a good way to handle suspense loading
30
- // .use(
31
- // resourcesToBackend(
32
- // isDev ? resources : (lng: string, ns: string) => import(`../../locales/${lng}/${ns}.json`),
33
- // ),
34
- // )
28
+ case 'en': {
29
+ return import(`@/../locales/en-US/${ns}.json`);
30
+ }
31
+
32
+ default: {
33
+ return import(`@/../locales/${lng}/${ns}.json`);
34
+ }
35
+ }
36
+ }),
37
+ );
35
38
 
36
39
  return {
37
40
  init: () =>
38
41
  instance.init({
39
42
  debug: debugMode,
40
- defaultNS: ['error', 'common'],
43
+ defaultNS: ['error', 'common', 'empty'],
41
44
  detection: {
42
45
  caches: ['cookie'],
43
46
  cookieMinutes: 60 * 24 * COOKIE_CACHE_DAYS,
@@ -48,8 +51,6 @@ export const createI18nNext = (lang?: string) => {
48
51
  escapeValue: false,
49
52
  },
50
53
  lng: lang,
51
- ns,
52
- resources,
53
54
  }),
54
55
  instance,
55
56
  };
@@ -0,0 +1,23 @@
1
+ import chat from './chat';
2
+ import common from './common';
3
+ import empty from './empty';
4
+ import error from './error';
5
+ import market from './market';
6
+ import migration from './migration';
7
+ import plugin from './plugin';
8
+ import setting from './setting';
9
+ import welcome from './welcome';
10
+
11
+ const resources = {
12
+ chat,
13
+ common,
14
+ empty,
15
+ error,
16
+ market,
17
+ migration,
18
+ plugin,
19
+ setting,
20
+ welcome,
21
+ } as const;
22
+
23
+ export default resources;
@@ -1,6 +1,6 @@
1
1
  import type { Locales } from '@/types/locale';
2
2
 
3
- import _resources from './resources';
3
+ import { locales } from './resources';
4
4
 
5
5
  type LocaleOptions = {
6
6
  label: string;
@@ -54,12 +54,4 @@ export const localeOptions: LocaleOptions = [
54
54
  },
55
55
  ] as LocaleOptions;
56
56
 
57
- export const supportLangs: string[] = localeOptions.map((i) => i.value);
58
-
59
- export const resources = {
60
- ..._resources,
61
- en: _resources['en-US'],
62
- zh: _resources['zh-CN'],
63
- };
64
-
65
- export const supportLocales = Object.keys(resources);
57
+ export const supportLocales: string[] = [...locales, 'en', 'zh'];
@@ -0,0 +1,18 @@
1
+ import resources from './default';
2
+
3
+ export const locales = [
4
+ 'de-DE',
5
+ 'en-US',
6
+ 'es-ES',
7
+ 'fr-FR',
8
+ 'ja-JP',
9
+ 'ko-KR',
10
+ 'pt-BR',
11
+ 'ru-RU',
12
+ 'tr-TR',
13
+ 'zh-CN',
14
+ 'zh-TW',
15
+ ] as const;
16
+
17
+ export type DefaultResources = typeof resources;
18
+ export type Locales = (typeof locales)[number];
@@ -3,8 +3,6 @@ import {
3
3
  LobeChatPluginsMarketIndex,
4
4
  pluginManifestSchema,
5
5
  } from '@lobehub/chat-plugin-sdk';
6
- import { OpenAPIConvertor } from '@lobehub/chat-plugin-sdk/openapi';
7
- import YAML from 'yaml';
8
6
 
9
7
  import { getPluginIndexJSON } from '@/const/url';
10
8
  import { PluginModel } from '@/database/models/plugin';
@@ -40,6 +38,8 @@ class PluginService {
40
38
  if (contentType === 'application/json') {
41
39
  data = await res.json();
42
40
  } else {
41
+ const { default: YAML } = await import('yaml');
42
+
43
43
  const yaml = await res.text();
44
44
  data = YAML.parse(yaml);
45
45
  }
@@ -94,6 +94,8 @@ class PluginService {
94
94
  const openapiJson = await this._fetchJSON(parser.data.openapi, useProxy);
95
95
 
96
96
  try {
97
+ const { OpenAPIConvertor } = await import('@lobehub/chat-plugin-sdk/openapi');
98
+
97
99
  const convertor = new OpenAPIConvertor(openapiJson);
98
100
  const openAPIs = await convertor.convertOpenAPIToPluginSchema();
99
101
  data.api = [...data.api, ...openAPIs];
@@ -1,26 +0,0 @@
1
- import { consola } from 'consola';
2
- import { colors } from 'consola/utils';
3
- import { writeFileSync } from 'node:fs';
4
-
5
- import { i18nConfig, localeDirJsonList, localesResourcesFilepath } from './const';
6
- import { genResourcesContent, genToc, tagBlue, tagGreen } from './utils';
7
-
8
- const locales = [i18nConfig.entryLocale, ...i18nConfig.outputLocales];
9
-
10
- export const genResources = () => {
11
- consola.start(`Generate locale resources and types, found ${locales.length} locales...`);
12
-
13
- for (const locale of locales) {
14
- const files = localeDirJsonList(locale);
15
- const toc = genToc(files, locale);
16
-
17
- const filepath = localesResourcesFilepath(`${locale}.ts`);
18
- writeFileSync(filepath, toc);
19
- consola.success(tagBlue(locale), colors.gray(filepath));
20
- }
21
-
22
- const indexFilepath = localesResourcesFilepath(`index.ts`);
23
- writeFileSync(indexFilepath, genResourcesContent(locales));
24
-
25
- consola.success(tagGreen('INDEX'), colors.gray(indexFilepath));
26
- };
@@ -1,23 +0,0 @@
1
- import chat from '../../../locales/de_DE/chat.json';
2
- import common from '../../../locales/de_DE/common.json';
3
- import empty from '../../../locales/de_DE/empty.json';
4
- import error from '../../../locales/de_DE/error.json';
5
- import market from '../../../locales/de_DE/market.json';
6
- import migration from '../../../locales/de_DE/migration.json';
7
- import plugin from '../../../locales/de_DE/plugin.json';
8
- import setting from '../../../locales/de_DE/setting.json';
9
- import welcome from '../../../locales/de_DE/welcome.json';
10
-
11
- const resources = {
12
- chat,
13
- common,
14
- empty,
15
- error,
16
- market,
17
- migration,
18
- plugin,
19
- setting,
20
- welcome,
21
- } as const;
22
-
23
- export default resources;
@@ -1,23 +0,0 @@
1
- import chat from '../../../locales/en_US/chat.json';
2
- import common from '../../../locales/en_US/common.json';
3
- import empty from '../../../locales/en_US/empty.json';
4
- import error from '../../../locales/en_US/error.json';
5
- import market from '../../../locales/en_US/market.json';
6
- import migration from '../../../locales/en_US/migration.json';
7
- import plugin from '../../../locales/en_US/plugin.json';
8
- import setting from '../../../locales/en_US/setting.json';
9
- import welcome from '../../../locales/en_US/welcome.json';
10
-
11
- const resources = {
12
- chat,
13
- common,
14
- empty,
15
- error,
16
- market,
17
- migration,
18
- plugin,
19
- setting,
20
- welcome,
21
- } as const;
22
-
23
- export default resources;
@@ -1,23 +0,0 @@
1
- import chat from '../../../locales/es_ES/chat.json';
2
- import common from '../../../locales/es_ES/common.json';
3
- import empty from '../../../locales/es_ES/empty.json';
4
- import error from '../../../locales/es_ES/error.json';
5
- import market from '../../../locales/es_ES/market.json';
6
- import migration from '../../../locales/es_ES/migration.json';
7
- import plugin from '../../../locales/es_ES/plugin.json';
8
- import setting from '../../../locales/es_ES/setting.json';
9
- import welcome from '../../../locales/es_ES/welcome.json';
10
-
11
- const resources = {
12
- chat,
13
- common,
14
- empty,
15
- error,
16
- market,
17
- migration,
18
- plugin,
19
- setting,
20
- welcome,
21
- } as const;
22
-
23
- export default resources;
@@ -1,23 +0,0 @@
1
- import chat from '../../../locales/fr_FR/chat.json';
2
- import common from '../../../locales/fr_FR/common.json';
3
- import empty from '../../../locales/fr_FR/empty.json';
4
- import error from '../../../locales/fr_FR/error.json';
5
- import market from '../../../locales/fr_FR/market.json';
6
- import migration from '../../../locales/fr_FR/migration.json';
7
- import plugin from '../../../locales/fr_FR/plugin.json';
8
- import setting from '../../../locales/fr_FR/setting.json';
9
- import welcome from '../../../locales/fr_FR/welcome.json';
10
-
11
- const resources = {
12
- chat,
13
- common,
14
- empty,
15
- error,
16
- market,
17
- migration,
18
- plugin,
19
- setting,
20
- welcome,
21
- } as const;
22
-
23
- export default resources;
@@ -1,31 +0,0 @@
1
- import de_DE from './de_DE';
2
- import en_US from './en_US';
3
- import es_ES from './es_ES';
4
- import fr_FR from './fr_FR';
5
- import ja_JP from './ja_JP';
6
- import ko_KR from './ko_KR';
7
- import pt_BR from './pt_BR';
8
- import ru_RU from './ru_RU';
9
- import tr_TR from './tr_TR';
10
- import zh_CN from './zh_CN';
11
- import zh_TW from './zh_TW';
12
-
13
- const resources = {
14
- 'de-DE': de_DE,
15
- 'en-US': en_US,
16
- 'es-ES': es_ES,
17
- 'fr-FR': fr_FR,
18
- 'ja-JP': ja_JP,
19
- 'ko-KR': ko_KR,
20
- 'pt-BR': pt_BR,
21
- 'ru-RU': ru_RU,
22
- 'tr-TR': tr_TR,
23
- 'zh-CN': zh_CN,
24
- 'zh-TW': zh_TW,
25
- } as const;
26
- export default resources;
27
- export const defaultResources = zh_CN;
28
- export type Resources = typeof resources;
29
- export type DefaultResources = typeof defaultResources;
30
- export type Namespaces = keyof DefaultResources;
31
- export type Locales = keyof Resources;