@lobehub/chat 1.98.2 → 1.99.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 (458) hide show
  1. package/.cursor/rules/backend-architecture.mdc +93 -17
  2. package/.cursor/rules/cursor-ux.mdc +45 -35
  3. package/.cursor/rules/project-introduce.mdc +72 -6
  4. package/.cursor/rules/rules-attach.mdc +16 -7
  5. package/.eslintrc.js +10 -0
  6. package/CHANGELOG.md +44 -0
  7. package/apps/desktop/README.md +7 -0
  8. package/apps/desktop/electron-builder.js +5 -0
  9. package/apps/desktop/package.json +2 -1
  10. package/apps/desktop/src/main/appBrowsers.ts +1 -1
  11. package/apps/desktop/src/main/const/dir.ts +3 -0
  12. package/apps/desktop/src/main/controllers/UploadFileCtr.ts +13 -8
  13. package/apps/desktop/src/main/core/App.ts +8 -0
  14. package/apps/desktop/src/main/core/BrowserManager.ts +5 -2
  15. package/apps/desktop/src/main/core/StaticFileServerManager.ts +221 -0
  16. package/apps/desktop/src/main/services/fileSrv.ts +231 -44
  17. package/apps/desktop/src/main/utils/next-electron-rsc.ts +36 -5
  18. package/changelog/v1.json +14 -0
  19. package/docs/development/database-schema.dbml +70 -0
  20. package/locales/ar/common.json +2 -0
  21. package/locales/ar/components.json +35 -0
  22. package/locales/ar/error.json +2 -0
  23. package/locales/ar/image.json +100 -0
  24. package/locales/ar/metadata.json +4 -0
  25. package/locales/ar/modelProvider.json +1 -0
  26. package/locales/ar/models.json +15 -0
  27. package/locales/ar/plugin.json +22 -0
  28. package/locales/ar/providers.json +3 -0
  29. package/locales/ar/setting.json +5 -0
  30. package/locales/bg-BG/common.json +2 -0
  31. package/locales/bg-BG/components.json +35 -0
  32. package/locales/bg-BG/error.json +2 -0
  33. package/locales/bg-BG/image.json +100 -0
  34. package/locales/bg-BG/metadata.json +4 -0
  35. package/locales/bg-BG/modelProvider.json +1 -0
  36. package/locales/bg-BG/models.json +15 -0
  37. package/locales/bg-BG/plugin.json +22 -0
  38. package/locales/bg-BG/providers.json +3 -0
  39. package/locales/bg-BG/setting.json +5 -0
  40. package/locales/de-DE/common.json +2 -0
  41. package/locales/de-DE/components.json +35 -0
  42. package/locales/de-DE/error.json +2 -0
  43. package/locales/de-DE/image.json +100 -0
  44. package/locales/de-DE/metadata.json +4 -0
  45. package/locales/de-DE/modelProvider.json +1 -0
  46. package/locales/de-DE/models.json +15 -0
  47. package/locales/de-DE/plugin.json +22 -0
  48. package/locales/de-DE/providers.json +3 -0
  49. package/locales/de-DE/setting.json +5 -0
  50. package/locales/en-US/common.json +2 -0
  51. package/locales/en-US/components.json +35 -0
  52. package/locales/en-US/error.json +2 -0
  53. package/locales/en-US/image.json +100 -0
  54. package/locales/en-US/metadata.json +4 -0
  55. package/locales/en-US/modelProvider.json +1 -0
  56. package/locales/en-US/models.json +15 -0
  57. package/locales/en-US/plugin.json +22 -0
  58. package/locales/en-US/providers.json +3 -0
  59. package/locales/en-US/setting.json +5 -0
  60. package/locales/es-ES/common.json +2 -0
  61. package/locales/es-ES/components.json +35 -0
  62. package/locales/es-ES/error.json +2 -0
  63. package/locales/es-ES/image.json +100 -0
  64. package/locales/es-ES/metadata.json +4 -0
  65. package/locales/es-ES/modelProvider.json +1 -0
  66. package/locales/es-ES/models.json +15 -0
  67. package/locales/es-ES/plugin.json +22 -0
  68. package/locales/es-ES/providers.json +3 -0
  69. package/locales/es-ES/setting.json +5 -0
  70. package/locales/fa-IR/common.json +2 -0
  71. package/locales/fa-IR/components.json +35 -0
  72. package/locales/fa-IR/error.json +2 -0
  73. package/locales/fa-IR/image.json +100 -0
  74. package/locales/fa-IR/metadata.json +4 -0
  75. package/locales/fa-IR/modelProvider.json +1 -0
  76. package/locales/fa-IR/models.json +15 -0
  77. package/locales/fa-IR/plugin.json +22 -0
  78. package/locales/fa-IR/providers.json +3 -0
  79. package/locales/fa-IR/setting.json +5 -0
  80. package/locales/fr-FR/common.json +2 -0
  81. package/locales/fr-FR/components.json +35 -0
  82. package/locales/fr-FR/error.json +2 -0
  83. package/locales/fr-FR/image.json +100 -0
  84. package/locales/fr-FR/metadata.json +4 -0
  85. package/locales/fr-FR/modelProvider.json +1 -0
  86. package/locales/fr-FR/models.json +15 -0
  87. package/locales/fr-FR/plugin.json +22 -0
  88. package/locales/fr-FR/providers.json +3 -0
  89. package/locales/fr-FR/setting.json +5 -0
  90. package/locales/it-IT/common.json +2 -0
  91. package/locales/it-IT/components.json +35 -0
  92. package/locales/it-IT/error.json +2 -0
  93. package/locales/it-IT/image.json +100 -0
  94. package/locales/it-IT/metadata.json +4 -0
  95. package/locales/it-IT/modelProvider.json +1 -0
  96. package/locales/it-IT/models.json +15 -0
  97. package/locales/it-IT/plugin.json +22 -0
  98. package/locales/it-IT/providers.json +3 -0
  99. package/locales/it-IT/setting.json +5 -0
  100. package/locales/ja-JP/common.json +2 -0
  101. package/locales/ja-JP/components.json +35 -0
  102. package/locales/ja-JP/error.json +2 -0
  103. package/locales/ja-JP/image.json +100 -0
  104. package/locales/ja-JP/metadata.json +4 -0
  105. package/locales/ja-JP/modelProvider.json +1 -0
  106. package/locales/ja-JP/models.json +15 -0
  107. package/locales/ja-JP/plugin.json +22 -0
  108. package/locales/ja-JP/providers.json +3 -0
  109. package/locales/ja-JP/setting.json +5 -0
  110. package/locales/ko-KR/common.json +2 -0
  111. package/locales/ko-KR/components.json +35 -0
  112. package/locales/ko-KR/error.json +2 -0
  113. package/locales/ko-KR/image.json +100 -0
  114. package/locales/ko-KR/metadata.json +4 -0
  115. package/locales/ko-KR/modelProvider.json +1 -0
  116. package/locales/ko-KR/models.json +15 -0
  117. package/locales/ko-KR/plugin.json +22 -0
  118. package/locales/ko-KR/providers.json +3 -0
  119. package/locales/ko-KR/setting.json +5 -0
  120. package/locales/nl-NL/common.json +2 -0
  121. package/locales/nl-NL/components.json +35 -0
  122. package/locales/nl-NL/error.json +2 -0
  123. package/locales/nl-NL/image.json +100 -0
  124. package/locales/nl-NL/metadata.json +4 -0
  125. package/locales/nl-NL/modelProvider.json +1 -0
  126. package/locales/nl-NL/models.json +15 -0
  127. package/locales/nl-NL/plugin.json +22 -0
  128. package/locales/nl-NL/providers.json +3 -0
  129. package/locales/nl-NL/setting.json +5 -0
  130. package/locales/pl-PL/common.json +2 -0
  131. package/locales/pl-PL/components.json +35 -0
  132. package/locales/pl-PL/error.json +2 -0
  133. package/locales/pl-PL/image.json +100 -0
  134. package/locales/pl-PL/metadata.json +4 -0
  135. package/locales/pl-PL/modelProvider.json +1 -0
  136. package/locales/pl-PL/models.json +15 -0
  137. package/locales/pl-PL/plugin.json +22 -0
  138. package/locales/pl-PL/providers.json +3 -0
  139. package/locales/pl-PL/setting.json +5 -0
  140. package/locales/pt-BR/common.json +2 -0
  141. package/locales/pt-BR/components.json +35 -0
  142. package/locales/pt-BR/error.json +2 -0
  143. package/locales/pt-BR/image.json +100 -0
  144. package/locales/pt-BR/metadata.json +4 -0
  145. package/locales/pt-BR/modelProvider.json +1 -0
  146. package/locales/pt-BR/models.json +15 -0
  147. package/locales/pt-BR/plugin.json +22 -0
  148. package/locales/pt-BR/providers.json +3 -0
  149. package/locales/pt-BR/setting.json +5 -0
  150. package/locales/ru-RU/common.json +2 -0
  151. package/locales/ru-RU/components.json +35 -0
  152. package/locales/ru-RU/error.json +2 -0
  153. package/locales/ru-RU/image.json +100 -0
  154. package/locales/ru-RU/metadata.json +4 -0
  155. package/locales/ru-RU/modelProvider.json +1 -0
  156. package/locales/ru-RU/models.json +15 -0
  157. package/locales/ru-RU/plugin.json +22 -0
  158. package/locales/ru-RU/providers.json +3 -0
  159. package/locales/ru-RU/setting.json +5 -0
  160. package/locales/tr-TR/common.json +2 -0
  161. package/locales/tr-TR/components.json +35 -0
  162. package/locales/tr-TR/error.json +2 -0
  163. package/locales/tr-TR/image.json +100 -0
  164. package/locales/tr-TR/metadata.json +4 -0
  165. package/locales/tr-TR/modelProvider.json +1 -0
  166. package/locales/tr-TR/models.json +15 -0
  167. package/locales/tr-TR/plugin.json +22 -0
  168. package/locales/tr-TR/providers.json +3 -0
  169. package/locales/tr-TR/setting.json +5 -0
  170. package/locales/vi-VN/common.json +2 -0
  171. package/locales/vi-VN/components.json +35 -0
  172. package/locales/vi-VN/error.json +2 -0
  173. package/locales/vi-VN/image.json +100 -0
  174. package/locales/vi-VN/metadata.json +4 -0
  175. package/locales/vi-VN/modelProvider.json +1 -0
  176. package/locales/vi-VN/models.json +15 -0
  177. package/locales/vi-VN/plugin.json +22 -0
  178. package/locales/vi-VN/providers.json +3 -0
  179. package/locales/vi-VN/setting.json +5 -0
  180. package/locales/zh-CN/common.json +2 -0
  181. package/locales/zh-CN/components.json +35 -0
  182. package/locales/zh-CN/error.json +2 -0
  183. package/locales/zh-CN/image.json +100 -0
  184. package/locales/zh-CN/metadata.json +4 -0
  185. package/locales/zh-CN/modelProvider.json +1 -0
  186. package/locales/zh-CN/models.json +15 -0
  187. package/locales/zh-CN/plugin.json +22 -0
  188. package/locales/zh-CN/providers.json +3 -0
  189. package/locales/zh-CN/setting.json +5 -0
  190. package/locales/zh-TW/common.json +2 -0
  191. package/locales/zh-TW/components.json +35 -0
  192. package/locales/zh-TW/error.json +2 -0
  193. package/locales/zh-TW/image.json +100 -0
  194. package/locales/zh-TW/metadata.json +4 -0
  195. package/locales/zh-TW/modelProvider.json +1 -0
  196. package/locales/zh-TW/models.json +15 -0
  197. package/locales/zh-TW/plugin.json +22 -0
  198. package/locales/zh-TW/providers.json +3 -0
  199. package/locales/zh-TW/setting.json +5 -0
  200. package/package.json +11 -4
  201. package/packages/electron-server-ipc/src/events/file.ts +3 -1
  202. package/packages/electron-server-ipc/src/types/file.ts +15 -0
  203. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +11 -1
  204. package/src/app/[variants]/(main)/image/@menu/components/AspectRatioSelect/index.tsx +73 -0
  205. package/src/app/[variants]/(main)/image/@menu/components/SeedNumberInput/index.tsx +39 -0
  206. package/src/app/[variants]/(main)/image/@menu/components/SizeSelect/index.tsx +89 -0
  207. package/src/app/[variants]/(main)/image/@menu/default.tsx +11 -0
  208. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/AspectRatioSelect.tsx +24 -0
  209. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/DimensionControlGroup.tsx +107 -0
  210. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageNum.tsx +290 -0
  211. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUpload.tsx +504 -0
  212. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUrl.tsx +18 -0
  213. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUrlsUpload.tsx +19 -0
  214. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ModelSelect.tsx +155 -0
  215. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/MultiImagesUpload/ImageManageModal.tsx +415 -0
  216. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/MultiImagesUpload/index.tsx +732 -0
  217. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SeedNumberInput.tsx +24 -0
  218. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SizeSelect.tsx +17 -0
  219. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SizeSliderInput.tsx +15 -0
  220. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/StepsSliderInput.tsx +11 -0
  221. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/constants.ts +1 -0
  222. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/index.tsx +93 -0
  223. package/src/app/[variants]/(main)/image/@topic/default.tsx +17 -0
  224. package/src/app/[variants]/(main)/image/@topic/features/Topics/NewTopicButton.tsx +64 -0
  225. package/src/app/[variants]/(main)/image/@topic/features/Topics/SkeletonList.tsx +34 -0
  226. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicItem.tsx +136 -0
  227. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicItemContainer.tsx +91 -0
  228. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +57 -0
  229. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicUrlSync.tsx +37 -0
  230. package/src/app/[variants]/(main)/image/@topic/features/Topics/index.tsx +19 -0
  231. package/src/app/[variants]/(main)/image/NotSupportClient.tsx +153 -0
  232. package/src/app/[variants]/(main)/image/_layout/Desktop/Container.tsx +35 -0
  233. package/src/app/[variants]/(main)/image/_layout/Desktop/RegisterHotkeys.tsx +10 -0
  234. package/src/app/[variants]/(main)/image/_layout/Desktop/index.tsx +30 -0
  235. package/src/app/[variants]/(main)/image/_layout/Mobile/index.tsx +14 -0
  236. package/src/app/[variants]/(main)/image/_layout/type.ts +7 -0
  237. package/src/app/[variants]/(main)/image/features/GenerationFeed/BatchItem.tsx +196 -0
  238. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ActionButtons.tsx +60 -0
  239. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ElapsedTime.tsx +90 -0
  240. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ErrorState.tsx +65 -0
  241. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/LoadingState.tsx +44 -0
  242. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/SuccessState.tsx +49 -0
  243. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/index.tsx +154 -0
  244. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/styles.ts +51 -0
  245. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/types.ts +39 -0
  246. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/utils.ts +11 -0
  247. package/src/app/[variants]/(main)/image/features/GenerationFeed/index.tsx +97 -0
  248. package/src/app/[variants]/(main)/image/features/ImageWorkspace/Content.tsx +48 -0
  249. package/src/app/[variants]/(main)/image/features/ImageWorkspace/EmptyState.tsx +37 -0
  250. package/src/app/[variants]/(main)/image/features/ImageWorkspace/SkeletonList.tsx +50 -0
  251. package/src/app/[variants]/(main)/image/features/ImageWorkspace/index.tsx +23 -0
  252. package/src/app/[variants]/(main)/image/features/PromptInput/Title.tsx +38 -0
  253. package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +114 -0
  254. package/src/app/[variants]/(main)/image/layout.tsx +19 -0
  255. package/src/app/[variants]/(main)/image/loading.tsx +3 -0
  256. package/src/app/[variants]/(main)/image/page.tsx +47 -0
  257. package/src/app/[variants]/(main)/settings/system-agent/index.tsx +2 -1
  258. package/src/chains/summaryGenerationTitle.ts +25 -0
  259. package/src/components/ImageItem/index.tsx +9 -6
  260. package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/Bedrock.tsx +3 -4
  261. package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/ProviderApiKeyForm.tsx +5 -4
  262. package/src/components/InvalidAPIKey/APIKeyForm/index.tsx +108 -0
  263. package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/useApiKey.ts +2 -1
  264. package/src/components/InvalidAPIKey/index.tsx +30 -0
  265. package/src/components/KeyValueEditor/index.tsx +203 -0
  266. package/src/components/KeyValueEditor/utils.ts +42 -0
  267. package/src/config/aiModels/fal.ts +52 -0
  268. package/src/config/aiModels/index.ts +3 -0
  269. package/src/config/aiModels/openai.ts +20 -6
  270. package/src/config/llm.ts +6 -0
  271. package/src/config/modelProviders/fal.ts +21 -0
  272. package/src/config/modelProviders/index.ts +3 -0
  273. package/src/config/paramsSchemas/fal/flux-kontext-dev.ts +8 -0
  274. package/src/config/paramsSchemas/fal/flux-pro-kontext.ts +11 -0
  275. package/src/config/paramsSchemas/fal/flux-schnell.ts +9 -0
  276. package/src/config/paramsSchemas/fal/imagen4.ts +10 -0
  277. package/src/config/paramsSchemas/openai/gpt-image-1.ts +10 -0
  278. package/src/const/hotkeys.ts +2 -2
  279. package/src/const/image.ts +6 -0
  280. package/src/const/settings/systemAgent.ts +1 -0
  281. package/src/database/client/migrations.json +27 -0
  282. package/src/database/migrations/0026_add_autovacuum_tuning.sql +2 -0
  283. package/src/database/migrations/0027_ai_image.sql +47 -0
  284. package/src/database/migrations/meta/0027_snapshot.json +6003 -0
  285. package/src/database/migrations/meta/_journal.json +7 -0
  286. package/src/database/models/__tests__/asyncTask.test.ts +7 -5
  287. package/src/database/models/__tests__/file.test.ts +287 -0
  288. package/src/database/models/__tests__/generation.test.ts +786 -0
  289. package/src/database/models/__tests__/generationBatch.test.ts +614 -0
  290. package/src/database/models/__tests__/generationTopic.test.ts +411 -0
  291. package/src/database/models/aiModel.ts +2 -0
  292. package/src/database/models/asyncTask.ts +1 -1
  293. package/src/database/models/file.ts +28 -20
  294. package/src/database/models/generation.ts +197 -0
  295. package/src/database/models/generationBatch.ts +212 -0
  296. package/src/database/models/generationTopic.ts +131 -0
  297. package/src/database/repositories/aiInfra/index.test.ts +157 -1
  298. package/src/database/repositories/aiInfra/index.ts +37 -19
  299. package/src/database/repositories/tableViewer/index.test.ts +1 -1
  300. package/src/database/schemas/file.ts +8 -0
  301. package/src/database/schemas/generation.ts +127 -0
  302. package/src/database/schemas/index.ts +1 -0
  303. package/src/database/schemas/relations.ts +45 -1
  304. package/src/database/type.ts +2 -0
  305. package/src/database/utils/idGenerator.ts +3 -0
  306. package/src/features/Conversation/Error/ChatInvalidApiKey.tsx +39 -0
  307. package/src/features/Conversation/Error/InvalidAccessCode.tsx +2 -2
  308. package/src/features/Conversation/Error/index.tsx +3 -3
  309. package/src/features/ImageSidePanel/index.tsx +83 -0
  310. package/src/features/ImageTopicPanel/index.tsx +79 -0
  311. package/src/features/PluginDevModal/MCPManifestForm/CollapsibleSection.tsx +62 -0
  312. package/src/features/PluginDevModal/MCPManifestForm/QuickImportSection.tsx +158 -0
  313. package/src/features/PluginDevModal/MCPManifestForm/index.tsx +99 -155
  314. package/src/features/PluginStore/McpList/Detail/Settings/index.tsx +5 -2
  315. package/src/hooks/useDownloadImage.ts +31 -0
  316. package/src/hooks/useFetchGenerationTopics.ts +13 -0
  317. package/src/hooks/useHotkeys/imageScope.ts +48 -0
  318. package/src/libs/mcp/client.ts +55 -22
  319. package/src/libs/mcp/types.ts +42 -6
  320. package/src/libs/model-runtime/BaseAI.ts +3 -1
  321. package/src/libs/model-runtime/ModelRuntime.test.ts +80 -0
  322. package/src/libs/model-runtime/ModelRuntime.ts +15 -1
  323. package/src/libs/model-runtime/UniformRuntime/index.ts +4 -1
  324. package/src/libs/model-runtime/fal/index.test.ts +442 -0
  325. package/src/libs/model-runtime/fal/index.ts +88 -0
  326. package/src/libs/model-runtime/openai/index.test.ts +396 -2
  327. package/src/libs/model-runtime/openai/index.ts +129 -3
  328. package/src/libs/model-runtime/runtimeMap.ts +2 -0
  329. package/src/libs/model-runtime/types/image.ts +25 -0
  330. package/src/libs/model-runtime/types/type.ts +1 -0
  331. package/src/libs/model-runtime/utils/openaiCompatibleFactory/index.ts +10 -0
  332. package/src/libs/standard-parameters/index.ts +1 -0
  333. package/src/libs/standard-parameters/meta-schema.test.ts +214 -0
  334. package/src/libs/standard-parameters/meta-schema.ts +147 -0
  335. package/src/libs/swr/index.ts +1 -0
  336. package/src/libs/trpc/async/asyncAuth.ts +29 -8
  337. package/src/libs/trpc/async/context.ts +42 -4
  338. package/src/libs/trpc/async/index.ts +17 -4
  339. package/src/libs/trpc/async/init.ts +8 -0
  340. package/src/libs/trpc/client/lambda.ts +19 -2
  341. package/src/locales/default/common.ts +2 -0
  342. package/src/locales/default/components.ts +35 -0
  343. package/src/locales/default/error.ts +2 -0
  344. package/src/locales/default/image.ts +100 -0
  345. package/src/locales/default/index.ts +2 -0
  346. package/src/locales/default/metadata.ts +4 -0
  347. package/src/locales/default/modelProvider.ts +2 -0
  348. package/src/locales/default/plugin.ts +22 -0
  349. package/src/locales/default/setting.ts +5 -0
  350. package/src/middleware.ts +1 -0
  351. package/src/server/modules/ElectronIPCClient/index.ts +9 -1
  352. package/src/server/modules/S3/index.ts +15 -0
  353. package/src/server/routers/async/caller.ts +9 -1
  354. package/src/server/routers/async/image.ts +253 -0
  355. package/src/server/routers/async/index.ts +2 -0
  356. package/src/server/routers/lambda/aiProvider.test.ts +2 -0
  357. package/src/server/routers/lambda/generation.test.ts +267 -0
  358. package/src/server/routers/lambda/generation.ts +86 -0
  359. package/src/server/routers/lambda/generationBatch.test.ts +376 -0
  360. package/src/server/routers/lambda/generationBatch.ts +56 -0
  361. package/src/server/routers/lambda/generationTopic.test.ts +508 -0
  362. package/src/server/routers/lambda/generationTopic.ts +93 -0
  363. package/src/server/routers/lambda/image.ts +248 -0
  364. package/src/server/routers/lambda/index.ts +8 -0
  365. package/src/server/routers/tools/mcp.ts +15 -0
  366. package/src/server/services/file/__tests__/index.test.ts +135 -0
  367. package/src/server/services/file/impls/local.test.ts +153 -52
  368. package/src/server/services/file/impls/local.ts +70 -46
  369. package/src/server/services/file/impls/s3.test.ts +114 -0
  370. package/src/server/services/file/impls/s3.ts +40 -0
  371. package/src/server/services/file/impls/type.ts +10 -0
  372. package/src/server/services/file/index.ts +14 -0
  373. package/src/server/services/generation/index.ts +239 -0
  374. package/src/server/services/mcp/index.ts +20 -2
  375. package/src/services/__tests__/generation.test.ts +40 -0
  376. package/src/services/__tests__/generationBatch.test.ts +36 -0
  377. package/src/services/__tests__/generationTopic.test.ts +72 -0
  378. package/src/services/electron/file.ts +3 -1
  379. package/src/services/generation.ts +16 -0
  380. package/src/services/generationBatch.ts +25 -0
  381. package/src/services/generationTopic.ts +28 -0
  382. package/src/services/image.ts +33 -0
  383. package/src/services/mcp.ts +12 -7
  384. package/src/services/upload.ts +43 -9
  385. package/src/store/aiInfra/slices/aiProvider/action.ts +31 -6
  386. package/src/store/aiInfra/slices/aiProvider/initialState.ts +1 -0
  387. package/src/store/aiInfra/slices/aiProvider/selectors.ts +3 -0
  388. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +5 -5
  389. package/src/store/chat/slices/message/action.ts +2 -2
  390. package/src/store/chat/slices/translate/action.ts +1 -1
  391. package/src/store/global/initialState.ts +9 -0
  392. package/src/store/global/selectors/systemStatus.ts +8 -0
  393. package/src/store/image/index.ts +2 -0
  394. package/src/store/image/initialState.ts +25 -0
  395. package/src/store/image/selectors.ts +4 -0
  396. package/src/store/image/slices/createImage/action.test.ts +330 -0
  397. package/src/store/image/slices/createImage/action.ts +134 -0
  398. package/src/store/image/slices/createImage/initialState.ts +9 -0
  399. package/src/store/image/slices/createImage/selectors.test.ts +114 -0
  400. package/src/store/image/slices/createImage/selectors.ts +9 -0
  401. package/src/store/image/slices/generationBatch/action.test.ts +495 -0
  402. package/src/store/image/slices/generationBatch/action.ts +303 -0
  403. package/src/store/image/slices/generationBatch/initialState.ts +13 -0
  404. package/src/store/image/slices/generationBatch/reducer.test.ts +568 -0
  405. package/src/store/image/slices/generationBatch/reducer.ts +101 -0
  406. package/src/store/image/slices/generationBatch/selectors.test.ts +307 -0
  407. package/src/store/image/slices/generationBatch/selectors.ts +36 -0
  408. package/src/store/image/slices/generationConfig/action.test.ts +351 -0
  409. package/src/store/image/slices/generationConfig/action.ts +295 -0
  410. package/src/store/image/slices/generationConfig/hooks.test.ts +304 -0
  411. package/src/store/image/slices/generationConfig/hooks.ts +118 -0
  412. package/src/store/image/slices/generationConfig/index.ts +1 -0
  413. package/src/store/image/slices/generationConfig/initialState.ts +37 -0
  414. package/src/store/image/slices/generationConfig/selectors.test.ts +204 -0
  415. package/src/store/image/slices/generationConfig/selectors.ts +25 -0
  416. package/src/store/image/slices/generationTopic/action.test.ts +687 -0
  417. package/src/store/image/slices/generationTopic/action.ts +319 -0
  418. package/src/store/image/slices/generationTopic/index.ts +2 -0
  419. package/src/store/image/slices/generationTopic/initialState.ts +14 -0
  420. package/src/store/image/slices/generationTopic/reducer.test.ts +198 -0
  421. package/src/store/image/slices/generationTopic/reducer.ts +66 -0
  422. package/src/store/image/slices/generationTopic/selectors.test.ts +103 -0
  423. package/src/store/image/slices/generationTopic/selectors.ts +15 -0
  424. package/src/store/image/store.ts +42 -0
  425. package/src/store/image/utils/size.ts +51 -0
  426. package/src/store/tool/slices/customPlugin/action.ts +10 -1
  427. package/src/store/tool/slices/mcpStore/action.ts +6 -4
  428. package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +4 -0
  429. package/src/store/user/slices/settings/selectors/systemAgent.ts +2 -0
  430. package/src/types/aiModel.ts +8 -3
  431. package/src/types/aiProvider.ts +2 -0
  432. package/src/types/asyncTask.ts +2 -0
  433. package/src/types/files/index.ts +5 -0
  434. package/src/types/generation/index.ts +80 -0
  435. package/src/types/hotkey.ts +2 -0
  436. package/src/types/plugins/mcp.ts +2 -6
  437. package/src/types/tool/plugin.ts +8 -0
  438. package/src/types/user/settings/keyVaults.ts +5 -0
  439. package/src/types/user/settings/systemAgent.ts +1 -0
  440. package/src/utils/client/downloadFile.ts +33 -4
  441. package/src/utils/number.test.ts +105 -0
  442. package/src/utils/number.ts +25 -0
  443. package/src/utils/server/__tests__/geo.test.ts +6 -3
  444. package/src/utils/storeDebug.test.ts +152 -0
  445. package/src/utils/storeDebug.ts +16 -7
  446. package/src/utils/time.test.ts +259 -0
  447. package/src/utils/time.ts +18 -0
  448. package/src/utils/units.ts +61 -0
  449. package/src/utils/url.test.ts +358 -9
  450. package/src/utils/url.ts +105 -3
  451. package/{vitest.server.config.ts → vitest.config.server.ts} +3 -0
  452. package/.cursor/rules/i18n/i18n-auto-attached.mdc +0 -6
  453. package/src/features/Conversation/Error/APIKeyForm/index.tsx +0 -105
  454. package/src/features/Conversation/Error/InvalidAPIKey.tsx +0 -16
  455. package/src/features/PluginDevModal/MCPManifestForm/EnvEditor.tsx +0 -227
  456. /package/.cursor/rules/{i18n/i18n.mdc → i18n.mdc} +0 -0
  457. /package/src/app/[variants]/(main)/settings/system-agent/features/{createForm.tsx → SystemAgentForm.tsx} +0 -0
  458. /package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/LoadingContext.ts +0 -0
