@lobehub/chat 1.98.2 → 1.99.0

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 (456) 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 +27 -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/const/dir.ts +3 -0
  11. package/apps/desktop/src/main/controllers/UploadFileCtr.ts +13 -8
  12. package/apps/desktop/src/main/core/App.ts +8 -0
  13. package/apps/desktop/src/main/core/StaticFileServerManager.ts +221 -0
  14. package/apps/desktop/src/main/services/fileSrv.ts +231 -44
  15. package/apps/desktop/src/main/utils/next-electron-rsc.ts +36 -5
  16. package/changelog/v1.json +9 -0
  17. package/docs/development/database-schema.dbml +70 -0
  18. package/locales/ar/common.json +2 -0
  19. package/locales/ar/components.json +35 -0
  20. package/locales/ar/error.json +2 -0
  21. package/locales/ar/image.json +100 -0
  22. package/locales/ar/metadata.json +4 -0
  23. package/locales/ar/modelProvider.json +1 -0
  24. package/locales/ar/models.json +15 -0
  25. package/locales/ar/plugin.json +22 -0
  26. package/locales/ar/providers.json +3 -0
  27. package/locales/ar/setting.json +5 -0
  28. package/locales/bg-BG/common.json +2 -0
  29. package/locales/bg-BG/components.json +35 -0
  30. package/locales/bg-BG/error.json +2 -0
  31. package/locales/bg-BG/image.json +100 -0
  32. package/locales/bg-BG/metadata.json +4 -0
  33. package/locales/bg-BG/modelProvider.json +1 -0
  34. package/locales/bg-BG/models.json +15 -0
  35. package/locales/bg-BG/plugin.json +22 -0
  36. package/locales/bg-BG/providers.json +3 -0
  37. package/locales/bg-BG/setting.json +5 -0
  38. package/locales/de-DE/common.json +2 -0
  39. package/locales/de-DE/components.json +35 -0
  40. package/locales/de-DE/error.json +2 -0
  41. package/locales/de-DE/image.json +100 -0
  42. package/locales/de-DE/metadata.json +4 -0
  43. package/locales/de-DE/modelProvider.json +1 -0
  44. package/locales/de-DE/models.json +15 -0
  45. package/locales/de-DE/plugin.json +22 -0
  46. package/locales/de-DE/providers.json +3 -0
  47. package/locales/de-DE/setting.json +5 -0
  48. package/locales/en-US/common.json +2 -0
  49. package/locales/en-US/components.json +35 -0
  50. package/locales/en-US/error.json +2 -0
  51. package/locales/en-US/image.json +100 -0
  52. package/locales/en-US/metadata.json +4 -0
  53. package/locales/en-US/modelProvider.json +1 -0
  54. package/locales/en-US/models.json +15 -0
  55. package/locales/en-US/plugin.json +22 -0
  56. package/locales/en-US/providers.json +3 -0
  57. package/locales/en-US/setting.json +5 -0
  58. package/locales/es-ES/common.json +2 -0
  59. package/locales/es-ES/components.json +35 -0
  60. package/locales/es-ES/error.json +2 -0
  61. package/locales/es-ES/image.json +100 -0
  62. package/locales/es-ES/metadata.json +4 -0
  63. package/locales/es-ES/modelProvider.json +1 -0
  64. package/locales/es-ES/models.json +15 -0
  65. package/locales/es-ES/plugin.json +22 -0
  66. package/locales/es-ES/providers.json +3 -0
  67. package/locales/es-ES/setting.json +5 -0
  68. package/locales/fa-IR/common.json +2 -0
  69. package/locales/fa-IR/components.json +35 -0
  70. package/locales/fa-IR/error.json +2 -0
  71. package/locales/fa-IR/image.json +100 -0
  72. package/locales/fa-IR/metadata.json +4 -0
  73. package/locales/fa-IR/modelProvider.json +1 -0
  74. package/locales/fa-IR/models.json +15 -0
  75. package/locales/fa-IR/plugin.json +22 -0
  76. package/locales/fa-IR/providers.json +3 -0
  77. package/locales/fa-IR/setting.json +5 -0
  78. package/locales/fr-FR/common.json +2 -0
  79. package/locales/fr-FR/components.json +35 -0
  80. package/locales/fr-FR/error.json +2 -0
  81. package/locales/fr-FR/image.json +100 -0
  82. package/locales/fr-FR/metadata.json +4 -0
  83. package/locales/fr-FR/modelProvider.json +1 -0
  84. package/locales/fr-FR/models.json +15 -0
  85. package/locales/fr-FR/plugin.json +22 -0
  86. package/locales/fr-FR/providers.json +3 -0
  87. package/locales/fr-FR/setting.json +5 -0
  88. package/locales/it-IT/common.json +2 -0
  89. package/locales/it-IT/components.json +35 -0
  90. package/locales/it-IT/error.json +2 -0
  91. package/locales/it-IT/image.json +100 -0
  92. package/locales/it-IT/metadata.json +4 -0
  93. package/locales/it-IT/modelProvider.json +1 -0
  94. package/locales/it-IT/models.json +15 -0
  95. package/locales/it-IT/plugin.json +22 -0
  96. package/locales/it-IT/providers.json +3 -0
  97. package/locales/it-IT/setting.json +5 -0
  98. package/locales/ja-JP/common.json +2 -0
  99. package/locales/ja-JP/components.json +35 -0
  100. package/locales/ja-JP/error.json +2 -0
  101. package/locales/ja-JP/image.json +100 -0
  102. package/locales/ja-JP/metadata.json +4 -0
  103. package/locales/ja-JP/modelProvider.json +1 -0
  104. package/locales/ja-JP/models.json +15 -0
  105. package/locales/ja-JP/plugin.json +22 -0
  106. package/locales/ja-JP/providers.json +3 -0
  107. package/locales/ja-JP/setting.json +5 -0
  108. package/locales/ko-KR/common.json +2 -0
  109. package/locales/ko-KR/components.json +35 -0
  110. package/locales/ko-KR/error.json +2 -0
  111. package/locales/ko-KR/image.json +100 -0
  112. package/locales/ko-KR/metadata.json +4 -0
  113. package/locales/ko-KR/modelProvider.json +1 -0
  114. package/locales/ko-KR/models.json +15 -0
  115. package/locales/ko-KR/plugin.json +22 -0
  116. package/locales/ko-KR/providers.json +3 -0
  117. package/locales/ko-KR/setting.json +5 -0
  118. package/locales/nl-NL/common.json +2 -0
  119. package/locales/nl-NL/components.json +35 -0
  120. package/locales/nl-NL/error.json +2 -0
  121. package/locales/nl-NL/image.json +100 -0
  122. package/locales/nl-NL/metadata.json +4 -0
  123. package/locales/nl-NL/modelProvider.json +1 -0
  124. package/locales/nl-NL/models.json +15 -0
  125. package/locales/nl-NL/plugin.json +22 -0
  126. package/locales/nl-NL/providers.json +3 -0
  127. package/locales/nl-NL/setting.json +5 -0
  128. package/locales/pl-PL/common.json +2 -0
  129. package/locales/pl-PL/components.json +35 -0
  130. package/locales/pl-PL/error.json +2 -0
  131. package/locales/pl-PL/image.json +100 -0
  132. package/locales/pl-PL/metadata.json +4 -0
  133. package/locales/pl-PL/modelProvider.json +1 -0
  134. package/locales/pl-PL/models.json +15 -0
  135. package/locales/pl-PL/plugin.json +22 -0
  136. package/locales/pl-PL/providers.json +3 -0
  137. package/locales/pl-PL/setting.json +5 -0
  138. package/locales/pt-BR/common.json +2 -0
  139. package/locales/pt-BR/components.json +35 -0
  140. package/locales/pt-BR/error.json +2 -0
  141. package/locales/pt-BR/image.json +100 -0
  142. package/locales/pt-BR/metadata.json +4 -0
  143. package/locales/pt-BR/modelProvider.json +1 -0
  144. package/locales/pt-BR/models.json +15 -0
  145. package/locales/pt-BR/plugin.json +22 -0
  146. package/locales/pt-BR/providers.json +3 -0
  147. package/locales/pt-BR/setting.json +5 -0
  148. package/locales/ru-RU/common.json +2 -0
  149. package/locales/ru-RU/components.json +35 -0
  150. package/locales/ru-RU/error.json +2 -0
  151. package/locales/ru-RU/image.json +100 -0
  152. package/locales/ru-RU/metadata.json +4 -0
  153. package/locales/ru-RU/modelProvider.json +1 -0
  154. package/locales/ru-RU/models.json +15 -0
  155. package/locales/ru-RU/plugin.json +22 -0
  156. package/locales/ru-RU/providers.json +3 -0
  157. package/locales/ru-RU/setting.json +5 -0
  158. package/locales/tr-TR/common.json +2 -0
  159. package/locales/tr-TR/components.json +35 -0
  160. package/locales/tr-TR/error.json +2 -0
  161. package/locales/tr-TR/image.json +100 -0
  162. package/locales/tr-TR/metadata.json +4 -0
  163. package/locales/tr-TR/modelProvider.json +1 -0
  164. package/locales/tr-TR/models.json +15 -0
  165. package/locales/tr-TR/plugin.json +22 -0
  166. package/locales/tr-TR/providers.json +3 -0
  167. package/locales/tr-TR/setting.json +5 -0
  168. package/locales/vi-VN/common.json +2 -0
  169. package/locales/vi-VN/components.json +35 -0
  170. package/locales/vi-VN/error.json +2 -0
  171. package/locales/vi-VN/image.json +100 -0
  172. package/locales/vi-VN/metadata.json +4 -0
  173. package/locales/vi-VN/modelProvider.json +1 -0
  174. package/locales/vi-VN/models.json +15 -0
  175. package/locales/vi-VN/plugin.json +22 -0
  176. package/locales/vi-VN/providers.json +3 -0
  177. package/locales/vi-VN/setting.json +5 -0
  178. package/locales/zh-CN/common.json +2 -0
  179. package/locales/zh-CN/components.json +35 -0
  180. package/locales/zh-CN/error.json +2 -0
  181. package/locales/zh-CN/image.json +100 -0
  182. package/locales/zh-CN/metadata.json +4 -0
  183. package/locales/zh-CN/modelProvider.json +1 -0
  184. package/locales/zh-CN/models.json +15 -0
  185. package/locales/zh-CN/plugin.json +22 -0
  186. package/locales/zh-CN/providers.json +3 -0
  187. package/locales/zh-CN/setting.json +5 -0
  188. package/locales/zh-TW/common.json +2 -0
  189. package/locales/zh-TW/components.json +35 -0
  190. package/locales/zh-TW/error.json +2 -0
  191. package/locales/zh-TW/image.json +100 -0
  192. package/locales/zh-TW/metadata.json +4 -0
  193. package/locales/zh-TW/modelProvider.json +1 -0
  194. package/locales/zh-TW/models.json +15 -0
  195. package/locales/zh-TW/plugin.json +22 -0
  196. package/locales/zh-TW/providers.json +3 -0
  197. package/locales/zh-TW/setting.json +5 -0
  198. package/package.json +11 -4
  199. package/packages/electron-server-ipc/src/events/file.ts +3 -1
  200. package/packages/electron-server-ipc/src/types/file.ts +15 -0
  201. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +11 -1
  202. package/src/app/[variants]/(main)/image/@menu/components/AspectRatioSelect/index.tsx +73 -0
  203. package/src/app/[variants]/(main)/image/@menu/components/SeedNumberInput/index.tsx +39 -0
  204. package/src/app/[variants]/(main)/image/@menu/components/SizeSelect/index.tsx +89 -0
  205. package/src/app/[variants]/(main)/image/@menu/default.tsx +11 -0
  206. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/AspectRatioSelect.tsx +24 -0
  207. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/DimensionControlGroup.tsx +107 -0
  208. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageNum.tsx +290 -0
  209. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUpload.tsx +504 -0
  210. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUrl.tsx +18 -0
  211. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUrlsUpload.tsx +19 -0
  212. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ModelSelect.tsx +155 -0
  213. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/MultiImagesUpload/ImageManageModal.tsx +415 -0
  214. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/MultiImagesUpload/index.tsx +732 -0
  215. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SeedNumberInput.tsx +24 -0
  216. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SizeSelect.tsx +17 -0
  217. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SizeSliderInput.tsx +15 -0
  218. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/StepsSliderInput.tsx +11 -0
  219. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/constants.ts +1 -0
  220. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/index.tsx +93 -0
  221. package/src/app/[variants]/(main)/image/@topic/default.tsx +17 -0
  222. package/src/app/[variants]/(main)/image/@topic/features/Topics/NewTopicButton.tsx +64 -0
  223. package/src/app/[variants]/(main)/image/@topic/features/Topics/SkeletonList.tsx +34 -0
  224. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicItem.tsx +136 -0
  225. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicItemContainer.tsx +91 -0
  226. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +57 -0
  227. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicUrlSync.tsx +37 -0
  228. package/src/app/[variants]/(main)/image/@topic/features/Topics/index.tsx +19 -0
  229. package/src/app/[variants]/(main)/image/NotSupportClient.tsx +153 -0
  230. package/src/app/[variants]/(main)/image/_layout/Desktop/Container.tsx +35 -0
  231. package/src/app/[variants]/(main)/image/_layout/Desktop/RegisterHotkeys.tsx +10 -0
  232. package/src/app/[variants]/(main)/image/_layout/Desktop/index.tsx +30 -0
  233. package/src/app/[variants]/(main)/image/_layout/Mobile/index.tsx +14 -0
  234. package/src/app/[variants]/(main)/image/_layout/type.ts +7 -0
  235. package/src/app/[variants]/(main)/image/features/GenerationFeed/BatchItem.tsx +196 -0
  236. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ActionButtons.tsx +60 -0
  237. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ElapsedTime.tsx +90 -0
  238. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ErrorState.tsx +65 -0
  239. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/LoadingState.tsx +43 -0
  240. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/SuccessState.tsx +49 -0
  241. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/index.tsx +156 -0
  242. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/styles.ts +51 -0
  243. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/types.ts +39 -0
  244. package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/utils.ts +11 -0
  245. package/src/app/[variants]/(main)/image/features/GenerationFeed/index.tsx +97 -0
  246. package/src/app/[variants]/(main)/image/features/ImageWorkspace/Content.tsx +48 -0
  247. package/src/app/[variants]/(main)/image/features/ImageWorkspace/EmptyState.tsx +37 -0
  248. package/src/app/[variants]/(main)/image/features/ImageWorkspace/SkeletonList.tsx +50 -0
  249. package/src/app/[variants]/(main)/image/features/ImageWorkspace/index.tsx +23 -0
  250. package/src/app/[variants]/(main)/image/features/PromptInput/Title.tsx +38 -0
  251. package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +114 -0
  252. package/src/app/[variants]/(main)/image/layout.tsx +19 -0
  253. package/src/app/[variants]/(main)/image/loading.tsx +3 -0
  254. package/src/app/[variants]/(main)/image/page.tsx +47 -0
  255. package/src/app/[variants]/(main)/settings/system-agent/index.tsx +2 -1
  256. package/src/chains/summaryGenerationTitle.ts +25 -0
  257. package/src/components/ImageItem/index.tsx +9 -6
  258. package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/Bedrock.tsx +3 -4
  259. package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/ProviderApiKeyForm.tsx +5 -4
  260. package/src/components/InvalidAPIKey/APIKeyForm/index.tsx +108 -0
  261. package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/useApiKey.ts +2 -1
  262. package/src/components/InvalidAPIKey/index.tsx +30 -0
  263. package/src/components/KeyValueEditor/index.tsx +203 -0
  264. package/src/components/KeyValueEditor/utils.ts +42 -0
  265. package/src/config/aiModels/fal.ts +52 -0
  266. package/src/config/aiModels/index.ts +3 -0
  267. package/src/config/aiModels/openai.ts +20 -6
  268. package/src/config/llm.ts +6 -0
  269. package/src/config/modelProviders/fal.ts +21 -0
  270. package/src/config/modelProviders/index.ts +3 -0
  271. package/src/config/paramsSchemas/fal/flux-kontext-dev.ts +8 -0
  272. package/src/config/paramsSchemas/fal/flux-pro-kontext.ts +11 -0
  273. package/src/config/paramsSchemas/fal/flux-schnell.ts +9 -0
  274. package/src/config/paramsSchemas/fal/imagen4.ts +10 -0
  275. package/src/config/paramsSchemas/openai/gpt-image-1.ts +10 -0
  276. package/src/const/hotkeys.ts +2 -2
  277. package/src/const/image.ts +6 -0
  278. package/src/const/settings/systemAgent.ts +1 -0
  279. package/src/database/client/migrations.json +27 -0
  280. package/src/database/migrations/0026_add_autovacuum_tuning.sql +2 -0
  281. package/src/database/migrations/0027_ai_image.sql +47 -0
  282. package/src/database/migrations/meta/0027_snapshot.json +6003 -0
  283. package/src/database/migrations/meta/_journal.json +7 -0
  284. package/src/database/models/__tests__/asyncTask.test.ts +7 -5
  285. package/src/database/models/__tests__/file.test.ts +287 -0
  286. package/src/database/models/__tests__/generation.test.ts +786 -0
  287. package/src/database/models/__tests__/generationBatch.test.ts +614 -0
  288. package/src/database/models/__tests__/generationTopic.test.ts +411 -0
  289. package/src/database/models/aiModel.ts +2 -0
  290. package/src/database/models/asyncTask.ts +1 -1
  291. package/src/database/models/file.ts +28 -20
  292. package/src/database/models/generation.ts +197 -0
  293. package/src/database/models/generationBatch.ts +212 -0
  294. package/src/database/models/generationTopic.ts +131 -0
  295. package/src/database/repositories/aiInfra/index.test.ts +151 -1
  296. package/src/database/repositories/aiInfra/index.ts +28 -19
  297. package/src/database/repositories/tableViewer/index.test.ts +1 -1
  298. package/src/database/schemas/file.ts +8 -0
  299. package/src/database/schemas/generation.ts +127 -0
  300. package/src/database/schemas/index.ts +1 -0
  301. package/src/database/schemas/relations.ts +45 -1
  302. package/src/database/type.ts +2 -0
  303. package/src/database/utils/idGenerator.ts +3 -0
  304. package/src/features/Conversation/Error/ChatInvalidApiKey.tsx +39 -0
  305. package/src/features/Conversation/Error/InvalidAccessCode.tsx +2 -2
  306. package/src/features/Conversation/Error/index.tsx +3 -3
  307. package/src/features/ImageSidePanel/index.tsx +83 -0
  308. package/src/features/ImageTopicPanel/index.tsx +79 -0
  309. package/src/features/PluginDevModal/MCPManifestForm/CollapsibleSection.tsx +62 -0
  310. package/src/features/PluginDevModal/MCPManifestForm/QuickImportSection.tsx +158 -0
  311. package/src/features/PluginDevModal/MCPManifestForm/index.tsx +99 -155
  312. package/src/features/PluginStore/McpList/Detail/Settings/index.tsx +5 -2
  313. package/src/hooks/useDownloadImage.ts +31 -0
  314. package/src/hooks/useFetchGenerationTopics.ts +13 -0
  315. package/src/hooks/useHotkeys/imageScope.ts +48 -0
  316. package/src/libs/mcp/client.ts +55 -22
  317. package/src/libs/mcp/types.ts +42 -6
  318. package/src/libs/model-runtime/BaseAI.ts +3 -1
  319. package/src/libs/model-runtime/ModelRuntime.test.ts +80 -0
  320. package/src/libs/model-runtime/ModelRuntime.ts +15 -1
  321. package/src/libs/model-runtime/UniformRuntime/index.ts +4 -1
  322. package/src/libs/model-runtime/fal/index.test.ts +442 -0
  323. package/src/libs/model-runtime/fal/index.ts +88 -0
  324. package/src/libs/model-runtime/openai/index.test.ts +396 -2
  325. package/src/libs/model-runtime/openai/index.ts +129 -3
  326. package/src/libs/model-runtime/runtimeMap.ts +2 -0
  327. package/src/libs/model-runtime/types/image.ts +25 -0
  328. package/src/libs/model-runtime/types/type.ts +1 -0
  329. package/src/libs/model-runtime/utils/openaiCompatibleFactory/index.ts +10 -0
  330. package/src/libs/standard-parameters/index.ts +1 -0
  331. package/src/libs/standard-parameters/meta-schema.test.ts +214 -0
  332. package/src/libs/standard-parameters/meta-schema.ts +147 -0
  333. package/src/libs/swr/index.ts +1 -0
  334. package/src/libs/trpc/async/asyncAuth.ts +29 -8
  335. package/src/libs/trpc/async/context.ts +42 -4
  336. package/src/libs/trpc/async/index.ts +17 -4
  337. package/src/libs/trpc/async/init.ts +8 -0
  338. package/src/libs/trpc/client/lambda.ts +19 -2
  339. package/src/locales/default/common.ts +2 -0
  340. package/src/locales/default/components.ts +35 -0
  341. package/src/locales/default/error.ts +2 -0
  342. package/src/locales/default/image.ts +100 -0
  343. package/src/locales/default/index.ts +2 -0
  344. package/src/locales/default/metadata.ts +4 -0
  345. package/src/locales/default/modelProvider.ts +2 -0
  346. package/src/locales/default/plugin.ts +22 -0
  347. package/src/locales/default/setting.ts +5 -0
  348. package/src/middleware.ts +1 -0
  349. package/src/server/modules/ElectronIPCClient/index.ts +9 -1
  350. package/src/server/modules/S3/index.ts +15 -0
  351. package/src/server/routers/async/caller.ts +9 -1
  352. package/src/server/routers/async/image.ts +253 -0
  353. package/src/server/routers/async/index.ts +2 -0
  354. package/src/server/routers/lambda/aiProvider.test.ts +1 -0
  355. package/src/server/routers/lambda/generation.test.ts +267 -0
  356. package/src/server/routers/lambda/generation.ts +86 -0
  357. package/src/server/routers/lambda/generationBatch.test.ts +376 -0
  358. package/src/server/routers/lambda/generationBatch.ts +56 -0
  359. package/src/server/routers/lambda/generationTopic.test.ts +508 -0
  360. package/src/server/routers/lambda/generationTopic.ts +93 -0
  361. package/src/server/routers/lambda/image.ts +248 -0
  362. package/src/server/routers/lambda/index.ts +8 -0
  363. package/src/server/routers/tools/mcp.ts +15 -0
  364. package/src/server/services/file/__tests__/index.test.ts +135 -0
  365. package/src/server/services/file/impls/local.test.ts +153 -52
  366. package/src/server/services/file/impls/local.ts +70 -46
  367. package/src/server/services/file/impls/s3.test.ts +114 -0
  368. package/src/server/services/file/impls/s3.ts +40 -0
  369. package/src/server/services/file/impls/type.ts +10 -0
  370. package/src/server/services/file/index.ts +14 -0
  371. package/src/server/services/generation/index.ts +239 -0
  372. package/src/server/services/mcp/index.ts +20 -2
  373. package/src/services/__tests__/generation.test.ts +40 -0
  374. package/src/services/__tests__/generationBatch.test.ts +36 -0
  375. package/src/services/__tests__/generationTopic.test.ts +72 -0
  376. package/src/services/electron/file.ts +3 -1
  377. package/src/services/generation.ts +16 -0
  378. package/src/services/generationBatch.ts +25 -0
  379. package/src/services/generationTopic.ts +28 -0
  380. package/src/services/image.ts +33 -0
  381. package/src/services/mcp.ts +12 -7
  382. package/src/services/upload.ts +43 -9
  383. package/src/store/aiInfra/slices/aiProvider/action.ts +25 -5
  384. package/src/store/aiInfra/slices/aiProvider/initialState.ts +1 -0
  385. package/src/store/aiInfra/slices/aiProvider/selectors.ts +3 -0
  386. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +5 -5
  387. package/src/store/chat/slices/message/action.ts +2 -2
  388. package/src/store/chat/slices/translate/action.ts +1 -1
  389. package/src/store/global/initialState.ts +9 -0
  390. package/src/store/global/selectors/systemStatus.ts +8 -0
  391. package/src/store/image/index.ts +2 -0
  392. package/src/store/image/initialState.ts +25 -0
  393. package/src/store/image/selectors.ts +4 -0
  394. package/src/store/image/slices/createImage/action.test.ts +330 -0
  395. package/src/store/image/slices/createImage/action.ts +134 -0
  396. package/src/store/image/slices/createImage/initialState.ts +9 -0
  397. package/src/store/image/slices/createImage/selectors.test.ts +114 -0
  398. package/src/store/image/slices/createImage/selectors.ts +9 -0
  399. package/src/store/image/slices/generationBatch/action.test.ts +495 -0
  400. package/src/store/image/slices/generationBatch/action.ts +303 -0
  401. package/src/store/image/slices/generationBatch/initialState.ts +13 -0
  402. package/src/store/image/slices/generationBatch/reducer.test.ts +568 -0
  403. package/src/store/image/slices/generationBatch/reducer.ts +101 -0
  404. package/src/store/image/slices/generationBatch/selectors.test.ts +307 -0
  405. package/src/store/image/slices/generationBatch/selectors.ts +36 -0
  406. package/src/store/image/slices/generationConfig/action.test.ts +351 -0
  407. package/src/store/image/slices/generationConfig/action.ts +295 -0
  408. package/src/store/image/slices/generationConfig/hooks.test.ts +304 -0
  409. package/src/store/image/slices/generationConfig/hooks.ts +118 -0
  410. package/src/store/image/slices/generationConfig/index.ts +1 -0
  411. package/src/store/image/slices/generationConfig/initialState.ts +37 -0
  412. package/src/store/image/slices/generationConfig/selectors.test.ts +204 -0
  413. package/src/store/image/slices/generationConfig/selectors.ts +25 -0
  414. package/src/store/image/slices/generationTopic/action.test.ts +687 -0
  415. package/src/store/image/slices/generationTopic/action.ts +319 -0
  416. package/src/store/image/slices/generationTopic/index.ts +2 -0
  417. package/src/store/image/slices/generationTopic/initialState.ts +14 -0
  418. package/src/store/image/slices/generationTopic/reducer.test.ts +198 -0
  419. package/src/store/image/slices/generationTopic/reducer.ts +66 -0
  420. package/src/store/image/slices/generationTopic/selectors.test.ts +103 -0
  421. package/src/store/image/slices/generationTopic/selectors.ts +15 -0
  422. package/src/store/image/store.ts +42 -0
  423. package/src/store/image/utils/size.ts +51 -0
  424. package/src/store/tool/slices/customPlugin/action.ts +10 -1
  425. package/src/store/tool/slices/mcpStore/action.ts +6 -4
  426. package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +4 -0
  427. package/src/store/user/slices/settings/selectors/systemAgent.ts +2 -0
  428. package/src/types/aiModel.ts +8 -3
  429. package/src/types/aiProvider.ts +1 -0
  430. package/src/types/asyncTask.ts +2 -0
  431. package/src/types/files/index.ts +5 -0
  432. package/src/types/generation/index.ts +80 -0
  433. package/src/types/hotkey.ts +2 -0
  434. package/src/types/plugins/mcp.ts +2 -6
  435. package/src/types/tool/plugin.ts +8 -0
  436. package/src/types/user/settings/keyVaults.ts +5 -0
  437. package/src/types/user/settings/systemAgent.ts +1 -0
  438. package/src/utils/client/downloadFile.ts +33 -4
  439. package/src/utils/number.test.ts +105 -0
  440. package/src/utils/number.ts +25 -0
  441. package/src/utils/server/__tests__/geo.test.ts +6 -3
  442. package/src/utils/storeDebug.test.ts +152 -0
  443. package/src/utils/storeDebug.ts +16 -7
  444. package/src/utils/time.test.ts +259 -0
  445. package/src/utils/time.ts +18 -0
  446. package/src/utils/units.ts +61 -0
  447. package/src/utils/url.test.ts +358 -9
  448. package/src/utils/url.ts +105 -3
  449. package/{vitest.server.config.ts → vitest.config.server.ts} +3 -0
  450. package/.cursor/rules/i18n/i18n-auto-attached.mdc +0 -6
  451. package/src/features/Conversation/Error/APIKeyForm/index.tsx +0 -105
  452. package/src/features/Conversation/Error/InvalidAPIKey.tsx +0 -16
  453. package/src/features/PluginDevModal/MCPManifestForm/EnvEditor.tsx +0 -227
  454. /package/.cursor/rules/{i18n/i18n.mdc → i18n.mdc} +0 -0
  455. /package/src/app/[variants]/(main)/settings/system-agent/features/{createForm.tsx → SystemAgentForm.tsx} +0 -0
  456. /package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/LoadingContext.ts +0 -0