@@ -0,0 +1,100 @@
1
+ {
2
+ "config": {
3
+ "aspectRatio": {
4
+ "label": "Proporcje",
5
+ "lock": "Zablokuj proporcje",
6
+ "unlock": "Odblokuj proporcje"
7
+ },
8
+ "header": {
9
+ "desc": "Prosty opis, twórz natychmiast",
10
+ "title": "Malarstwo"
11
+ },
12
+ "height": {
13
+ "label": "Wysokość"
14
+ },
15
+ "imageNum": {
16
+ "label": "Liczba obrazów"
17
+ },
18
+ "imageUrl": {
19
+ "label": "Obraz referencyjny"
20
+ },
21
+ "imageUrls": {
22
+ "label": "Obrazy referencyjne"
23
+ },
24
+ "model": {
25
+ "label": "Model"
26
+ },
27
+ "prompt": {
28
+ "placeholder": "Opisz, co chcesz wygenerować"
29
+ },
30
+ "seed": {
31
+ "label": "Ziarno",
32
+ "random": "Losowy seed"
33
+ },
34
+ "size": {
35
+ "label": "Rozmiar"
36
+ },
37
+ "steps": {
38
+ "label": "Liczba kroków"
39
+ },
40
+ "title": "AI Rysowanie",
41
+ "width": {
42
+ "label": "Szerokość"
43
+ }
44
+ },
45
+ "generation": {
46
+ "actions": {
47
+ "applySeed": "Zastosuj nasiono",
48
+ "copyError": "Kopiuj błąd",
49
+ "copyPrompt": "Kopiuj podpowiedź",
50
+ "copySeed": "Kopiuj ziarno",
51
+ "delete": "Usuń",
52
+ "deleteBatch": "Usuń partię",
53
+ "download": "Pobierz",
54
+ "downloadFailed": "Pobieranie obrazu nie powiodło się",
55
+ "errorCopied": "Informacja o błędzie skopiowana do schowka",
56
+ "errorCopyFailed": "Kopiowanie informacji o błędzie nie powiodło się",
57
+ "generate": "Generuj",
58
+ "promptCopied": "Tekst podpowiedzi skopiowany do schowka",
59
+ "promptCopyFailed": "Kopiowanie tekstu podpowiedzi nie powiodło się",
60
+ "reuseSettings": "Użyj ponownie ustawień",
61
+ "seedApplied": "Nasiono zostało zastosowane w konfiguracji",
62
+ "seedApplyFailed": "Nie udało się zastosować nasiona",
63
+ "seedCopied": "Ziarno skopiowane do schowka",
64
+ "seedCopyFailed": "Kopiowanie ziarna nie powiodło się"
65
+ },
66
+ "metadata": {
67
+ "count": "{{count}} obrazów"
68
+ },
69
+ "status": {
70
+ "failed": "Generowanie nie powiodło się",
71
+ "generating": "Generowanie..."
72
+ }
73
+ },
74
+ "notSupportGuide": {
75
+ "desc": "Aktualna instancja wdrożeniowa działa w trybie bazy danych klienta i nie obsługuje funkcji generowania obrazów AI. Proszę przełączyć się na <1>tryb wdrożenia bazy danych serwera</1> lub bezpośrednio skorzystać z <3>LobeChat Cloud</3>",
76
+ "features": {
77
+ "fileIntegration": {
78
+ "desc": "Głęboka integracja z systemem zarządzania plikami, generowane obrazy są automatycznie zapisywane w systemie plików, umożliwiając ich centralne zarządzanie i organizację",
79
+ "title": "Integracja z systemem plików"
80
+ },
81
+ "llmAssisted": {
82
+ "desc": "Wykorzystanie możliwości dużych modeli językowych do inteligentnej optymalizacji i rozszerzania tekstów podpowiedzi, poprawiając jakość generowanych obrazów (wkrótce)",
83
+ "title": "Wsparcie LLM przy generowaniu obrazów"
84
+ },
85
+ "multiProviders": {
86
+ "desc": "Obsługuje wielu dostawców usług AI do rysowania, w tym OpenAI gpt-image-1, Google Imagen, FAL.ai i innych, oferując szeroki wybór modeli",
87
+ "title": "Wsparcie wielu dostawców"
88
+ }
89
+ },
90
+ "title": "Aktualny tryb wdrożenia nie obsługuje AI Rysowania"
91
+ },
92
+ "topic": {
93
+ "createNew": "Utwórz nowy temat",
94
+ "deleteConfirm": "Usuń temat generowania",
95
+ "deleteConfirmDesc": "Temat generowania zostanie usunięty i nie będzie można go przywrócić. Proszę zachować ostrożność.",
96
+ "empty": "Brak wygenerowanych tematów",
97
+ "title": "Temat malarski",
98
+ "untitled": "Domyślny temat"
99
+ }
100
+ }
@@ -32,6 +32,10 @@
32
32
  "search": "Szukaj",