@@ -0,0 +1,100 @@
1
+ {
2
+ "config": {
3
+ "aspectRatio": {
4
+ "label": "Rapporto",
5
+ "lock": "Blocca rapporto d'aspetto",
6
+ "unlock": "Sblocca rapporto d'aspetto"
7
+ },
8
+ "header": {
9
+ "desc": "Descrizione semplice, crea subito",
10
+ "title": "Pittura"
11
+ },
12
+ "height": {
13
+ "label": "Altezza"
14
+ },
15
+ "imageNum": {
16
+ "label": "Numero di immagini"
17
+ },
18
+ "imageUrl": {
19
+ "label": "Immagine di riferimento"
20
+ },
21
+ "imageUrls": {
22
+ "label": "Immagini di riferimento"
23
+ },
24
+ "model": {
25
+ "label": "Modello"
26
+ },
27
+ "prompt": {
28
+ "placeholder": "Descrivi ciò che desideri generare"
29
+ },
30
+ "seed": {
31
+ "label": "Seed",
32
+ "random": "Seme casuale"
33
+ },
34
+ "size": {
35
+ "label": "Dimensione"
36
+ },
37
+ "steps": {
38
+ "label": "Passaggi"
39
+ },
40
+ "title": "Disegno AI",
41
+ "width": {
42
+ "label": "Larghezza"
43
+ }
44
+ },
45
+ "generation": {
46
+ "actions": {
47
+ "applySeed": "Applica seme",
48
+ "copyError": "Copia errore",
49
+ "copyPrompt": "Copia suggerimento",
50
+ "copySeed": "Copia seed",
51
+ "delete": "Elimina",
52
+ "deleteBatch": "Elimina batch",
53
+ "download": "Scarica",
54
+ "downloadFailed": "Download immagine fallito",
55
+ "errorCopied": "Messaggio di errore copiato negli appunti",
56
+ "errorCopyFailed": "Copia messaggio di errore fallita",
57
+ "generate": "Genera",
58
+ "promptCopied": "Prompt copiato negli appunti",
59
+ "promptCopyFailed": "Copia prompt fallita",
60
+ "reuseSettings": "Riutilizza impostazioni",
61
+ "seedApplied": "Seme applicato alla configurazione",
62
+ "seedApplyFailed": "Applicazione del seme fallita",
63
+ "seedCopied": "Seed copiato negli appunti",
64
+ "seedCopyFailed": "Copia seed fallita"
65
+ },
66
+ "metadata": {
67
+ "count": "{{count}} immagini"
68
+ },
69
+ "status": {
70
+ "failed": "Generazione fallita",
71
+ "generating": "Generazione in corso..."
72
+ }
73
+ },
74
+ "notSupportGuide": {
75
+ "desc": "L'istanza attuale è in modalità database client e non supporta la generazione di immagini AI. Passa alla <1>modalità di distribuzione database server</1> o usa direttamente <3>LobeChat Cloud</3>",
76
+ "features": {
77
+ "fileIntegration": {
78
+ "desc": "Integrazione profonda con il sistema di gestione file, le immagini generate vengono salvate automaticamente nel file system per una gestione e organizzazione unificata",
79
+ "title": "Integrazione con file system"
80
+ },
81
+ "llmAssisted": {
82
+ "desc": "Combina le capacità dei grandi modelli linguistici per ottimizzare e ampliare intelligentemente i prompt, migliorando la qualità della generazione delle immagini (Prossimamente)",
83
+ "title": "Generazione assistita da LLM"
84
+ },
85
+ "multiProviders": {
86
+ "desc": "Supporta diversi fornitori di servizi di disegno AI, inclusi OpenAI gpt-image-1, Google Imagen, FAL.ai, offrendo una vasta scelta di modelli",
87
+ "title": "Supporto multi-fornitori"
88
+ }
89
+ },
90
+ "title": "La modalità di distribuzione attuale non supporta il disegno AI"
91
+ },
92
+ "topic": {
93
+ "createNew": "Crea nuovo argomento",
94
+ "deleteConfirm": "Elimina argomento generato",
95
+ "deleteConfirmDesc": "Stai per eliminare questo argomento generato. L'eliminazione è irreversibile, procedi con cautela.",
96
+ "empty": "Nessun argomento generato",
97
+ "title": "Tema della pittura",
98
+ "untitled": "Argomento predefinito"
99
+ }
100
+ }
@@ -32,6 +32,10 @@
32
32
  "search": "Cerca",
33
33
  "title": "Scopri"
34
34
  },
35
+ "image": {
36
+ "description": "{{appName}} ti offre la migliore esperienza d'uso con GPT Image, Flux, Midjourney, Stable Diffusion",
37
+ "title": "Disegno AI"
38
+ },
35
39
  "plugins": {
36
40
  "description": "Ricerca, generazione di grafici, accademico, generazione di immagini, generazione di video, generazione vocale, flussi di lavoro automatizzati, personalizza le capacità dei plugin ToolCall esclusivi di ChatGPT / Claude",
37
41
  "title": "Mercato dei plugin"
@@ -66,6 +66,7 @@
66
66
  "customRegion": "Regione del servizio personalizzata",
67
67
  "customSessionToken": "Token di sessione personalizzato",
68
68
  "description": "Inserisci la tua chiave di accesso AWS AccessKeyId / SecretAccessKey per avviare la sessione. L'applicazione non memorizzerà la tua configurazione di autenticazione",
69
+ "imageGenerationDescription": "Inserisci il tuo AWS AccessKeyId / SecretAccessKey per iniziare a generare. L'applicazione non registrerà le tue credenziali di autenticazione",
69
70
  "title": "Usa le informazioni di autenticazione Bedrock personalizzate"
70
71
  }
71
72
  },