33
33
  "title": "Odkryj"
34
34
  },
35
+ "image": {
36
+ "description": "{{appName}} zapewnia najlepsze doświadczenia w korzystaniu z GPT Image, Flux, Midjourney, Stable Diffusion",
37
+ "title": "AI Malarstwo"
38
+ },
35
39
  "plugins": {
36
40
  "description": "Wyszukiwanie, generowanie wykresów, akademickie, generowanie obrazów, generowanie wideo, generowanie głosu, automatyzacja przepływów pracy, dostosuj możliwości wtyczek ToolCall dla ChatGPT / Claude",
37
41
  "title": "Rynek wtyczek"
@@ -66,6 +66,7 @@
66
66
  "customRegion": "Niestandardowy region usługi",
67
67
  "customSessionToken": "Niestandardowy token sesji",
68
68
  "description": "Wprowadź swój AWS AccessKeyId / SecretAccessKey, aby rozpocząć sesję. Aplikacja nie będzie przechowywać Twojej konfiguracji uwierzytelniania",
69
+ "imageGenerationDescription": "Wprowadź swój AWS AccessKeyId / SecretAccessKey, aby rozpocząć generowanie. Aplikacja nie będzie zapisywać Twoich danych uwierzytelniających",
69
70
  "title": "Użyj niestandardowych informacji uwierzytelniających Bedrock"
70
71
  }