@@ -1019,6 +1019,15 @@
1019
1019
  "ernie-x1-turbo-32k": {
1020
1020
  "description": "Rispetto a ERNIE-X1-32K, il modello offre prestazioni e risultati migliori."
1021
1021
  },
1022
+ "flux-kontext/dev": {
1023
+ "description": "Modello di editing immagini Frontier."
1024
+ },
1025
+ "flux-pro/kontext": {
1026
+ "description": "FLUX.1 Kontext [pro] è in grado di elaborare testo e immagini di riferimento come input, realizzando senza soluzione di continuità modifiche locali mirate e complesse trasformazioni dell'intera scena."
1027
+ },
1028
+ "flux/schnell": {
1029
+ "description": "FLUX.1 [schnell] è un modello trasformatore a flusso con 12 miliardi di parametri, capace di generare immagini di alta qualità da testo in 1-4 passaggi, adatto per uso personale e commerciale."
1030
+ },
1022
1031
  "gemini-1.0-pro-001": {
1023
1032
  "description": "Gemini 1.0 Pro 001 (Tuning) offre prestazioni stabili e ottimizzabili, è la scelta ideale per soluzioni a compiti complessi."
1024
1033
  },
@@ -1364,6 +1373,9 @@
1364
1373
  "gpt-4o-transcribe": {
1365
1374
  "description": "GPT-4o Transcribe è un modello di trascrizione vocale che utilizza GPT-4o per convertire audio in testo. Rispetto al modello Whisper originale, migliora il tasso di errore delle parole e la precisione nel riconoscimento linguistico. Usalo per ottenere trascrizioni più accurate."
1366
1375
  },