71
72
  },
@@ -1019,6 +1019,15 @@
1019
1019
  "ernie-x1-turbo-32k": {
1020
1020
  "description": "Model ma lepsze wyniki i wydajność w porównaniu do ERNIE-X1-32K."
1021
1021
  },
1022
+ "flux-kontext/dev": {
1023
+ "description": "Model edycji obrazów Frontier."
1024
+ },
1025
+ "flux-pro/kontext": {
1026
+ "description": "FLUX.1 Kontext [pro] potrafi przetwarzać tekst i obrazy referencyjne jako dane wejściowe, umożliwiając płynną, celową edycję lokalną oraz złożone transformacje całych scen."
1027
+ },
1028
+ "flux/schnell": {
1029
+ "description": "FLUX.1 [schnell] to model transformera strumieniowego z 12 miliardami parametrów, zdolny generować wysokiej jakości obrazy z tekstu w 1 do 4 krokach, odpowiedni do użytku osobistego i komercyjnego."
1030
+ },
1022
1031
  "gemini-1.0-pro-001": {
1023
1032
  "description": "Gemini 1.0 Pro 001 (Tuning) oferuje stabilną i dostosowywalną wydajność, co czyni go idealnym wyborem dla rozwiązań złożonych zadań."
1024
1033
  },
@@ -1364,6 +1373,9 @@
1364
1373
  "gpt-4o-transcribe": {
1365
1374
  "description": "GPT-4o Transcribe to model konwersji mowy na tekst wykorzystujący GPT-4o do transkrypcji audio. W porównaniu z oryginalnym modelem Whisper poprawia wskaźnik błędów słów oraz rozpoznawanie i dokładność językową. Użyj go, aby uzyskać dokładniejsze transkrypcje."
1366
1375
  },
1376
+ "gpt-image-1": {
1377
+ "description": "Natywny multimodalny model generowania obrazów ChatGPT."
1378
+ },
1367
1379
  "grok-2-1212": {
1368
1380
  "description": "Model ten poprawił dokładność, przestrzeganie instrukcji oraz zdolności wielojęzyczne."
1369
1381
  },
@@ -1484,6 +1496,9 @@
1484
1496
  "hunyuan-vision": {
1485
1497
  "description": "Najnowocześniejszy model multimodalny Hunyuan, wspierający generowanie treści tekstowych na podstawie obrazów i tekstu."
1486
1498
  },
1499
+ "imagen4/preview": {
1500
+ "description": "Najwyższej jakości model generowania obrazów Google."
1501
+ },
1487
1502
  "internlm/internlm2_5-7b-chat": {
1488
1503
  "description": "InternLM2.5 oferuje inteligentne rozwiązania dialogowe w różnych scenariuszach."
1489
1504
  },
@@ -57,12 +57,28 @@
57
57
  }
58
58
  },