1376
+ "gpt-image-1": {
1377
+ "description": "Modello nativo multimodale di generazione immagini di ChatGPT"
1378
+ },
1367
1379
  "grok-2-1212": {
1368
1380
  "description": "Questo modello ha migliorato l'accuratezza, il rispetto delle istruzioni e le capacità multilingue."
1369
1381
  },
@@ -1484,6 +1496,9 @@
1484
1496
  "hunyuan-vision": {
1485
1497
  "description": "Ultimo modello multimodale di Hunyuan, supporta l'input di immagini e testo per generare contenuti testuali."
1486
1498
  },
1499
+ "imagen4/preview": {
1500
+ "description": "Il modello di generazione immagini di massima qualità di Google"
1501
+ },
1487
1502
  "internlm/internlm2_5-7b-chat": {
1488
1503
  "description": "InternLM2.5 offre soluzioni di dialogo intelligente in vari scenari."
1489
1504
  },
@@ -57,12 +57,28 @@
57
57
  }
58
58
  },
59
59
  "mcp": {
60
+ "advanced": {
61
+ "title": "Impostazioni avanzate"
62
+ },
60
63
  "args": {
61
64
  "desc": "Elenco di parametri da passare al comando di esecuzione, di solito qui si inserisce il nome del server MCP o il percorso dello script di avvio",
62
65
  "label": "Parametri del comando",
63
66
  "placeholder": "Ad esempio: --port 8080 --debug",
64
67
  "required": "Inserisci i parametri di avvio"
65
68
  },
69
+ "auth": {
70
+ "bear": "API Key",
71
+ "desc": "Seleziona il metodo di autenticazione del server MCP",
72
+ "label": "Tipo di autenticazione",
73
+ "none": "Nessuna autenticazione richiesta",
74
+ "placeholder": "Seleziona il tipo di autenticazione",
75
+ "token": {
76
+ "desc": "Inserisci la tua API Key o Bearer Token",
77
+ "label": "API Key",
78
+ "placeholder": "sk-xxxxx",
79
+ "required": "Inserisci il token di autenticazione"
80
+ }
81
+ },
66
82
  "avatar": {
67
83
  "label": "Icona del plugin"
68
84
  },
@@ -90,6 +106,11 @@
90
106
  "label": "Variabili d'ambiente del server MCP",
91
107
  "stringifyError": "Impossibile serializzare i parametri, controlla il formato dei parametri"
92
108
  },