59
59
  "mcp": {
60
+ "advanced": {
61
+ "title": "Ustawienia zaawansowane"
62
+ },
60
63
  "args": {
61
64
  "desc": "Lista argumentów przekazywanych do polecenia wykonawczego, zazwyczaj wpisz tutaj nazwę serwera MCP lub ścieżkę do skryptu uruchamiającego",
62
65
  "label": "Argumenty polecenia",
63
66
  "placeholder": "Na przykład: mcp-hello-world",
64
67
  "required": "Proszę wprowadzić parametry uruchomienia"
65
68
  },
69
+ "auth": {
70
+ "bear": "Klucz API",
71
+ "desc": "Wybierz metodę uwierzytelniania serwera MCP",
72
+ "label": "Typ uwierzytelniania",
73
+ "none": "Brak uwierzytelniania",
74
+ "placeholder": "Wybierz typ uwierzytelniania",
75
+ "token": {
76
+ "desc": "Wprowadź swój klucz API lub token Bearer",
77
+ "label": "Klucz API",
78
+ "placeholder": "sk-xxxxx",
79
+ "required": "Proszę wprowadzić token uwierzytelniający"
80
+ }
81
+ },
66
82
  "avatar": {
67
83
  "label": "Ikona wtyczki"
68
84
  },
@@ -90,6 +106,11 @@
90
106
  "label": "Zmienne środowiskowe serwera MCP",
91
107
  "stringifyError": "Nie można zserializować argumentów, sprawdź format argumentów"
92
108
  },
109
+ "headers": {
110
+ "add": "Dodaj wiersz",
111
+ "desc": "Wprowadź nagłówki żądania",
112
+ "label": "Nagłówki HTTP"
113
+ },
93
114
  "identifier": {
94
115
  "desc": "Nadaj nazwę swojej wtyczce MCP, używając znaków angielskich",
95
116
  "invalid": "Można wprowadzać tylko znaki angielskie, cyfry, oraz symbole - i _",
@@ -269,6 +290,7 @@
269
290
  "showDetails": "Pokaż szczegóły"
270
291
  },
271
292
  "errorTypes": {
293
+ "AUTHORIZATION_ERROR": "Błąd autoryzacji",
272
294
  "CONNECTION_FAILED": "Nieudane połączenie",
273
295
  "INITIALIZATION_TIMEOUT": "Przekroczono czas inicjalizacji",
274
296
  "PROCESS_SPAWN_ERROR": "Błąd uruchomienia procesu",
@@ -29,6 +29,9 @@
29
29
  "deepseek": {
30
30
  "description": "DeepSeek to firma skoncentrowana na badaniach i zastosowaniach technologii sztucznej inteligencji, której najnowszy model DeepSeek-V2.5 łączy zdolności do prowadzenia ogólnych rozmów i przetwarzania kodu, osiągając znaczące postępy w zakresie dostosowywania do preferencji ludzkich, zadań pisarskich i przestrzegania instrukcji."
31
31
  },
32
+ "fal": {
33
+ "description": "Platforma generatywna mediów skierowana do deweloperów"
34
+ },
32
35
  "fireworksai": {
33
36
  "description": "Fireworks AI to wiodący dostawca zaawansowanych modeli językowych, skoncentrowany na wywołaniach funkcji i przetwarzaniu multimodalnym. Jego najnowszy model Firefunction V2 oparty na Llama-3, zoptymalizowany do wywołań funkcji, dialogów i przestrzegania instrukcji. Model wizualny FireLLaVA-13B wspiera mieszane wejścia obrazów i tekstu. Inne znaczące modele to seria Llama i seria Mixtral, oferujące efektywne wsparcie dla wielojęzycznego przestrzegania instrukcji i generacji."
34
37
  },
@@ -484,6 +484,11 @@
484
484
  "placeholder": "Wprowadź niestandardowe słowo podpowiedzi",
485
485
  "title": "Niestandardowe słowo podpowiedzi"
486
486
  },
487
+ "generationTopic": {
488
+ "label": "Model nazewnictwa tematów do AI w malarstwie",
489
+ "modelDesc": "Model przeznaczony do automatycznego nadawania nazw tematom w AI malarskim",
490
+ "title": "Automatyczne nadawanie nazw tematom w AI malarskim"
491
+ },
487
492
  "helpInfo": "Podczas tworzenia nowego asystenta, domyślne ustawienia asystenta będą używane jako wartości wstępne.",
488
493
  "historyCompress": {
489
494
  "label": "Model historii rozmów",
@@ -183,6 +183,7 @@
183
183
  },
184
184
  "fullscreen": "Modo de Tela Cheia",
185
185
  "historyRange": "Intervalo de histórico",
186
+ "import": "Importar",
186
187
  "importData": "Importar dados",
187
188
  "importModal": {
188
189
  "error": {
@@ -324,6 +325,7 @@
324
325
  }
325
326
  },
326
327
  "tab": {
328
+ "aiImage": "Pintura AI",
327
329
  "chat": "Chat",
328
330
  "discover": "Descobrir",
329
331
  "files": "Arquivos",
@@ -68,6 +68,22 @@
68
68
  "GoBack": {
69
69
  "back": "Voltar"
70
70
  },
71
+ "ImageUpload": {
72
+ "actions": {
73
+ "changeImage": "Clique para alterar a imagem"
74
+ },
75
+ "placeholder": {
76
+ "primary": "Adicionar imagem",
77
+ "secondary": "Clique para enviar"
78
+ }
79
+ },
80
+ "KeyValueEditor": {
81
+ "addButton": "Adicionar uma linha",
82
+ "deleteTooltip": "Excluir",
83
+ "duplicateKeyError": "O nome da chave deve ser único",
84
+ "keyPlaceholder": "Chave",
85
+ "valuePlaceholder": "Valor"
86
+ },
71
87
  "MaxTokenSlider": {
72
88
  "unlimited": "Ilimitado"
73
89
  },
@@ -91,6 +107,25 @@
91
107
  "provider": "Fornecedor",
92
108
  "title": "Modelo"
93
109
  },
110
+ "MultiImagesUpload": {
111
+ "actions": {
112
+ "uploadMore": "Clique para enviar mais"
113
+ },
114
+ "modal": {
115
+ "complete": "Concluir",
116
+ "newFileIndicator": "Novo",
117
+ "selectImageToPreview": "Por favor, selecione uma imagem para pré-visualizar",
118
+ "title": "Gerenciar imagens ({{count}})",
119
+ "upload": "Enviar imagens"
120
+ },
121
+ "placeholder": {
122
+ "primary": "Clique para enviar imagens",
123
+ "secondary": "Suporta seleção de múltiplas imagens"
124
+ },
125
+ "progress": {
126
+ "uploadingWithCount": "{{completed}}/{{total}} enviados"
127
+ }
128
+ },
94
129
  "OllamaSetupGuide": {
95
130
  "action": {
96
131
  "close": "Fechar aviso",
@@ -123,6 +123,7 @@
123
123
  "stt": {
124
124
  "responseError": "Falha na solicitação de serviço. Verifique a configuração ou tente novamente"
125
125
  },
126
+ "testConnectionFailed": "Falha ao testar a conexão: {{error}}",
126
127
  "tts": {
127
128
  "responseError": "Falha na solicitação de serviço. Verifique a configuração ou tente novamente"
128
129
  },
@@ -130,6 +131,7 @@
130
131
  "addProxyUrl": "Adicionar URL de proxy OpenAI (opcional)",
131
132
  "apiKey": {
132
133
  "description": "Insira sua chave de API {{name}} para iniciar a sessão",
134
+ "imageGenerationDescription": "Digite sua chave API {{name}} para começar a gerar",
133
135
  "title": "Usar chave de API personalizada {{name}}"
134
136
  },
135
137
  "closeMessage": "Fechar mensagem",
@@ -0,0 +1,100 @@
1
+ {
2
+ "config": {
3
+ "aspectRatio": {
4
+ "label": "Proporção",
5
+ "lock": "Bloquear proporção",
6
+ "unlock": "Desbloquear proporção"
7
+ },
8
+ "header": {
9
+ "desc": "Descrição simples, crie imediatamente",
10
+ "title": "Pintura"
11
+ },
12
+ "height": {
13
+ "label": "Altura"
14
+ },
15
+ "imageNum": {
16
+ "label": "Quantidade de Imagens"
17
+ },
18
+ "imageUrl": {
19
+ "label": "Imagem de referência"
20
+ },
21
+ "imageUrls": {
22
+ "label": "Imagem de Referência"
23
+ },
24
+ "model": {
25
+ "label": "Modelo"
26
+ },
27
+ "prompt": {
28
+ "placeholder": "Descreva o conteúdo que deseja gerar"
29
+ },
30
+ "seed": {
31
+ "label": "Semente",
32
+ "random": "Semente aleatória"
33
+ },
34
+ "size": {
35
+ "label": "Tamanho"
36
+ },
37
+ "steps": {
38
+ "label": "Passos"
39
+ },
40
+ "title": "Pintura AI",
41
+ "width": {
42
+ "label": "Largura"
43
+ }
44
+ },
45
+ "generation": {
46
+ "actions": {
47
+ "applySeed": "Aplicar semente",
48
+ "copyError": "Copiar erro",
49
+ "copyPrompt": "Copiar prompt",
50
+ "copySeed": "Copiar semente",
51
+ "delete": "Excluir",
52
+ "deleteBatch": "Excluir lote",
53
+ "download": "Baixar",
54
+ "downloadFailed": "Falha ao baixar a imagem",
55
+ "errorCopied": "Informação de erro copiada para a área de transferência",
56
+ "errorCopyFailed": "Falha ao copiar a informação de erro",
57
+ "generate": "Gerar",
58
+ "promptCopied": "Prompt copiado para a área de transferência",
59
+ "promptCopyFailed": "Falha ao copiar o prompt",
60
+ "reuseSettings": "Reutilizar configurações",
61
+ "seedApplied": "Semente aplicada à configuração",
62
+ "seedApplyFailed": "Falha ao aplicar a semente",
63
+ "seedCopied": "Semente copiada para a área de transferência",
64
+ "seedCopyFailed": "Falha ao copiar a semente"
65
+ },
66
+ "metadata": {
67
+ "count": "{{count}} imagens"
68
+ },
69
+ "status": {
70
+ "failed": "Falha na geração",
71
+ "generating": "Gerando..."
72
+ }
73
+ },
74
+ "notSupportGuide": {
75
+ "desc": "A instância atual está no modo de banco de dados cliente e não suporta a função de geração de imagens AI. Por favor, altere para o <1>modo de implantação do banco de dados do servidor</1> ou use diretamente o <3>LobeChat Cloud</3>",
76
+ "features": {
77
+ "fileIntegration": {
78
+ "desc": "Integração profunda com o sistema de gerenciamento de arquivos, salvando automaticamente as imagens geradas no sistema de arquivos para gerenciamento e organização unificados",
79
+ "title": "Integração com sistema de arquivos"
80
+ },
81
+ "llmAssisted": {
82
+ "desc": "Combina capacidades de grandes modelos de linguagem para otimizar e expandir inteligentemente os prompts, melhorando a qualidade da geração de imagens (Em breve)",
83
+ "title": "Geração assistida por LLM"
84
+ },
85
+ "multiProviders": {
86
+ "desc": "Suporta múltiplos provedores de pintura AI, incluindo OpenAI gpt-image-1, Google Imagen, FAL.ai, entre outros, oferecendo uma ampla seleção de modelos",
87
+ "title": "Suporte a múltiplos provedores"
88
+ }
89
+ },
90
+ "title": "O modo de implantação atual não suporta pintura AI"
91
+ },
92
+ "topic": {
93
+ "createNew": "Criar novo tópico",
94
+ "deleteConfirm": "Excluir tópico gerado",
95
+ "deleteConfirmDesc": "Você está prestes a excluir este tópico gerado. Após a exclusão, não poderá ser recuperado. Por favor, proceda com cautela.",
96
+ "empty": "Nenhum tópico gerado",
97
+ "title": "Tema da pintura",
98
+ "untitled": "Tópico padrão"
99
+ }
100
+ }
@@ -32,6 +32,10 @@
32
32
  "search": "Pesquisar",
33
33
  "title": "Descobrir"
34
34
  },
35
+ "image": {
36
+ "description": "{{appName}} traz para você a melhor experiência de uso com GPT Image, Flux, Midjourney e Stable Diffusion",
37
+ "title": "Pintura AI"
38
+ },
35
39
  "plugins": {
36
40
  "description": "Pesquisa, geração de gráficos, acadêmico, geração de imagens, geração de vídeos, geração de voz, fluxos de trabalho automatizados, personalize as capacidades de plugins ToolCall exclusivos do ChatGPT / Claude",
37
41
  "title": "Mercado de Plugins"
@@ -66,6 +66,7 @@
66
66
  "customRegion": "Região de serviço personalizada",
67
67
  "customSessionToken": "Token de Sessão Personalizado",
68
68
  "description": "Digite sua AWS AccessKeyId / SecretAccessKey para iniciar a sessão. O aplicativo não irá armazenar suas configurações de autenticação",
69
+ "imageGenerationDescription": "Digite seu AWS AccessKeyId / SecretAccessKey para começar a gerar. O aplicativo não armazenará suas credenciais de autenticação",
69
70
  "title": "Usar informações de autenticação Bedrock personalizadas"
70
71
  }
71
72
  },
@@ -1019,6 +1019,15 @@
1019
1019
  "ernie-x1-turbo-32k": {
1020
1020
  "description": "Melhor desempenho e eficácia em comparação com o ERNIE-X1-32K."
1021
1021
  },
1022
+ "flux-kontext/dev": {
1023
+ "description": "Modelo de edição de imagem Frontier."
1024
+ },
1025
+ "flux-pro/kontext": {
1026
+ "description": "FLUX.1 Kontext [pro] pode processar texto e imagens de referência como entrada, realizando edições locais direcionadas e transformações complexas de cenas inteiras de forma fluida."
1027
+ },
1028
+ "flux/schnell": {
1029
+ "description": "FLUX.1 [schnell] é um modelo transformador streaming com 12 bilhões de parâmetros, capaz de gerar imagens de alta qualidade a partir de texto em 1 a 4 passos, adequado para uso pessoal e comercial."
1030
+ },
1022
1031
  "gemini-1.0-pro-001": {
1023
1032
  "description": "Gemini 1.0 Pro 001 (Ajuste) oferece desempenho estável e ajustável, sendo a escolha ideal para soluções de tarefas complexas."
1024
1033
  },
@@ -1364,6 +1373,9 @@
1364
1373
  "gpt-4o-transcribe": {
1365
1374
  "description": "GPT-4o Transcribe é um modelo de transcrição de áudio para texto que utiliza GPT-4o. Em comparação com o modelo Whisper original, melhora a taxa de erro de palavras, além do reconhecimento e precisão linguística. Use-o para obter transcrições mais precisas."
1366
1375
  },
1376
+ "gpt-image-1": {
1377
+ "description": "Modelo nativo multimodal de geração de imagens do ChatGPT"
1378
+ },
1367
1379
  "grok-2-1212": {
1368
1380
  "description": "Este modelo apresenta melhorias em precisão, conformidade com instruções e capacidade multilíngue."
1369
1381
  },
@@ -1484,6 +1496,9 @@
1484
1496
  "hunyuan-vision": {
1485
1497
  "description": "O mais recente modelo multimodal Hunyuan, que suporta a entrada de imagens e texto para gerar conteúdo textual."
1486
1498
  },
1499
+ "imagen4/preview": {
1500
+ "description": "Modelo de geração de imagens de mais alta qualidade do Google"
1501
+ },
1487
1502
  "internlm/internlm2_5-7b-chat": {
1488
1503
  "description": "InternLM2.5 oferece soluções de diálogo inteligente em múltiplos cenários."
1489
1504
  },