109
+ "headers": {
110
+ "add": "Aggiungi una riga",
111
+ "desc": "Inserisci le intestazioni della richiesta",
112
+ "label": "Intestazioni HTTP"
113
+ },
93
114
  "identifier": {
94
115
  "desc": "Assegna un nome al tuo plugin MCP, deve utilizzare caratteri inglesi",
95
116
  "invalid": "Puoi inserire solo caratteri inglesi, numeri, e i simboli - e _",
@@ -269,6 +290,7 @@
269
290
  "showDetails": "Mostra dettagli"
270
291
  },
271
292
  "errorTypes": {
293
+ "AUTHORIZATION_ERROR": "Errore di autorizzazione",
272
294
  "CONNECTION_FAILED": "Connessione fallita",
273
295
  "INITIALIZATION_TIMEOUT": "Timeout di inizializzazione",
274
296
  "PROCESS_SPAWN_ERROR": "Errore nell'avvio del processo",
@@ -29,6 +29,9 @@
29
29
  "deepseek": {
30
30
  "description": "DeepSeek è un'azienda focalizzata sulla ricerca e applicazione della tecnologia AI, il cui ultimo modello DeepSeek-V2.5 combina capacità di dialogo generico e elaborazione del codice, realizzando miglioramenti significativi nell'allineamento delle preferenze umane, nei compiti di scrittura e nel rispetto delle istruzioni."
31
31
  },
32
+ "fal": {
33
+ "description": "Piattaforma di media generativi rivolta agli sviluppatori"
34
+ },
32
35
  "fireworksai": {
33
36
  "description": "Fireworks AI è un fornitore leader di servizi di modelli linguistici avanzati, focalizzato su chiamate funzionali e elaborazione multimodale. Il suo ultimo modello Firefunction V2, basato su Llama-3, è ottimizzato per chiamate di funzione, dialogo e rispetto delle istruzioni. Il modello di linguaggio visivo FireLLaVA-13B supporta input misti di immagini e testo. Altri modelli notevoli includono la serie Llama e la serie Mixtral, offrendo supporto efficiente per il rispetto e la generazione di istruzioni multilingue."
34
37
  },
@@ -484,6 +484,11 @@
484
484
  "placeholder": "Inserisci il suggerimento personalizzato",
485
485
  "title": "Suggerimento personalizzato"
486
486
  },