@@ -57,12 +57,28 @@
57
57
  }
58
58
  },
59
59
  "mcp": {
60
+ "advanced": {
61
+ "title": "Configurações Avançadas"
62
+ },
60
63
  "args": {
61
64
  "desc": "Lista de parâmetros a serem passados para o comando de execução, geralmente aqui se insere o nome do servidor MCP ou o caminho do script de inicialização",
62
65
  "label": "Parâmetros do comando",
63
66
  "placeholder": "Por exemplo: --port 8080 --debug",
64
67
  "required": "Por favor, insira os parâmetros de inicialização"
65
68
  },
69
+ "auth": {
70
+ "bear": "Chave API",
71
+ "desc": "Selecione o método de autenticação do servidor MCP",
72
+ "label": "Tipo de autenticação",
73
+ "none": "Sem autenticação",
74
+ "placeholder": "Por favor, selecione o tipo de autenticação",
75
+ "token": {
76
+ "desc": "Insira sua Chave API ou Token Bearer",
77
+ "label": "Chave API",
78
+ "placeholder": "sk-xxxxx",
79
+ "required": "Por favor, insira o token de autenticação"
80
+ }
81
+ },
66
82
  "avatar": {
67
83
  "label": "Ícone do plugin"
68
84
  },
@@ -90,6 +106,11 @@
90
106
  "label": "Variáveis de ambiente do servidor MCP",
91
107
  "stringifyError": "Não foi possível serializar os parâmetros, verifique o formato dos parâmetros"
92
108
  },
109
+ "headers": {
110
+ "add": "Adicionar uma linha",
111
+ "desc": "Insira os cabeçalhos da requisição",
112
+ "label": "Cabeçalhos HTTP"
113
+ },
93
114
  "identifier": {
94
115
  "desc": "Dê um nome ao seu plugin MCP, deve usar caracteres em inglês",
95
116
  "invalid": "Somente caracteres em inglês, números, - e _ são permitidos",
@@ -269,6 +290,7 @@
269
290
  "showDetails": "Mostrar detalhes"
270
291
  },
271
292
  "errorTypes": {
293
+ "AUTHORIZATION_ERROR": "Erro de autorização",
272
294
  "CONNECTION_FAILED": "Falha na conexão",
273
295
  "INITIALIZATION_TIMEOUT": "Tempo de inicialização esgotado",
274
296
  "PROCESS_SPAWN_ERROR": "Falha ao iniciar processo",
@@ -29,6 +29,9 @@
29
29
  "deepseek": {
30
30
  "description": "A DeepSeek é uma empresa focada em pesquisa e aplicação de tecnologia de inteligência artificial, cujo modelo mais recente, DeepSeek-V2.5, combina capacidades de diálogo geral e processamento de código, alcançando melhorias significativas em alinhamento com preferências humanas, tarefas de escrita e seguimento de instruções."
31
31
  },
32
+ "fal": {
33
+ "description": "Plataforma de mídia generativa voltada para desenvolvedores"
34
+ },
32
35
  "fireworksai": {
33
36
  "description": "Fireworks AI é um fornecedor líder de serviços de modelos de linguagem avançados, focando em chamadas de função e processamento multimodal. Seu modelo mais recente, Firefunction V2, baseado em Llama-3, é otimizado para chamadas de função, diálogos e seguimento de instruções. O modelo de linguagem visual FireLLaVA-13B suporta entradas mistas de imagem e texto. Outros modelos notáveis incluem a série Llama e a série Mixtral, oferecendo suporte eficiente para seguimento e geração de instruções multilíngues."
34
37
  },
@@ -484,6 +484,11 @@
484
484
  "placeholder": "Digite a palavra-chave personalizada",
485
485
  "title": "Palavra-chave personalizada"
486
486
  },
487
+ "generationTopic": {
488
+ "label": "Modelo de Nomeação de Tópicos para Pintura AI",
489
+ "modelDesc": "Modelo designado para nomeação automática de tópicos em pintura AI",
490
+ "title": "Nomeação Automática de Tópicos para Pintura AI"
491
+ },
487
492
  "helpInfo": "Ao criar um novo assistente, as configurações padrão do assistente serão usadas como valores predefinidos.",
488
493
  "historyCompress": {
489
494
  "label": "Modelo de Histórico de Conversa",
@@ -183,6 +183,7 @@
183
183
  },
184
184
  "fullscreen": "Полноэкранный режим",
185
185
  "historyRange": "История",
186
+ "import": "Импорт",
186
187
  "importData": "Импорт данных",
187
188
  "importModal": {
188
189
  "error": {
@@ -324,6 +325,7 @@
324
325
  }
325
326
  },
326
327
  "tab": {
328
+ "aiImage": "ИИ Рисование",
327
329
  "chat": "Чат",
328
330
  "discover": "Открыть",
329
331
  "files": "Файлы",
@@ -68,6 +68,22 @@
68
68
  "GoBack": {
69
69
  "back": "Назад"
70
70
  },
71
+ "ImageUpload": {
72
+ "actions": {
73
+ "changeImage": "Нажмите, чтобы изменить изображение"
74
+ },
75
+ "placeholder": {
76
+ "primary": "Добавить изображение",
77
+ "secondary": "Нажмите, чтобы загрузить"
78
+ }
79
+ },
80
+ "KeyValueEditor": {
81
+ "addButton": "Добавить строку",
82
+ "deleteTooltip": "Удалить",
83
+ "duplicateKeyError": "Имя ключа должно быть уникальным",
84
+ "keyPlaceholder": "Ключ",
85
+ "valuePlaceholder": "Значение"
86
+ },
71
87
  "MaxTokenSlider": {
72
88
  "unlimited": "Без ограничений"
73
89
  },
@@ -91,6 +107,25 @@
91
107
  "provider": "Поставщик",
92
108
  "title": "Модель"
93
109
  },
110
+ "MultiImagesUpload": {
111
+ "actions": {
112
+ "uploadMore": "Нажмите, чтобы загрузить ещё"
113
+ },
114
+ "modal": {
115
+ "complete": "Готово",
116
+ "newFileIndicator": "Новое",
117
+ "selectImageToPreview": "Выберите изображение для просмотра",
118
+ "title": "Управление изображениями ({{count}})",
119
+ "upload": "Загрузить изображение"
120
+ },
121
+ "placeholder": {
122
+ "primary": "Нажмите, чтобы загрузить изображение",
123
+ "secondary": "Поддерживается выбор нескольких изображений"
124
+ },
125
+ "progress": {
126
+ "uploadingWithCount": "{{completed}}/{{total}} загружено"
127
+ }
128
+ },
94
129
  "OllamaSetupGuide": {
95
130
  "action": {
96
131
  "close": "Закрыть уведомление",
@@ -123,6 +123,7 @@
123
123
  "stt": {
124
124
  "responseError": "Ошибка запроса сервиса. Пожалуйста, проверьте конфигурацию или повторите попытку"
125
125
  },
126
+ "testConnectionFailed": "Не удалось проверить соединение: {{error}}",
126
127
  "tts": {
127
128
  "responseError": "Ошибка запроса сервиса. Пожалуйста, проверьте конфигурацию или повторите попытку"
128
129
  },
@@ -130,6 +131,7 @@
130
131
  "addProxyUrl": "Добавить URL прокси-сервера OpenAI (необязательно)",
131
132
  "apiKey": {
132
133
  "description": "Просто введите ваш API ключ {{name}}, чтобы начать сеанс",
134
+ "imageGenerationDescription": "Введите ваш {{name}} API ключ, чтобы начать генерацию",
133
135
  "title": "Используйте настраиваемый API ключ {{name}}"
134
136
  },
135
137
  "closeMessage": "Закрыть сообщение",