487
+ "generationTopic": {
488
+ "label": "Modello di denominazione argomenti per disegno AI",
489
+ "modelDesc": "Modello specificato per la denominazione automatica degli argomenti nel disegno AI",
490
+ "title": "Denominazione automatica argomenti per disegno AI"
491
+ },
487
492
  "helpInfo": "Quando crei un nuovo assistente, verranno utilizzate le impostazioni predefinite dell'assistente come valori predefiniti.",
488
493
  "historyCompress": {
489
494
  "label": "Modello di storia delle conversazioni",
@@ -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": "AI 画像生成",
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": "OpenAI 代理アドレスを追加する(オプション)",
131
132
  "apiKey": {
132
133
  "description": "{{name}} APIキーを入力してセッションを開始します。",
134
+ "imageGenerationDescription": "{{name}} の API キーを入力すると、生成を開始できます",
133
135
  "title": "カスタム{{name}} APIキーを使用"
134
136
  },
135
137
  "closeMessage": "ヒントを閉じる",
@@ -0,0 +1,100 @@
1
+ {
2
+ "config": {
3
+ "aspectRatio": {
4
+ "label": "比率",
5
+ "lock": "アスペクト比を固定する",
6
+ "unlock": "アスペクト比の固定を解除する"
7
+ },
8
+ "header": {
9
+ "desc": "簡単な説明、すぐに創作",
10
+ "title": "絵画"
11
+ },
12
+ "height": {
13
+ "label": "高さ"
14
+ },
15
+ "imageNum": {
16
+ "label": "画像数"
17
+ },
18
+ "imageUrl": {
19
+ "label": "参考画像"
20
+ },
21
+ "imageUrls": {
22
+ "label": "参考画像"
23
+ },
24
+ "model": {
25
+ "label": "モデル"
26
+ },
27
+ "prompt": {
28
+ "placeholder": "生成したい内容を記述してください"
29
+ },
30
+ "seed": {
31
+ "label": "シード",
32
+ "random": "ランダムシード"
33
+ },
34
+ "size": {
35
+ "label": "サイズ"
36
+ },
37
+ "steps": {
38
+ "label": "ステップ数"
39
+ },
40
+ "title": "AI 絵画",
41
+ "width": {
42
+ "label": "幅"
43
+ }
44
+ },
45
+ "generation": {
46
+ "actions": {
47
+ "applySeed": "シードを適用する",
48
+ "copyError": "エラー情報をコピー",
49
+ "copyPrompt": "プロンプトをコピー",
50
+ "copySeed": "シードをコピー",
51
+ "delete": "削除",
52
+ "deleteBatch": "バッチを削除",
53
+ "download": "ダウンロード",
54
+ "downloadFailed": "画像のダウンロードに失敗しました",
55
+ "errorCopied": "エラー情報がクリップボードにコピーされました",
56
+ "errorCopyFailed": "エラー情報のコピーに失敗しました",
57
+ "generate": "生成",
58
+ "promptCopied": "プロンプトがクリップボードにコピーされました",
59
+ "promptCopyFailed": "プロンプトのコピーに失敗しました",
60
+ "reuseSettings": "設定を再利用",
61
+ "seedApplied": "シードが設定に適用されました",
62
+ "seedApplyFailed": "シードの適用に失敗しました",
63
+ "seedCopied": "シードがクリップボードにコピーされました",
64
+ "seedCopyFailed": "シードのコピーに失敗しました"
65
+ },
66
+ "metadata": {
67
+ "count": "{{count}} 枚の画像"
68
+ },
69
+ "status": {
70
+ "failed": "生成失敗",
71
+ "generating": "生成中..."
72
+ }
73
+ },
74
+ "notSupportGuide": {
75
+ "desc": "現在のデプロイはクライアントデータベースモードのため、AI画像生成機能は使用できません。<1>サーバーデータベースデプロイモード</1>に切り替えるか、直接 <3>LobeChat Cloud</3> をご利用ください。",
76
+ "features": {
77
+ "fileIntegration": {
78
+ "desc": "ファイル管理システムと深く統合され、生成された画像は自動的にファイルシステムに保存され、統一的な管理と整理が可能です",
79
+ "title": "ファイルシステム連携"
80
+ },
81
+ "llmAssisted": {
82
+ "desc": "大規模言語モデルの能力を活用し、プロンプトの最適化と拡張を行い、画像生成の品質を向上させます(近日公開予定)",
83
+ "title": "LLM支援生成"
84
+ },
85
+ "multiProviders": {
86
+ "desc": "OpenAI gpt-image-1、Google Imagen、FAL.ai など複数のAI絵画サービスプロバイダーをサポートし、多彩なモデル選択を提供します",
87
+ "title": "複数プロバイダー対応"
88
+ }
89
+ },
90
+ "title": "現在のデプロイモードはAI絵画をサポートしていません"
91
+ },
92
+ "topic": {
93
+ "createNew": "新しいテーマを作成",
94
+ "deleteConfirm": "生成テーマを削除",
95
+ "deleteConfirmDesc": "この生成テーマを削除すると復元できません。慎重に操作してください。",
96
+ "empty": "生成されたテーマはありません",
97
+ "title": "絵画のテーマ",
98
+ "untitled": "デフォルトテーマ"
99
+ }
100
+ }
@@ -32,6 +32,10 @@
32
32
  "search": "検索",
33
33
  "title": "発見"
34
34
  },
35
+ "image": {
36
+ "description": "{{appName}} が最高の GPT 画像、Flux、Midjourney、Stable Diffusion の使用体験をお届けします",
37
+ "title": "AI 絵画"
38
+ },
35
39
  "plugins": {
36
40
  "description": "検索、グラフ生成、学術、画像生成、動画生成、音声生成、自動化ワークフロー、ChatGPT / Claude専用のToolCallプラグイン機能をカスタマイズ",
37
41
  "title": "プラグインマーケット"
@@ -66,6 +66,7 @@
66
66
  "customRegion": "カスタムサービスリージョン",
67
67
  "customSessionToken": "カスタムセッショントークン",
68
68
  "description": "AWS AccessKeyId / SecretAccessKey を入力するとセッションを開始できます。アプリは認証情報を記録しません",
69
+ "imageGenerationDescription": "AWSのAccessKeyId / SecretAccessKeyを入力すると、生成を開始できます。アプリは認証情報を記録しません。",
69
70
  "title": "使用カスタム Bedrock 認証情報"
70
71
  }
71
72
  },
@@ -1019,6 +1019,15 @@
1019
1019
  "ernie-x1-turbo-32k": {
1020
1020
  "description": "ERNIE-X1-32Kと比較して、モデルの効果と性能が向上しています。"
1021
1021
  },
1022
+ "flux-kontext/dev": {
1023
+ "description": "フロンティアイメージ編集モデル。"
1024
+ },
1025
+ "flux-pro/kontext": {
1026
+ "description": "FLUX.1 Kontext [pro] はテキストと参照画像を入力として処理し、目的に応じた局所編集や複雑な全体シーンの変換をシームレスに実現します。"
1027
+ },
1028
+ "flux/schnell": {
1029
+ "description": "FLUX.1 [schnell] は120億パラメータを持つストリーミングトランスフォーマーモデルで、1〜4ステップでテキストから高品質な画像を生成し、個人および商用利用に適しています。"
1030
+ },
1022
1031
  "gemini-1.0-pro-001": {
1023
1032
  "description": "Gemini 1.0 Pro 001(チューニング)は、安定した調整可能な性能を提供し、複雑なタスクのソリューションに理想的な選択肢です。"
1024
1033
  },
@@ -1364,6 +1373,9 @@
1364
1373
  "gpt-4o-transcribe": {
1365
1374
  "description": "GPT-4o TranscribeはGPT-4oを使用した音声からテキストへの転写モデルです。元のWhisperモデルと比較して単語誤り率が改善され、言語認識と精度が向上しています。より正確な転写を得るためにご利用ください。"
1366
1375
  },
1376
+ "gpt-image-1": {
1377
+ "description": "ChatGPT ネイティブのマルチモーダル画像生成モデル"
1378
+ },
1367
1379
  "grok-2-1212": {
1368
1380
  "description": "このモデルは、精度、指示の遵守、そして多言語能力において改善されています。"
1369
1381
  },
@@ -1484,6 +1496,9 @@
1484
1496
  "hunyuan-vision": {
1485
1497
  "description": "混元の最新のマルチモーダルモデルで、画像とテキストの入力をサポートし、テキストコンテンツを生成します。"
1486
1498
  },
1499
+ "imagen4/preview": {
1500
+ "description": "Google の最高品質の画像生成モデル"
1501
+ },
1487
1502
  "internlm/internlm2_5-7b-chat": {
1488
1503
  "description": "InternLM2.5は多様なシーンでのインテリジェントな対話ソリューションを提供します。"
1489
1504
  },
@@ -57,12 +57,28 @@
57
57
  }
58
58
  },
59
59
  "mcp": {
60
+ "advanced": {
61
+ "title": "高度な設定"
62
+ },
60
63
  "args": {
61
64
  "desc": "実行コマンドに渡すパラメータのリスト。通常、ここにMCPサーバー名または起動スクリプトのパスを入力します。",
62
65
  "label": "コマンドパラメータ",
63
66
  "placeholder": "例:--port 8080 --debug",
64
67
  "required": "起動パラメータを入力してください"
65
68
  },
69
+ "auth": {
70
+ "bear": "APIキー",
71
+ "desc": "MCPサーバーの認証方法を選択してください",
72
+ "label": "認証タイプ",
73
+ "none": "認証不要",
74
+ "placeholder": "認証タイプを選択してください",
75
+ "token": {
76
+ "desc": "APIキーまたはBearerトークンを入力してください",
77
+ "label": "APIキー",
78
+ "placeholder": "sk-xxxxx",
79
+ "required": "認証トークンを入力してください"
80
+ }
81
+ },
66
82
  "avatar": {
67
83
  "label": "プラグインアイコン"
68
84
  },
@@ -90,6 +106,11 @@
90
106
  "label": "MCPサーバー環境変数",
91
107
  "stringifyError": "パラメータをシリアライズできません。パラメータの形式を確認してください"
92
108
  },
109
+ "headers": {
110
+ "add": "行を追加",
111
+ "desc": "リクエストヘッダーを入力してください",
112
+ "label": "HTTPヘッダー"
113
+ },
93
114
  "identifier": {
94
115
  "desc": "あなたの MCP プラグインに名前を指定してください。英字を使用する必要があります",
95
116
  "invalid": "英字、数字、- および _ のみを入力できます",
@@ -269,6 +290,7 @@
269
290
  "showDetails": "詳細を表示"
270
291
  },
271
292
  "errorTypes": {
293
+ "AUTHORIZATION_ERROR": "認証エラー",
272
294
  "CONNECTION_FAILED": "接続失敗",
273
295
  "INITIALIZATION_TIMEOUT": "初期化タイムアウト",
274
296
  "PROCESS_SPAWN_ERROR": "プロセス起動失敗",
@@ -29,6 +29,9 @@
29
29
  "deepseek": {
30
30
  "description": "DeepSeekは、人工知能技術の研究と応用に特化した企業であり、最新のモデルDeepSeek-V2.5は、汎用対話とコード処理能力を融合させ、人間の好みの整合、ライティングタスク、指示の遵守などの面で顕著な向上を実現しています。"
31
31
  },
32
+ "fal": {
33
+ "description": "開発者向けの生成型メディアプラットフォーム"
34
+ },
32
35
  "fireworksai": {
33
36
  "description": "Fireworks AIは、先進的な言語モデルサービスのリーダーであり、機能呼び出しと多モーダル処理に特化しています。最新のモデルFirefunction V2はLlama-3に基づいており、関数呼び出し、対話、指示の遵守に最適化されています。視覚言語モデルFireLLaVA-13Bは、画像とテキストの混合入力をサポートしています。他の注目すべきモデルには、LlamaシリーズやMixtralシリーズがあり、高効率の多言語指示遵守と生成サポートを提供しています。"
34
37
  },
@@ -484,6 +484,11 @@
484
484
  "placeholder": "カスタムプロンプトを入力してください",
485
485
  "title": "カスタムプロンプト"
486
486
  },
487
+ "generationTopic": {
488
+ "label": "AI絵画トピック命名モデル",
489
+ "modelDesc": "AI絵画の自動トピック命名に使用されるモデルを指定します",
490
+ "title": "AI絵画自動トピック命名"
491
+ },
487
492
  "helpInfo": "新しいアシスタントを作成するとき、デフォルトのアシスタント設定がプリセット値として使用されます。",
488
493
  "historyCompress": {
489
494
  "label": "会話履歴モデル",
@@ -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": "AI 그림",
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": "OpenAI 프록시 주소 추가(선택 사항)",
131
132
  "apiKey": {
132
133
  "description": "{{name}} API 키를 입력하면 세션을 시작할 수 있습니다.",
134
+ "imageGenerationDescription": "{{name}} API 키를 입력하면 생성이 시작됩니다",
133
135
  "title": "사용자 정의 {{name}} API 키 사용"
134
136
  },
135
137
  "closeMessage": "알림 닫기",