libre-webui 0.25.0 → 0.26.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 (510) hide show
  1. package/README.md +32 -22
  2. package/backend/dist/index.d.ts.map +1 -1
  3. package/backend/dist/index.js +26 -4
  4. package/backend/dist/index.js.map +1 -1
  5. package/backend/dist/middleware/auth.d.ts +7 -0
  6. package/backend/dist/middleware/auth.d.ts.map +1 -1
  7. package/backend/dist/middleware/auth.js +26 -0
  8. package/backend/dist/middleware/auth.js.map +1 -1
  9. package/backend/dist/middleware/index.d.ts +20 -0
  10. package/backend/dist/middleware/index.d.ts.map +1 -1
  11. package/backend/dist/middleware/index.js +105 -2
  12. package/backend/dist/middleware/index.js.map +1 -1
  13. package/backend/dist/models/personaModel.d.ts.map +1 -1
  14. package/backend/dist/models/personaModel.js +2 -0
  15. package/backend/dist/models/personaModel.js.map +1 -1
  16. package/backend/dist/observability/otel.d.ts +40 -0
  17. package/backend/dist/observability/otel.d.ts.map +1 -0
  18. package/backend/dist/observability/otel.js +337 -0
  19. package/backend/dist/observability/otel.js.map +1 -0
  20. package/backend/dist/observability/requestContext.d.ts +14 -0
  21. package/backend/dist/observability/requestContext.d.ts.map +1 -0
  22. package/backend/dist/observability/requestContext.js +21 -0
  23. package/backend/dist/observability/requestContext.js.map +1 -0
  24. package/backend/dist/persistence/chatGenerationTypes.d.ts +9 -0
  25. package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -1
  26. package/backend/dist/persistence/extensionTypes.d.ts +13 -0
  27. package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
  28. package/backend/dist/persistence/extensionTypes.js.map +1 -1
  29. package/backend/dist/persistence/index.d.ts +1 -1
  30. package/backend/dist/persistence/index.d.ts.map +1 -1
  31. package/backend/dist/persistence/index.js.map +1 -1
  32. package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts +9 -0
  33. package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts.map +1 -0
  34. package/backend/dist/persistence/postgresAgentFoundationMigration.js +164 -0
  35. package/backend/dist/persistence/postgresAgentFoundationMigration.js.map +1 -0
  36. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
  37. package/backend/dist/persistence/postgresExtensionRepositories.js +46 -2
  38. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
  39. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts +10 -0
  40. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts.map +1 -0
  41. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js +148 -0
  42. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js.map +1 -0
  43. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  44. package/backend/dist/persistence/postgresMigrationRegistry.js +10 -0
  45. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  46. package/backend/dist/persistence/postgresNotesV2Migration.d.ts +4 -0
  47. package/backend/dist/persistence/postgresNotesV2Migration.d.ts.map +1 -0
  48. package/backend/dist/persistence/postgresNotesV2Migration.js +57 -0
  49. package/backend/dist/persistence/postgresNotesV2Migration.js.map +1 -0
  50. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  51. package/backend/dist/persistence/postgresResourceRepositories.js +1646 -11
  52. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  53. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts +9 -0
  54. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts.map +1 -0
  55. package/backend/dist/persistence/postgresSkillFilesMigration.js +50 -0
  56. package/backend/dist/persistence/postgresSkillFilesMigration.js.map +1 -0
  57. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts +10 -0
  58. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts.map +1 -0
  59. package/backend/dist/persistence/postgresTeamCollaborationMigration.js +161 -0
  60. package/backend/dist/persistence/postgresTeamCollaborationMigration.js.map +1 -0
  61. package/backend/dist/persistence/resourceTypes.d.ts +541 -3
  62. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  63. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  64. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  65. package/backend/dist/persistence/sqliteExtensionRepositories.js +26 -4
  66. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  67. package/backend/dist/persistence/sqliteMigrations.d.ts +9 -0
  68. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  69. package/backend/dist/persistence/sqliteMigrations.js +1196 -29
  70. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  71. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  72. package/backend/dist/persistence/sqliteResourceRepositories.js +1523 -134
  73. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  74. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  75. package/backend/dist/persistence/sqliteToPostgresMigration.js +257 -3
  76. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  77. package/backend/dist/platform/jobs/domainJobContracts.d.ts +8 -0
  78. package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
  79. package/backend/dist/platform/jobs/domainJobContracts.js +8 -0
  80. package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
  81. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
  82. package/backend/dist/platform/jobs/domainJobHandlers.js +310 -3
  83. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
  84. package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -1
  85. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +4 -2
  86. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -1
  87. package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -1
  88. package/backend/dist/platform/jobs/postgresDurableJobWorker.js +4 -2
  89. package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -1
  90. package/backend/dist/platform/storage/pgVectorStore.d.ts +2 -1
  91. package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -1
  92. package/backend/dist/platform/storage/pgVectorStore.js +51 -0
  93. package/backend/dist/platform/storage/pgVectorStore.js.map +1 -1
  94. package/backend/dist/platform/storage/platformDomainRepositories.d.ts +8 -2
  95. package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -1
  96. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -1
  97. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +25 -4
  98. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -1
  99. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +2 -1
  100. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -1
  101. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +35 -0
  102. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -1
  103. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -1
  104. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +26 -3
  105. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -1
  106. package/backend/dist/platform/storage/vectorStore.d.ts +14 -0
  107. package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -1
  108. package/backend/dist/platform/storage/vectorStore.js.map +1 -1
  109. package/backend/dist/routes/access.d.ts.map +1 -1
  110. package/backend/dist/routes/access.js +84 -3
  111. package/backend/dist/routes/access.js.map +1 -1
  112. package/backend/dist/routes/calendar.d.ts.map +1 -1
  113. package/backend/dist/routes/calendar.js +125 -22
  114. package/backend/dist/routes/calendar.js.map +1 -1
  115. package/backend/dist/routes/channels.d.ts +3 -0
  116. package/backend/dist/routes/channels.d.ts.map +1 -0
  117. package/backend/dist/routes/channels.js +447 -0
  118. package/backend/dist/routes/channels.js.map +1 -0
  119. package/backend/dist/routes/chat.d.ts.map +1 -1
  120. package/backend/dist/routes/chat.js +195 -7
  121. package/backend/dist/routes/chat.js.map +1 -1
  122. package/backend/dist/routes/costs.d.ts +3 -0
  123. package/backend/dist/routes/costs.d.ts.map +1 -0
  124. package/backend/dist/routes/costs.js +191 -0
  125. package/backend/dist/routes/costs.js.map +1 -0
  126. package/backend/dist/routes/documents.d.ts.map +1 -1
  127. package/backend/dist/routes/documents.js +64 -21
  128. package/backend/dist/routes/documents.js.map +1 -1
  129. package/backend/dist/routes/evaluations.d.ts +3 -0
  130. package/backend/dist/routes/evaluations.d.ts.map +1 -0
  131. package/backend/dist/routes/evaluations.js +352 -0
  132. package/backend/dist/routes/evaluations.js.map +1 -0
  133. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  134. package/backend/dist/routes/imageGen.js +2 -1
  135. package/backend/dist/routes/imageGen.js.map +1 -1
  136. package/backend/dist/routes/media.d.ts.map +1 -1
  137. package/backend/dist/routes/media.js +228 -7
  138. package/backend/dist/routes/media.js.map +1 -1
  139. package/backend/dist/routes/notes.d.ts.map +1 -1
  140. package/backend/dist/routes/notes.js +149 -36
  141. package/backend/dist/routes/notes.js.map +1 -1
  142. package/backend/dist/routes/notifications.d.ts +3 -0
  143. package/backend/dist/routes/notifications.d.ts.map +1 -0
  144. package/backend/dist/routes/notifications.js +213 -0
  145. package/backend/dist/routes/notifications.js.map +1 -0
  146. package/backend/dist/routes/openaiCompat.d.ts +3 -0
  147. package/backend/dist/routes/openaiCompat.d.ts.map +1 -0
  148. package/backend/dist/routes/openaiCompat.js +314 -0
  149. package/backend/dist/routes/openaiCompat.js.map +1 -0
  150. package/backend/dist/routes/personas.js +1 -1
  151. package/backend/dist/routes/personas.js.map +1 -1
  152. package/backend/dist/routes/prompts.d.ts +3 -0
  153. package/backend/dist/routes/prompts.d.ts.map +1 -0
  154. package/backend/dist/routes/prompts.js +173 -0
  155. package/backend/dist/routes/prompts.js.map +1 -0
  156. package/backend/dist/routes/search.d.ts.map +1 -1
  157. package/backend/dist/routes/search.js +29 -1
  158. package/backend/dist/routes/search.js.map +1 -1
  159. package/backend/dist/routes/skills.d.ts +3 -0
  160. package/backend/dist/routes/skills.d.ts.map +1 -0
  161. package/backend/dist/routes/skills.js +246 -0
  162. package/backend/dist/routes/skills.js.map +1 -0
  163. package/backend/dist/routes/stt.d.ts.map +1 -1
  164. package/backend/dist/routes/stt.js +2 -1
  165. package/backend/dist/routes/stt.js.map +1 -1
  166. package/backend/dist/routes/tools.d.ts +3 -0
  167. package/backend/dist/routes/tools.d.ts.map +1 -0
  168. package/backend/dist/routes/tools.js +359 -0
  169. package/backend/dist/routes/tools.js.map +1 -0
  170. package/backend/dist/routes/tts.d.ts.map +1 -1
  171. package/backend/dist/routes/tts.js +63 -8
  172. package/backend/dist/routes/tts.js.map +1 -1
  173. package/backend/dist/routes/voiceAccess.d.ts +3 -0
  174. package/backend/dist/routes/voiceAccess.d.ts.map +1 -0
  175. package/backend/dist/routes/voiceAccess.js +102 -0
  176. package/backend/dist/routes/voiceAccess.js.map +1 -0
  177. package/backend/dist/services/apiTokenService.d.ts +2 -2
  178. package/backend/dist/services/apiTokenService.d.ts.map +1 -1
  179. package/backend/dist/services/apiTokenService.js +7 -0
  180. package/backend/dist/services/apiTokenService.js.map +1 -1
  181. package/backend/dist/services/authorizationService.d.ts +8 -4
  182. package/backend/dist/services/authorizationService.d.ts.map +1 -1
  183. package/backend/dist/services/authorizationService.js +31 -1
  184. package/backend/dist/services/authorizationService.js.map +1 -1
  185. package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
  186. package/backend/dist/services/automationSchedulerService.js +33 -3
  187. package/backend/dist/services/automationSchedulerService.js.map +1 -1
  188. package/backend/dist/services/automationService.d.ts +4 -1
  189. package/backend/dist/services/automationService.d.ts.map +1 -1
  190. package/backend/dist/services/automationService.js +25 -2
  191. package/backend/dist/services/automationService.js.map +1 -1
  192. package/backend/dist/services/builtinToolsService.d.ts +20 -0
  193. package/backend/dist/services/builtinToolsService.d.ts.map +1 -0
  194. package/backend/dist/services/builtinToolsService.js +661 -0
  195. package/backend/dist/services/builtinToolsService.js.map +1 -0
  196. package/backend/dist/services/calendarService.d.ts +74 -0
  197. package/backend/dist/services/calendarService.d.ts.map +1 -0
  198. package/backend/dist/services/calendarService.js +339 -0
  199. package/backend/dist/services/calendarService.js.map +1 -0
  200. package/backend/dist/services/channelService.d.ts +195 -0
  201. package/backend/dist/services/channelService.d.ts.map +1 -0
  202. package/backend/dist/services/channelService.js +1057 -0
  203. package/backend/dist/services/channelService.js.map +1 -0
  204. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  205. package/backend/dist/services/chatRequestService.js +29 -1
  206. package/backend/dist/services/chatRequestService.js.map +1 -1
  207. package/backend/dist/services/chatService.d.ts +61 -1
  208. package/backend/dist/services/chatService.d.ts.map +1 -1
  209. package/backend/dist/services/chatService.js +218 -1
  210. package/backend/dist/services/chatService.js.map +1 -1
  211. package/backend/dist/services/chatToolRuntimeService.d.ts +55 -0
  212. package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -0
  213. package/backend/dist/services/chatToolRuntimeService.js +389 -0
  214. package/backend/dist/services/chatToolRuntimeService.js.map +1 -0
  215. package/backend/dist/services/costGovernanceService.d.ts +102 -0
  216. package/backend/dist/services/costGovernanceService.d.ts.map +1 -0
  217. package/backend/dist/services/costGovernanceService.js +463 -0
  218. package/backend/dist/services/costGovernanceService.js.map +1 -0
  219. package/backend/dist/services/dataArchiveService.d.ts +6 -0
  220. package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
  221. package/backend/dist/services/dataArchiveService.js +23 -4
  222. package/backend/dist/services/dataArchiveService.js.map +1 -1
  223. package/backend/dist/services/documentService.d.ts +58 -1
  224. package/backend/dist/services/documentService.d.ts.map +1 -1
  225. package/backend/dist/services/documentService.js +289 -84
  226. package/backend/dist/services/documentService.js.map +1 -1
  227. package/backend/dist/services/durableChatGenerationService.d.ts +9 -0
  228. package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
  229. package/backend/dist/services/durableChatGenerationService.js +152 -11
  230. package/backend/dist/services/durableChatGenerationService.js.map +1 -1
  231. package/backend/dist/services/evaluationService.d.ts +111 -0
  232. package/backend/dist/services/evaluationService.d.ts.map +1 -0
  233. package/backend/dist/services/evaluationService.js +403 -0
  234. package/backend/dist/services/evaluationService.js.map +1 -0
  235. package/backend/dist/services/galleryService.d.ts +6 -0
  236. package/backend/dist/services/galleryService.d.ts.map +1 -1
  237. package/backend/dist/services/galleryService.js +26 -0
  238. package/backend/dist/services/galleryService.js.map +1 -1
  239. package/backend/dist/services/mcpClientService.d.ts +29 -0
  240. package/backend/dist/services/mcpClientService.d.ts.map +1 -0
  241. package/backend/dist/services/mcpClientService.js +189 -0
  242. package/backend/dist/services/mcpClientService.js.map +1 -0
  243. package/backend/dist/services/noteService.d.ts +71 -0
  244. package/backend/dist/services/noteService.d.ts.map +1 -0
  245. package/backend/dist/services/noteService.js +397 -0
  246. package/backend/dist/services/noteService.js.map +1 -0
  247. package/backend/dist/services/notificationService.d.ts +55 -0
  248. package/backend/dist/services/notificationService.d.ts.map +1 -0
  249. package/backend/dist/services/notificationService.js +308 -0
  250. package/backend/dist/services/notificationService.js.map +1 -0
  251. package/backend/dist/services/openApiToolService.d.ts +38 -0
  252. package/backend/dist/services/openApiToolService.d.ts.map +1 -0
  253. package/backend/dist/services/openApiToolService.js +254 -0
  254. package/backend/dist/services/openApiToolService.js.map +1 -0
  255. package/backend/dist/services/personaService.d.ts +18 -2
  256. package/backend/dist/services/personaService.d.ts.map +1 -1
  257. package/backend/dist/services/personaService.js +113 -4
  258. package/backend/dist/services/personaService.js.map +1 -1
  259. package/backend/dist/services/pluginImageGenerationService.d.ts +19 -0
  260. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  261. package/backend/dist/services/pluginImageGenerationService.js +121 -0
  262. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  263. package/backend/dist/services/pluginService.d.ts +7 -0
  264. package/backend/dist/services/pluginService.d.ts.map +1 -1
  265. package/backend/dist/services/pluginService.js +8 -2
  266. package/backend/dist/services/pluginService.js.map +1 -1
  267. package/backend/dist/services/promptService.d.ts +74 -0
  268. package/backend/dist/services/promptService.d.ts.map +1 -0
  269. package/backend/dist/services/promptService.js +513 -0
  270. package/backend/dist/services/promptService.js.map +1 -0
  271. package/backend/dist/services/resourceGrantService.d.ts.map +1 -1
  272. package/backend/dist/services/resourceGrantService.js +62 -17
  273. package/backend/dist/services/resourceGrantService.js.map +1 -1
  274. package/backend/dist/services/searchService.d.ts +29 -0
  275. package/backend/dist/services/searchService.d.ts.map +1 -0
  276. package/backend/dist/services/searchService.js +0 -0
  277. package/backend/dist/services/searchService.js.map +1 -0
  278. package/backend/dist/services/securityAuditService.d.ts.map +1 -1
  279. package/backend/dist/services/securityAuditService.js +2 -1
  280. package/backend/dist/services/securityAuditService.js.map +1 -1
  281. package/backend/dist/services/sharedResourceAccess.d.ts +25 -0
  282. package/backend/dist/services/sharedResourceAccess.d.ts.map +1 -0
  283. package/backend/dist/services/sharedResourceAccess.js +59 -0
  284. package/backend/dist/services/sharedResourceAccess.js.map +1 -0
  285. package/backend/dist/services/skillService.d.ts +137 -0
  286. package/backend/dist/services/skillService.d.ts.map +1 -0
  287. package/backend/dist/services/skillService.js +852 -0
  288. package/backend/dist/services/skillService.js.map +1 -0
  289. package/backend/dist/services/toolAccessService.d.ts +9 -0
  290. package/backend/dist/services/toolAccessService.d.ts.map +1 -0
  291. package/backend/dist/services/toolAccessService.js +60 -0
  292. package/backend/dist/services/toolAccessService.js.map +1 -0
  293. package/backend/dist/services/toolApprovalService.d.ts +34 -0
  294. package/backend/dist/services/toolApprovalService.d.ts.map +1 -0
  295. package/backend/dist/services/toolApprovalService.js +188 -0
  296. package/backend/dist/services/toolApprovalService.js.map +1 -0
  297. package/backend/dist/services/toolGatewayService.d.ts +53 -0
  298. package/backend/dist/services/toolGatewayService.d.ts.map +1 -0
  299. package/backend/dist/services/toolGatewayService.js +249 -0
  300. package/backend/dist/services/toolGatewayService.js.map +1 -0
  301. package/backend/dist/services/toolServerService.d.ts +57 -0
  302. package/backend/dist/services/toolServerService.d.ts.map +1 -0
  303. package/backend/dist/services/toolServerService.js +521 -0
  304. package/backend/dist/services/toolServerService.js.map +1 -0
  305. package/backend/dist/services/voiceAccessService.d.ts +10 -0
  306. package/backend/dist/services/voiceAccessService.d.ts.map +1 -0
  307. package/backend/dist/services/voiceAccessService.js +74 -0
  308. package/backend/dist/services/voiceAccessService.js.map +1 -0
  309. package/backend/dist/services/voiceProfileService.d.ts +20 -0
  310. package/backend/dist/services/voiceProfileService.d.ts.map +1 -1
  311. package/backend/dist/services/voiceProfileService.js +60 -0
  312. package/backend/dist/services/voiceProfileService.js.map +1 -1
  313. package/backend/dist/storage.d.ts +28 -1
  314. package/backend/dist/storage.d.ts.map +1 -1
  315. package/backend/dist/storage.js +100 -1
  316. package/backend/dist/storage.js.map +1 -1
  317. package/backend/dist/storageMappers.d.ts +2 -2
  318. package/backend/dist/storageMappers.d.ts.map +1 -1
  319. package/backend/dist/storageMappers.js.map +1 -1
  320. package/backend/dist/types/index.d.ts +197 -2
  321. package/backend/dist/types/index.d.ts.map +1 -1
  322. package/backend/dist/types/index.js.map +1 -1
  323. package/backend/dist/types/tools.d.ts +137 -0
  324. package/backend/dist/types/tools.d.ts.map +1 -0
  325. package/backend/dist/types/tools.js +25 -0
  326. package/backend/dist/types/tools.js.map +1 -0
  327. package/backend/dist/utils/chatDocumentContext.d.ts +26 -1
  328. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  329. package/backend/dist/utils/chatDocumentContext.js +87 -18
  330. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  331. package/backend/dist/utils/documentExtraction.d.ts +69 -0
  332. package/backend/dist/utils/documentExtraction.d.ts.map +1 -0
  333. package/backend/dist/utils/documentExtraction.js +545 -0
  334. package/backend/dist/utils/documentExtraction.js.map +1 -0
  335. package/backend/dist/utils/hybridRetrieval.d.ts +34 -0
  336. package/backend/dist/utils/hybridRetrieval.d.ts.map +1 -0
  337. package/backend/dist/utils/hybridRetrieval.js +119 -0
  338. package/backend/dist/utils/hybridRetrieval.js.map +1 -0
  339. package/backend/dist/utils/icsCalendar.d.ts +27 -0
  340. package/backend/dist/utils/icsCalendar.d.ts.map +1 -0
  341. package/backend/dist/utils/icsCalendar.js +313 -0
  342. package/backend/dist/utils/icsCalendar.js.map +1 -0
  343. package/backend/dist/utils/imageEditUpload.d.ts +29 -0
  344. package/backend/dist/utils/imageEditUpload.d.ts.map +1 -0
  345. package/backend/dist/utils/imageEditUpload.js +82 -0
  346. package/backend/dist/utils/imageEditUpload.js.map +1 -0
  347. package/backend/dist/utils/logRedaction.d.ts +2 -0
  348. package/backend/dist/utils/logRedaction.d.ts.map +1 -0
  349. package/backend/dist/utils/logRedaction.js +66 -0
  350. package/backend/dist/utils/logRedaction.js.map +1 -0
  351. package/backend/dist/utils/logger.d.ts +3 -0
  352. package/backend/dist/utils/logger.d.ts.map +1 -1
  353. package/backend/dist/utils/logger.js +63 -20
  354. package/backend/dist/utils/logger.js.map +1 -1
  355. package/backend/dist/utils/pluginChatAdapter.d.ts +5 -1
  356. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  357. package/backend/dist/utils/pluginChatAdapter.js +83 -0
  358. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  359. package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
  360. package/backend/dist/utils/resourceLimits.d.ts +61 -2
  361. package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
  362. package/backend/dist/utils/resourceLimits.js +59 -0
  363. package/backend/dist/utils/resourceLimits.js.map +1 -1
  364. package/backend/dist/utils/toolEgress.d.ts +22 -0
  365. package/backend/dist/utils/toolEgress.d.ts.map +1 -0
  366. package/backend/dist/utils/toolEgress.js +157 -0
  367. package/backend/dist/utils/toolEgress.js.map +1 -0
  368. package/backend/dist/utils/websocketMessages.d.ts +6 -0
  369. package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
  370. package/backend/dist/utils/websocketMessages.js +8 -0
  371. package/backend/dist/utils/websocketMessages.js.map +1 -1
  372. package/backend/dist/utils/zipArchive.d.ts +32 -0
  373. package/backend/dist/utils/zipArchive.d.ts.map +1 -0
  374. package/backend/dist/utils/zipArchive.js +171 -0
  375. package/backend/dist/utils/zipArchive.js.map +1 -0
  376. package/backend/dist/websocketServer.d.ts.map +1 -1
  377. package/backend/dist/websocketServer.js +142 -35
  378. package/backend/dist/websocketServer.js.map +1 -1
  379. package/backend/package.json +1 -1
  380. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  381. package/frontend/dist/assets/index-BPsH9FII.js +80 -0
  382. package/frontend/dist/assets/index-BtXF0Oxa.css +1 -0
  383. package/frontend/dist/index.html +18 -18
  384. package/frontend/dist/js/{ArtifactContainer-CpUi6ekF.js → ArtifactContainer-CIoFoMv8.js} +1 -1
  385. package/frontend/dist/js/{ArtifactDemoPage-BeNs3gHp.js → ArtifactDemoPage-D0JEIAbZ.js} +1 -1
  386. package/frontend/dist/js/{ArtifactSandboxFrame-qsj_Y3LV.js → ArtifactSandboxFrame-REazyIrx.js} +2 -2
  387. package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +1 -0
  388. package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +1 -0
  389. package/frontend/dist/js/{Button-BPf_pOxH.js → Button-C0r3J9G_.js} +1 -1
  390. package/frontend/dist/js/CalendarPage-DLjasZOd.js +1 -0
  391. package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +1 -0
  392. package/frontend/dist/js/ChatPage-BAgBHUES.js +16 -0
  393. package/frontend/dist/js/EvaluationsPage-Bm8FRoeX.js +2 -0
  394. package/frontend/dist/js/{FirstTimeSetup-Df0YJni3.js → FirstTimeSetup-BxJapNul.js} +1 -1
  395. package/frontend/dist/js/GalleryPage-DHz9DkK7.js +1 -0
  396. package/frontend/dist/js/HomePage-BqNy-FWX.js +1 -0
  397. package/frontend/dist/js/LibreClawPage-BDzDILjY.js +1 -0
  398. package/frontend/dist/js/{ModelManagerModals-DcLGYN3l.js → ModelManagerModals-DX9eT5r2.js} +1 -1
  399. package/frontend/dist/js/ModelSelector-ol8mK2ja.js +1 -0
  400. package/frontend/dist/js/NotesPage-DzHEx2O4.js +3 -0
  401. package/frontend/dist/js/{OptimizedSyntaxHighlighter-Dz7D1LPB.js → OptimizedSyntaxHighlighter-CZNPwN0i.js} +1 -1
  402. package/frontend/dist/js/PersonasPage-M_WKH2a9.js +13 -0
  403. package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +1 -0
  404. package/frontend/dist/js/RichMessageContent-BqgafH4p.js +3 -0
  405. package/frontend/dist/js/SettingsModal-R9EDadAV.js +19 -0
  406. package/frontend/dist/js/{SettingsToggle-woG_WebF.js → SettingsToggle-BIVyfGjl.js} +1 -1
  407. package/frontend/dist/js/SystemPage-aOkrSuY7.js +1 -0
  408. package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +1 -0
  409. package/frontend/dist/js/WorkPage-DxZISerQ.js +6 -0
  410. package/frontend/dist/js/api-6bSMtSNh.js +14 -0
  411. package/frontend/dist/js/{appStore-0JnCUlEq.js → appStore-CdObhQBb.js} +2 -2
  412. package/frontend/dist/js/ar-DT_VLBO3.js +2 -0
  413. package/frontend/dist/js/{authStore-DbMdvNgJ.js → authStore-DbqqrfZv.js} +3 -3
  414. package/frontend/dist/js/{babel-BsYoxD-7.js → babel-DSqqk5kt.js} +1 -1
  415. package/frontend/dist/js/bn-BrvEqhGA.js +2 -0
  416. package/frontend/dist/js/chatStore-DbZPJNsu.js +3 -0
  417. package/frontend/dist/js/{config-DSOYQ9a3.js → config-8KdgjtEx.js} +1 -1
  418. package/frontend/dist/js/cs-BthnM_YI.js +2 -0
  419. package/frontend/dist/js/da-DCth-6_j.js +2 -0
  420. package/frontend/dist/js/de-BBWt0gJ_.js +2 -0
  421. package/frontend/dist/js/es-DuslOPqM.js +2 -0
  422. package/frontend/dist/js/{estree-BcnBcOAx.js → estree-BU5-LV_1.js} +3 -3
  423. package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +1 -0
  424. package/frontend/dist/js/fr-DZAeg46S.js +2 -0
  425. package/frontend/dist/js/hi-ijDSiY77.js +2 -0
  426. package/frontend/dist/js/{html-DkY55Jys.js → html-DeoAy2bo.js} +2 -2
  427. package/frontend/dist/js/id-BS6qS0oq.js +2 -0
  428. package/frontend/dist/js/is-CO2PMDte.js +2 -0
  429. package/frontend/dist/js/it-ChhxT4hs.js +2 -0
  430. package/frontend/dist/js/ja-cyeqUeJN.js +2 -0
  431. package/frontend/dist/js/ko-CfqHTLXj.js +2 -0
  432. package/frontend/dist/js/{markdown-IZSI9DXw.js → markdown-DOLsYkBY.js} +3 -3
  433. package/frontend/dist/js/markdown-core-BK7WVOb7.js +32 -0
  434. package/frontend/dist/js/{markdown-math-DK846gXU.js → markdown-math-e1ByS3KY.js} +5 -5
  435. package/frontend/dist/js/{messageCodeStyles-BFNR9Wv6.js → messageCodeStyles-DhVgizF-.js} +2 -2
  436. package/frontend/dist/js/ms-DZ5pACe1.js +2 -0
  437. package/frontend/dist/js/nl-BsRsnOVp.js +2 -0
  438. package/frontend/dist/js/pl-DXSTAW4M.js +2 -0
  439. package/frontend/dist/js/{postcss-BJ0okz7n.js → postcss-Bg15EcFE.js} +1 -1
  440. package/frontend/dist/js/pt-DmDx0JxB.js +2 -0
  441. package/frontend/dist/js/{react-vendor-C5yShNlM.js → react-vendor-BG_HPV6X.js} +1 -1
  442. package/frontend/dist/js/router-vendor-CbexJIsv.js +1 -0
  443. package/frontend/dist/js/ru-d2g8EWfY.js +2 -0
  444. package/frontend/dist/js/{standalone-Csw3jfJ_.js → standalone-BO5pzI8_.js} +3 -3
  445. package/frontend/dist/js/sv-CIhYUTVQ.js +2 -0
  446. package/frontend/dist/js/{syntax-highlight-3EEX6CGL.js → syntax-highlight-DcR9Vhb7.js} +3 -3
  447. package/frontend/dist/js/th-B3wSxanB.js +2 -0
  448. package/frontend/dist/js/tr-R4UGgPOY.js +2 -0
  449. package/frontend/dist/js/{typescript-CnF4UVx7.js → typescript-6GJ8APmn.js} +1 -1
  450. package/frontend/dist/js/ui-CV0LYmkM.js +2 -0
  451. package/frontend/dist/js/ui-vendor-CWjIBW-z.js +177 -0
  452. package/frontend/dist/js/uk-BzUF4Vkt.js +2 -0
  453. package/frontend/dist/js/{useTranslation-Bho4HCyg.js → useTranslation-5b5UhAc9.js} +1 -1
  454. package/frontend/dist/js/{utils-D9W1Lnkn.js → utils-BGrdX9ie.js} +1 -1
  455. package/frontend/dist/js/{utils-vendor-DWh39_3x.js → utils-vendor-9bQ62WeD.js} +1 -1
  456. package/frontend/dist/js/vi-CKc6Fg4h.js +2 -0
  457. package/frontend/dist/js/{workApi-C3uy9EDT.js → workApi-BruWTlHM.js} +3 -3
  458. package/frontend/dist/js/{yaml-DzT5hBSH.js → yaml-DUeWcOOH.js} +2 -2
  459. package/frontend/dist/js/zh-CXL-kDe8.js +2 -0
  460. package/package.json +2 -2
  461. package/plugins/openai.json +52 -9
  462. package/frontend/dist/assets/index-6o-Hc2wS.js +0 -41
  463. package/frontend/dist/assets/index-D-pM957b.css +0 -1
  464. package/frontend/dist/js/ArtifactSlideOutPanel-CSFRluWA.js +0 -1
  465. package/frontend/dist/js/AutomationsPage-KUeWoZNv.js +0 -1
  466. package/frontend/dist/js/CalendarPage-D9I972w8.js +0 -1
  467. package/frontend/dist/js/ChatPage-CmBx4oAL.js +0 -16
  468. package/frontend/dist/js/GalleryPage-bLCrdJN_.js +0 -1
  469. package/frontend/dist/js/HomePage-Uc6PEg-U.js +0 -1
  470. package/frontend/dist/js/LibreClawPage-CG63DHg1.js +0 -1
  471. package/frontend/dist/js/ModelSelector-yxJC64rM.js +0 -1
  472. package/frontend/dist/js/ModelsPage-1R_TxgmJ.js +0 -2
  473. package/frontend/dist/js/NotesPage-L65j5HoW.js +0 -1
  474. package/frontend/dist/js/PersonasPage-CKeBpHIH.js +0 -13
  475. package/frontend/dist/js/PluginUsagePage-BX1SKMbW.js +0 -1
  476. package/frontend/dist/js/RichMessageContent-DiySVYGB.js +0 -3
  477. package/frontend/dist/js/SettingsModal-68SG1uZ2.js +0 -1
  478. package/frontend/dist/js/SystemPage-CytpZiQV.js +0 -1
  479. package/frontend/dist/js/UserManagementPage-BzJBvZiS.js +0 -1
  480. package/frontend/dist/js/WorkPage-C8gr0QJe.js +0 -6
  481. package/frontend/dist/js/api-BDtqBtqw.js +0 -14
  482. package/frontend/dist/js/ar-CSpi37Gr.js +0 -2
  483. package/frontend/dist/js/bn-CyH1BeDD.js +0 -2
  484. package/frontend/dist/js/chatStore-CHQ2uINS.js +0 -3
  485. package/frontend/dist/js/cs-Cv2NfRK5.js +0 -2
  486. package/frontend/dist/js/da-D6D6IvPK.js +0 -2
  487. package/frontend/dist/js/de-BNoJJTrT.js +0 -2
  488. package/frontend/dist/js/es-kzo9C7q_.js +0 -2
  489. package/frontend/dist/js/fr-CjHYvJRp.js +0 -2
  490. package/frontend/dist/js/hi-BU98AdCQ.js +0 -2
  491. package/frontend/dist/js/id-CpdedejX.js +0 -2
  492. package/frontend/dist/js/is-Cp5dDWBH.js +0 -2
  493. package/frontend/dist/js/it-CuH_cK4U.js +0 -2
  494. package/frontend/dist/js/ja-BWXXXiHn.js +0 -2
  495. package/frontend/dist/js/ko-DQgv2M1t.js +0 -2
  496. package/frontend/dist/js/markdown-core-BmPPZiuD.js +0 -31
  497. package/frontend/dist/js/ms-DCcRoIcX.js +0 -2
  498. package/frontend/dist/js/nl-CbKR1_EU.js +0 -2
  499. package/frontend/dist/js/pl-CRyJZccn.js +0 -2
  500. package/frontend/dist/js/pt-BXYmHFGH.js +0 -2
  501. package/frontend/dist/js/router-vendor-DGFGM3EP.js +0 -1
  502. package/frontend/dist/js/ru-M9SyZG4b.js +0 -2
  503. package/frontend/dist/js/sv-DJ486LTU.js +0 -2
  504. package/frontend/dist/js/th-Ch7gKtZv.js +0 -2
  505. package/frontend/dist/js/tr-ClehWhSC.js +0 -2
  506. package/frontend/dist/js/ui-CC-K19wO.js +0 -2
  507. package/frontend/dist/js/ui-vendor-B1UgO3vd.js +0 -177
  508. package/frontend/dist/js/uk-BqAd5zHF.js +0 -2
  509. package/frontend/dist/js/vi-D9gjlDVB.js +0 -2
  510. package/frontend/dist/js/zh-DKTyHkiR.js +0 -2
@@ -1,2 +0,0 @@
1
- var e={common:{loading:`Laddar...`,save:`Spara`,saving:`Sparar...`,cancel:`Avbryt`,delete:`Radera`,edit:`Redigera`,close:`Stäng`,back:`Tillbaka`,next:`Nästa`,confirm:`Bekräfta`,error:`Fel`,success:`Lyckades`,warning:`Varning`,or:`eller`,optional:`valfritt`,enabled:`Aktiverad`,disabled:`Inaktiverad`,on:`På`,off:`Av`,yes:`Ja`,no:`Nej`,search:`Sök`,noResults:`Inga resultat hittades`,retry:`Försök igen`,refresh:`Uppdatera`,download:`Ladda ner`,upload:`Ladda upp`,export:`Exportera`,import:`Importera`,reset:`Återställ`,apply:`Tillämpa`,clear:`Rensa`,all:`Alla`,none:`Ingen`,default:`Standard`,custom:`Anpassad`,remove:`Ta bort`,home:`Hem`,more:`Mer`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Välkommen tillbaka`,subtitle:`Logga in på ditt konto för att fortsätta`,username:`Användarnamn`,usernamePlaceholder:`Ange ditt användarnamn`,password:`Lösenord`,passwordPlaceholder:`Ange ditt lösenord`,signIn:`Logga in`,signingIn:`Loggar in...`,noAccount:`Har du inget konto?`,signUpHere:`Registrera dig här`,loginSuccess:`Inloggningen lyckades!`,loginFailed:`Inloggningen misslyckades`,checkCredentials:`Inloggningen misslyckades. Kontrollera dina uppgifter.`,approvalPending:`Ditt konto väntar på administratörsgodkännande.`,enterBoth:`Ange både användarnamn och lösenord`,githubSuccess:`GitHub-inloggningen lyckades!`,githubFailed:`GitHub-autentiseringen misslyckades`,githubVerifyFailed:`Kunde inte verifiera GitHub-autentiseringen`,verificationFailed:`Säkerhetsverifieringen misslyckades. Uppdatera sidan och försök igen.`},signup:{title:`Skapa konto`,subtitle:`Registrera ett nytt konto`,username:`Användarnamn`,usernamePlaceholder:`Välj ett användarnamn`,email:`E-post`,emailPlaceholder:`din@epost.se`,password:`Lösenord`,passwordPlaceholder:`Välj ett lösenord`,confirmPassword:`Bekräfta lösenord`,confirmPasswordPlaceholder:`Bekräfta ditt lösenord`,createAccount:`Skapa konto`,creatingAccount:`Skapar konto...`,hasAccount:`Har du redan ett konto?`,signInHere:`Logga in här`,signupSuccess:`Kontot skapades!`,approvalPending:`Registrering mottagen. En administratör måste godkänna ditt konto.`,awaitingApproval:`Väntar på godkännande`,awaitingApprovalDescription:`Ditt konto har skapats, men en administratör måste aktivera det innan du kan logga in.`,backToSignIn:`Tillbaka till inloggning`,signupFailed:`Registreringen misslyckades`,tryAgain:`Registreringen misslyckades. Försök igen.`,usernameRequired:`Användarnamn och lösenord krävs`,passwordMismatch:`Lösenorden matchar inte`,passwordTooShort:`Lösenordet måste vara minst 6 tecken långt`},logout:{button:`Logga ut`,success:`Utloggningen lyckades`},oauth:{continueWith:`Fortsätt med {{provider}}`,connectingTo:`Ansluter till {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Kontrollerar autentisering...`,welcome:`Välkommen`,noEmail:`Ingen e-post angiven`,role:`Roll`,id:`ID`,userId:`Användar-ID`,signInDescription:`Logga in med ditt GitHub-konto för att fortsätta`,signInWithGitHub:`Logga in med GitHub`,jwtActive:`JWT-autentisering aktiv`,jwtDescription:`JWT-baserad autentisering med GitHub OAuth`,github:`GitHub`,provider:`Leverantör`,tagline:`Din AI-stack bör svara dig.`,selfHosted:`Egenhostad · Apache 2.0`,highlights:{local:{title:`Lokalt först`,body:`Dina konversationer och filer stannar på maskinen du kör detta på.`},providers:{title:`Valfri leverantör`,body:`Lokala modeller via Ollama, plus de fjärrleverantörer du väljer att lägga till.`},work:{title:`Isolerat arbete`,body:`Ge en modell en sandlådead arbetsyta med filer, en terminal och en förhandsgranskning.`}},oidc:{defaultProviderName:`Enkel inloggning`}},setup:{welcome:{title:`Välkommen till Libre WebUI`,subtitle:`Låt oss komma igång`,description:`Konfigurera din Libre WebUI-instans i några enkla steg`,createAdmin:`Skapa administratörskonto`,features:{secure:{title:`Säker och privat`,description:`Dina konversationer stannar på din enhet`},fast:{title:`Snabb och responsiv`,description:`Optimerad för hastighet och prestanda`},openSource:{title:`Öppen källkod`,description:`Fri och öppen mjukvara`}}},admin:{title:`Skapa administratörskonto`,subtitle:`Administratörskonfiguration`,description:`Skapa det första administratörskontot för din Libre WebUI-instans`,usernamePlaceholder:`Ange administratörens användarnamn`,passwordPlaceholder:`Ange lösenord (minst 6 tecken)`,confirmPlaceholder:`Bekräfta ditt lösenord`,creating:`Skapar...`,createAdmin:`Skapa administratör`,success:`Administratörskontot skapades!`,failed:`Kunde inte skapa administratörskonto`,approvalUnexpected:`Den initiala administratören kunde inte aktiveras. Försök igen.`,fillAllFields:`Fyll i alla fält`,note:`Detta blir det primära administratörskontot för din Libre WebUI-instans`},encryptionKey:{title:`Spara din krypteringsnyckel`,subtitle:`Viktigt: Spara denna nyckel`,description:`Denna krypteringsnyckel skyddar dina känsliga data. Förvara den säkert - du behöver den om du någonsin behöver återställa din databas.`,warning:`Varning`,warningText:`Om du förlorar denna nyckel och behöver återställa din databas kommer din krypterade data (API-nycklar, inställningar) att vara oåterkalleligt förlorad.`,label:`Din krypteringsnyckel`,loading:`Laddar...`,copyToClipboard:`Kopiera till urklipp`,copied:`Krypteringsnyckeln kopierades till urklipp!`,copyFailed:`Kunde inte kopiera nyckeln till urklipp`,envNote:`Denna nyckel sparas också i din backend/.env-fil som ENCRYPTION_KEY`,acknowledgment:`Jag har sparat min krypteringsnyckel på ett säkert ställe och förstår att förlust av den kan resultera i dataförlust.`,confirmRequired:`Bekräfta att du har sparat krypteringsnyckeln`,continue:`Fortsätt till Libre WebUI`}},chat:{greeting:{morning:`God morgon`,afternoon:`God eftermiddag`,evening:`God kväll`,night:`God natt`},followUp:`Uppföljning`,welcome:{helpToday:`Vad kan jag hjälpa till med idag?`,helpTonight:`Vad kan jag hjälpa till med ikväll?`,variety:{create:{title:`Vad ska vi skapa?`,subtitle:`Börja med en tanke, en skiss eller ett envist problem.`},explore:{title:`Var ska vi börja?`,subtitle:`Ta med frågan som du ständigt återkommer till.`},imagine:{title:`Vad föreställer du dig?`,subtitle:`Vi kan forma det tillsammans.`},focus:{title:`Vad förtjänar din uppmärksamhet?`,subtitle:`Låt oss göra nästa steg tydligt.`},untangle:{title:`Var sitter knuten?`,subtitle:`Ge mig den röriga versionen först.`},momentum:{title:`Redo när du är.`,subtitle:`Plocka upp en idé, en plan eller en oavslutad tråd.`},open:{title:`Vad tänker du på?`,subtitle:`En liten tanke eller ett ambitiöst projekt. Båda fungerar.`},challenge:{title:`Vad ska vi lösa?`,subtitle:`Berätta vad som inte fungerar än.`},draft:{title:`Låt oss börja någonstans.`,subtitle:`Det behöver inte vara finslipat.`},possibility:{title:`Vad skulle det här kunna bli?`,subtitle:`Visa mig råmaterialet.`},unexpected:{title:`Skapa något oväntat.`,subtitle:`Ge mig en begränsning, en stämning eller en halvfärdig idé.`}}},input:{placeholder:`Skicka ett meddelande`,messagePlaceholder:`Meddelande...`,attachImages:`Bifoga bilder`,attachments:`Bilagor och avancerade funktioner`,sendMessage:`Skicka meddelande`,stopGeneration:`Stoppa generering`,menu:{uploadImages:`Ladda upp bilder`,attachDocument:`Bifoga dokument`,attachWebpage:`Bifoga webbsida`,structuredOutput:`Strukturerad utdata`,attach:`Bifoga`,documentAttached:`Dokument bifogat`,webpageAttached:`Webbsida bifogad`,attachFailed:`Kunde inte bifoga`,attachKnowledge:`Bifoga kunskap`,noCollections:`Inga samlingar än — skapa en i Inställningar → Dokument`},voiceInput:`Röstinmatning`,voiceStop:`Sluta lyssna`,transcriptionSource:`Källa för taligenkänning`,browserSpeech:`Webbläsarens taligenkänningstjänst`,providerTranscriptionDisclosure:`Spela in och skicka ljud till {{provider}} för transkribering`,webSearchOn:`Webbsökning på — svar använder live-resultat`,webSearchOff:`Sök på webben för det här meddelandet`,thinkingOn:`Tänkande på ({{level}})`,thinkingOff:`Tänk innan svaret`},session:{new:`Ny chatt`,work:`Arbete`,chat:`Chatt`,private:`Privat`,incognito:`Inkognitochatt`,privateMode:`Privat läge`,privateDescription:`Denna konversation sparas inte`,privateTooltip:`Starta en privat konversation som inte sparas`,deleteConfirm:`Är du säker på att du vill radera denna chatt?`,generatingTitle:`Genererar titel`,noChats:`Inga chattar ännu`,createFirst:`Skapa din första chatt ovan`,chats:`Chattar`,renameChat:`Byt namn på chatt`,openNewTab:`Öppna i ny flik`,pinChat:`Fäst`,unpinChat:`Lossa`,deleteChat:`Radera chatt`,archiveChat:`Arkivera chatt`,groups:{pinned:`Fästa`,today:`Idag`,yesterday:`Igår`,previous7Days:`Senaste 7 dagarna`,previous30Days:`Senaste 30 dagarna`,older:`Äldre`},folder:{new:`Ny mapp`,namePlaceholder:`Mappnamn`,move:`Flytta till mapp`,remove:`Ta bort från mapp`,delete:`Ta bort mapp`,deleteConfirm:`Ta bort den här mappen? Chattarna i den behålls.`}},persona:{applied:`Persona tillämpad`,label:`Persona`,loadFailed:`Det gick inte att ladda personadetaljer`,removeFailed:`Det gick inte att ta bort personan`},model:{updated:`Modell uppdaterad`,noModels:`Inga modeller tillgängliga`,noModelsDescription:`Inga modeller tillgängliga. Se till att Ollama körs och har modeller installerade.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`Inga modeller tillgängliga. Se till att Ollama körs och modeller är installerade.`,selectBeforePrivateChat:`Välj en tillgänglig modell innan du startar en privat chatt`,selectBeforeSending:`Välj en tillgänglig modell innan du skickar`},footer:{disclaimer:`AI kan göra misstag - verifiera viktig information`,images:`{{count}} bild`,images_plural:`{{count}} bilder`,structuredOutput:`Strukturerad utdata`},mediaUpload:{dropImagesHere:`Släpp bilder här eller`,supportedFormats:`Stöder: JPG, PNG, GIF, WebP (max 10MB vardera)`,browse:`bläddra`},structuredOutput:{title:`Svarsformat`,none:`Inget (naturligt språk)`,noneDescription:`Standardsvar i naturligt språk`,json:`JSON`,jsonDescription:`Strukturerat JSON-format`,list:`Lista`,listDescription:`Array av objekt`,summary:`Sammanfattning`,summaryDescription:`Dokumentsammanfattning med huvudpunkter`,analysis:`Analys`,analysisDescription:`Strukturerad analys med för- och nackdelar`,custom:`Anpassat schema`,customDescription:`Definiera ditt eget JSON-schema`,customSchema:`Anpassat JSON-schema`,schemaPreview:`Schemaförhandsgranskning`,applySchema:`Tillämpa schema`,cancel:`Avbryt`,enabled:`Strukturerad utdata aktiverad`},controls:{title:`Chattkontroller`,systemPrompt:`Systemprompt`,systemPromptPlaceholder:`Instruktioner som endast gäller den här chatten…`,advancedParams:`Avancerade parametrar`,advancedParamsDescription:`Åsidosättanden för den här chatten. Tomma fält använder dina globala standarder.`,fromModel:`från modellen`,fromModelHint:`Det här värdet kommer från modellens egna rekommenderade inställningar.`,contextCapped:`Kontexten är begränsad till {{context}} av de {{trained}} modellen tränats för, så att den fortfarande laddas.`,saved:`Kontroller sparade`,saveFailed:`Kunde inte spara kontroller`,params:{temperature:`Temperatur`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Max antal tokens`,repeatPenalty:`Upprepningsstraff`,seed:`Frö`,contextLength:`Kontextlängd`},thinking:`Tänkande`,thinkingDescription:`Hur mycket modellen tänker innan den svarar. Modeller utan resonemang ignorerar detta.`,compaction:`Kontextkomprimering`,compactionDescription:`När servern komprimerar långa samtal kan den här chatten stå utanför och behålla hela sin historik.`,compactionDefault:`Serverns standard`,compactionOff:`Av för den här chatten`},message:{sources:`Källor`},toasts:{chatCreated:`Ny chatt skapad`,createFailed:`Det gick inte att skapa sessionen`,loadFailed:`Det gick inte att läsa in sessioner`,chatDeleted:`Chatt borttagen`,deleteFailed:`Det gick inte att ta bort chatten`,deleteSessionFailed:`Det gick inte att ta bort sessionen`,historyCleared:`All chathistorik rensad`,historyClearFailed:`Det gick inte att rensa chathistoriken`,titleUpdated:`Chatttitel uppdaterad`,updateFailed:`Det gick inte att uppdatera sessionen`,noValidSession:`Ingen giltig chatsession. Skapa eller välj en chatt.`,sessionNotFound:`Sessionen hittades inte eller är ogiltig. Välj eller skapa en giltig chatsession.`,noModelProvider:`Ingen modellleverantör tillgänglig`,modelUnavailable:`Den valda modellen "{{model}}" är inte tillgänglig från {{provider}}. Återaktivera den leverantören eller välj en annan modell.`,modelSwitched:`Växlade till {{model}} (föregående modell är inte längre tillgänglig)`,modelsLoadFailed:`Det gick inte att läsa in modeller`,modelUpdated:`Modell uppdaterad för den aktuella chatten`,modelUpdateFailed:`Det gick inte att uppdatera sessionens modell`},documents:{title:`Dokument i kontexten`},context:{title:`Kontextfönster:`,full:`{{percent}}% fullt`,tokensUsed:`{{used}} / {{budget}} tokens använda`,tokensUsedNoBudget:`{{used}} tokens använda`,capped:`begränsat från {{trained}}`}},sidebar:{navigation:{chat:`Chatt`,models:`Modeller`,personas:`Personas`,imagine:`Skapa bild`,agents:`Agenter`,work:`Arbete`,settings:`Inställningar`,usageAnalytics:`Leverantörsanvändning`,system:`System`,userManagement:`Användarhantering`,signOut:`Logga ut`,exploreLabel:`Utforska`,notes:`Anteckningar`,calendar:`Kalender`,automations:`Automatiseringar`},toggleSize:`Växla sidofältets storlek`,expandSidebar:`Expandera sidofältet`},user:{menu:{changePicture:`Ändra bild`,settings:`Inställningar`,usageAnalytics:`Leverantörsanvändning`,system:`System`,userManagement:`Användarhantering`,logout:`Logga ut`,pinShortcut:`Fäst i sidofältet`,unpinShortcut:`Ta bort från sidofältet`},avatar:{title:`Ändra profilbild`,updated:`Profilbilden uppdaterad`,updateFailed:`Kunde inte uppdatera profilbilden`,saving:`Sparar...`,label:`Avatar`,uploadAvatarImage:`Ladda upp avatarbild`,dragAndDrop:`Dra och släpp en bild eller klicka för att bläddra`,chooseImage:`Välj bild`,uploading:`Laddar upp...`,enterImageUrl:`Eller ange bild-URL`,supportedFormats:`Stöder: JPG, PNG, GIF, WebP (max 2 MB). Fyrkantiga bilder fungerar bäst.`,customAvatar:`Anpassad avatarbild`,clickToChange:`Klicka för att ändra eller ta bort`,removed:`Avatar borttagen`,uploaded:`Avatar uppladdad`,invalidFile:`Vänligen välj en giltig bildfil`,fileTooLarge:`Avatarbildens storlek måste vara mindre än 2 MB`,readFailed:`Kunde inte läsa bildfilen`,uploadFailed:`Kunde inte ladda upp avatarbild`},profile:{noEmail:`Ingen e-post angiven`}},settings:JSON.parse(`{"title":"Inställningar","tabs":{"appearance":"Utseende","model":"Modell","systemMessage":"Systemmeddelande","plugins":"Tillägg","search":"Sökning","generation":"Generering","documents":"Dokument","tts":"Tal","imageGen":"Bilder","data":"Data","shortcuts":"Kortkommandon","about":"Om","sessions":"Sessioner","apiKeys":"API-nycklar"},"appearance":{"title":"Utseende","language":{"title":"Språk","description":"Välj ditt föredragna språk"},"theme":{"title":"Tema","light":"Ljust","dark":"Mörkt","amoled":"Djupsvart","system":"System"},"accent":{"title":"Accentfärg","custom":"Anpassad färg","useColor":"Använd {{color}} som accent","behaviorTitle":"Gränssnittspalett","behaviorDescription":"Välj om accentfärgen bara används på kontroller eller anpassar hela det ljusa eller mörka gränssnittet.","defaultStyle":"Standard","defaultStyleDescription":"Behåll neutrala ytor i ljust och mörkt tema.","adaptedStyle":"Anpassa till accent","adaptedStyleDescription":"Färga ytor, kanter och text med accentfärgen."},"chatInterface":{"title":"Chattgränssnitt","showUsername":"Visa användarnamn","showUsernameDescription":"Visa användarnamn i chattmeddelanden","followUpSuggestions":"Uppföljningsförslag","followUpSuggestionsDescription":"Föreslå snabba svar efter varje svar","hapticFeedback":"Haptisk återkoppling (Android)","hapticFeedbackDescription":"Använd diskreta vibrationer för viktiga mobilåtgärder"},"background":{"title":"Bakgrundsbild","enable":"Aktivera bakgrundsbild","enableDescription":"Visa anpassad bakgrund med oskärpa","blur":"Oskärpa","opacity":"Opacitet","upload":"Ladda upp bakgrundsbild","dragDrop":"Dra och släpp en bild eller klicka för att bläddra","chooseImage":"Välj bild"}},"saveSettings":"Spara inställningar","model":{"title":"Modellinställningar","defaultModel":"Standardmodell","defaultModelDescription":"Denna modell används som standard för nya konversationer","selectModel":"Välj en modell","specializedModels":"Specialiserade modeller","visionModel":"Synmodell","selectVisionModel":"Använd nuvarande chattmodell","visionModelDescription":"Används automatiskt när den utgående chattkontexten innehåller bilder. Välj en modell som stöder bildindata.","visionModelUpdateFailed":"Det gick inte att uppdatera synmodellen: {{error}}","visionModelNoProvider":"Den här synmodellen saknar leverantörsidentitet. Välj en tillgänglig modell.","persona":"Persona","updateAll":"Uppdatera alla modeller","updateAllDescription":"Sök efter uppdateringar och hämta senaste versionerna av alla installerade modeller","updateAllButton":"Uppdatera alla","updating":"Uppdaterar modeller...","currentModelInfo":"Information om nuvarande modell","name":"Namn","size":"Storlek","family":"Familj","format":"Format","status":"Status","statusStarting":"Startar...","statusComplete":"Klar","statusError":"Fel","bulkOperations":"Massoperationer","autoTitle":{"title":"Automatisk titelgenerering","enable":"Aktivera automatisk titel","enableDescription":"Generera automatiskt titlar för nya konversationer","taskModel":"Uppgiftsmodell","selectTaskModel":"Välj uppgiftsmodell","taskModelDescription":"Modell som används för att generera konversationstitlar"},"updatingModel":"Uppdaterar {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} av {{total}} modeller"},"systemMessage":{"title":"Systemmeddelande","description":"Ställ in ett anpassat systemmeddelande som används för alla nya konversationer.","placeholder":"Ange ett systemmeddelande...","saved":"Systemmeddelande sparat","saveFailed":"Kunde inte spara systemmeddelande"},"plugins":{"title":"Tillägg","description":"Hantera dina installerade tillägg","providerConnections":"Leverantörsanslutningar","providerConnectionsDescription":"Anslut, konfigurera och inspektera modellleverantörer via plugins.","providers":"Leverantörer","searchProviders":"Sök leverantörer","noProvidersFound":"Inga leverantörer matchar din sökning.","selectProvider":"Välj en leverantör","selectProviderDescription":"Välj en leverantör för att inspektera dess anslutning och modellkatalog.","addNew":"Lägg till nytt tillägg","upload":"Ladda upp tillägg","addJson":"Lägg till JSON","uploading":"Laddar upp...","jsonPlaceholder":"Klistra in tilläggs-JSON-konfiguration...","install":"Installera tillägg","noPlugins":"Inga tillägg installerade","noPluginsDescription":"Lägg till ett tillägg för att utöka funktionaliteten","loading":"Laddar tillägg...","installed":"Installerade tillägg","active":"Aktiva tillägg","activeLabel":"Aktiv","inactive":"Inaktiv","activate":"Aktivera","deactivate":"Inaktivera","models":"modeller","apiKeySet":"API-nyckel inställd","apiKeyConfiguration":"API-nyckelkonfiguration","apiKeyDescription":"Lagra en personlig API-nyckel för {{name}}.","apiKeyEnvAlternative":"Alternativt, ställ in","environmentVariable":"miljövariabel","apiKeyConfigured":"API-nyckel konfigurerad","apiKeyPlaceholder":"Ange din API-nyckel...","saveApiKey":"Spara API-nyckel","showApiKey":"Visa API-nyckel","hideApiKey":"Dölj API-nyckel","configure":"Konfigurera","providerSettings":"Leverantörsinställningar","status":"Status","defaultEndpoint":"Standardändpunkt","modelCatalog":"Modellkatalog","modelCatalogDescription":"Upptäckta och konfigurerade modeller för denna leverantör och dess kapabiliteter.","refreshModels":"Uppdatera modeller","noModelsConfigured":"Inga modeller är konfigurerade för denna leverantör.","modelId":"Modell-ID","capabilities":"Funktioner","modelCatalogUpdated":"Modellkatalog uppdaterad: {{count}} modeller.","modelCatalogUnchanged":"Modellkatalogen är redan uppdaterad.","modelCatalogNeedsApiKey":"Lägg till en giltig API-nyckel för denna leverantör för att ladda dess live-modelllista.","modelCatalogUnavailable":"Kunde inte ladda leverantörens modelllista.","modelCatalogRefreshFailed":"Misslyckades med att uppdatera modellkatalogen","capability":{"chat":"Chatt","embedding":"Inbäddning","image":"Bild","speech":"Tal","transcription":"Transkription"},"exportPlugin":"Exportera plugin","deletePlugin":"Ta bort plugin","apiKey":{"title":"API-nyckel","placeholder":"Ange API-nyckel","save":"Spara nyckel","remove":"Ta bort nyckel","configured":"API-nyckel konfigurerad","notConfigured":"API-nyckel krävs","saved":"API-nyckeln sparades","removed":"API-nyckeln togs bort","saveFailed":"Kunde inte spara API-nyckel","removeFailed":"Kunde inte ta bort API-nyckel","enterKey":"Ange en API-nyckel"},"variables":"Variables"},"generation":{"title":"Genereringsalternativ","description":"Konfigurera hur AI:n genererar svar","scopeLabel":"Gäller för","scopeAll":"Alla modeller","scopeModel":"Endast {{model}}","scopeAllHint":"Värdena som varje modell använder om den inte har egna.","scopeModelHint":"Sparas bara för den här modellen och vinner över de allmänna värdena.","advancedSettings":"Avancerade genereringsinställningar","advancedSettingsDescription":"Sampling, token-gränser, kontext, straff och stoppsekvenser","coreParameters":"Kärnparametrar","temperature":"Temperatur","temperatureDescription":"Styr slumpmässighet. Lägre värden är mer fokuserade, högre värden mer kreativa.","topP":"Top P","topPDescription":"Styr mångfald via kärnsampling. Lägre värden fokuserar på sannolika tokens.","topK":"Top K","topKDescription":"Begränsar tokenval till de K mest sannolika. Sätt till 0 för att inaktivera.","minP":"Min P","minPDescription":"Minsta sannolikhetströskel för tokenval.","generationControl":"Genereringskontroll","maxTokens":"Max tokens","maxTokensDescription":"Maximalt antal tokens att generera i svaret.","repeatPenalty":"Upprepningsstraff","repeatPenaltyDescription":"Bestraffar upprepade tokens. Högre värden minskar upprepning.","contextLength":"Kontextlängd","contextLengthDescription":"Maximal kontextfönsterstorlek för konversationer.","seed":"Seed","optional":"valfritt","random":"Slumpmässig","seedDescription":"Ställ in en specifik seed för reproducerbara resultat.","advancedOptions":"Avancerade alternativ","presencePenalty":"Närvarostraff","presencePenaltyDescription":"Bestraffar tokens som förekommer i kontexten.","frequencyPenalty":"Frekvensstraff","frequencyPenaltyDescription":"Bestraffar ofta använda tokens.","stopSequences":"Stoppsekvenser","commaSeparated":"kommaseparerade","stopSequencesDescription":"Anpassade tokens som stoppar genereringen när de påträffas.","resetDefaults":"Återställ till standardvärden","saveOptions":"Spara alternativ","embeddingSettings":"Inbäddningsinställningar","enableEmbeddings":"Aktivera dokumentinbäddningar","thinking":"Tänkande","thinkingDescription":"Standardnivå för tänkande i svar. Varje chatt kan ändra den.","thinkingLevels":{"default":"Modellens standard","defaultWith":"Modellens standard ({{level}})","off":"Av","on":"På","low":"Låg","medium":"Medel","high":"Hög"}},"documents":{"title":"Dokumentinställningar","embeddings":{"title":"Inbäddningar","enable":"Aktivera dokumentinbäddningar","model":"Inbäddningsmodell","modelDescription":"Välj modell för dokumentinbäddning","chunkSize":"Segmentstorlek","chunkSizeInTokens":"(i tokens)","chunkSizeDescription":"Storlek på textsegment för inbäddning","chunkOverlap":"Segmentöverlappning","chunkOverlapInTokens":"(i tokens)","chunkOverlapDescription":"Överlappning mellan på varandra följande segment","similarityThreshold":"Likhetströskel","similarityDescription":"Minsta likhetspoäng för att inkludera resultat","status":"Inbäddningsstatus","statusLabel":"Status","available":"Tillgänglig","unavailable":"Ej tillgänglig","chunksWithEmbeddings":"Segment med inbäddningar","coverage":"Täckning","regenerate":"Regenerera inbäddningar","regenerating":"Regenererar..."},"collections":{"title":"Kunskapssamlingar","description":"Gruppera dokument i samlingar och bifoga dem till valfri chatt.","namePlaceholder":"Samlingens namn","create":"Skapa","none":"Ingen samling","deleteConfirm":"Ta bort den här samlingen? Dokumenten i den behålls.","createFailed":"Samlingen kunde inte skapas","deleteFailed":"Samlingen kunde inte tas bort","assignFailed":"Dokumentet kunde inte flyttas"},"library":{"title":"Uppladdade dokument","description":"Dokument som är tillgängliga som chattkontext. Ett dokument som laddats upp i en chatt stannar i sin konversation; ett dokument utan chatt och samling ingår i varje konversation.","empty":"Inga dokument har laddats upp ännu.","chatScope":"En chatt","everyChatScope":"Alla chattar","deleteConfirm":"Ta bort \\"{{name}}\\"? Det försvinner från alla chattar.","deleteFailed":"Dokumentet kunde inte tas bort"}},"tts":{"title":"Text-till-tal","description":"Konfigurera text-till-tal-inställningar för uppläsning av meddelanden","loadingProviders":"Laddar TTS-leverantörer...","noProviders":"Inga TTS-leverantörer","noProvidersDescription":"Konfigurera ett tillägg med TTS-stöd för att aktivera text-till-tal","enable":"Aktivera TTS","enableDescription":"Tillåt text-till-tal för assistentmeddelanden","autoPlay":"Spela upp svar automatiskt","autoPlayDescription":"Läs automatiskt upp nya assistentmeddelanden","streamSentences":"Naturlig batchuppspelning","streamSentencesDescription":"Generera flera frasanpassade batcher i förväg och spela upp dem som ett enda sammanhängande svar.","voiceConfiguration":"Röstkonfiguration","model":"TTS-modell","modelDescription":"Välj modell för text-till-tal-generering","voice":"Röst","selectVoice":"Välj en röst","voiceDescription":"Välj röst för text-till-tal","providerDefaultVoice":"Den här modellen använder sin standardröst om du inte anger en referensinspelning när talet genereras.","voiceCloningAvailable":"Röstkloning är tillgänglig","voiceCloningAvailableDescription":"Använd Föreställ → Ljud för att skapa tal från en referensinspelning som gjorts med samtycke och dess exakta transkription. Du kan välja att spara referensen som en återanvändbar röst.","savedVoiceOption":"{{name}} (sparad röst)","savedVoices":"Sparade röster","loadingSavedVoices":"Läser in sparade röster…","deleteSavedVoice":"Ta bort den sparade rösten {{name}}","deleteSavedVoiceConfirm":"Ta bort den sparade rösten ”{{name}}”? Referensinspelningen och transkriptionen tas bort.","savedVoiceDeleted":"Den sparade rösten har tagits bort","savedVoicePreferenceCleanupFailed":"Den sparade rösten har tagits bort, men talinställningarna kunde inte återställas","savedVoiceDeleteFailed":"Det gick inte att ta bort den sparade rösten","speed":"Hastighet","speedSlow":"0,5x","speedNormal":"1,0x","speedFast":"2,0x","availableProviders":"Tillgängliga leverantörer","models":"modeller","test":"Testa","testing":"Testar...","stop":"Stoppa"},"imageGen":{"title":"Bildgenerering","description":"Konfigurera bildgenereringsinställningar och leverantörer","loadingProviders":"Laddar bildgenereringsleverantörer...","noProviders":"Inga bildgenereringsleverantörer","noProvidersDescription":"Konfigurera ett tillägg med bildgenereringsstöd","enable":"Aktivera bildgenerering","enableDescription":"Tillåt AI-bildgenerering i konversationer","configuration":"Konfiguration","model":"Modell","modelDescription":"Välj modell för bildgenerering","size":"Storlek","sizeDescription":"Upplösning för genererade bilder","quality":"Kvalitet","qualityDescription":"Kvalitetsnivå för genererade bilder","style":"Stil","styleDescription":"Stilförinställning för genererade bilder","availableProviders":"Tillgängliga leverantörer","models":"modeller"},"data":{"title":"Datahantering","export":"Exportera data","exportDescription":"Ladda ner ett portabelt arkiv med inställningar, chattmappar, sessioner och meddelanden, anteckningar, kunskapssamlingar och extraherad dokumenttext.","archiveScopeV3":"Omfattar inställningar, chattar, mappar, anteckningar, kunskapssamlingar och extraherad dokumenttext. Konton och hemligheter, biometriskt klonade röster, genererade medier, personas och minne samt Work-data eller -volymer ingår inte.","exportAll":"Exportera all data","import":"Importera data","importDescription":"Importera data från en tidigare export.","importData":"Importera data","importing":"Importerar...","clearSessions":"Rensa sessioner","clearSessionsDescription":"Radera alla chattsessioner. Denna åtgärd kan inte ångras.","clearAll":"Rensa alla","clearing":"Rensar...","importOptions":"Importalternativ","importOptionsDescription":"Välj hur befintlig data ska hanteras","validatingArchive":"Validerar arkivet och beräknar ändringar…","archiveValidationFailed":"Arkivvalideringen misslyckades","preflightReport":"Förhandsgranskning av import","preflightIncoming":"{{folders}} mappar · {{sessions}} chattar · {{messages}} meddelanden · {{notes}} anteckningar · {{collections}} samlingar · {{documents}} dokument · {{chunks}} delar","preflightRemappedIds":"{{count}} id:n får nya värden för att skydda ett annat kontos data.","skipDuplicates":"Hoppa över dubbletter","overwrite":"Skriv över befintliga","importResults":"Importresultat","preferences":"Inställningar","imported":"Importerade","failed":"Misslyckades","sessions":"Sessioner","sessionFolders":"Sessionsmappar","notes":"Anteckningar","knowledgeCollections":"Kunskapssamlingar","importedLabel":"importerade","overwrittenLabel":"överskrivet","skipped":"hoppades över","toCreate":"att skapa","toOverwrite":"att skriva över","toSkip":"att hoppa över","documents":"Dokument","warnings":"Varningar","refreshAfterImportFailed":"Data importerades, men vissa vyer kunde inte uppdateras. Läs in Libre WebUI igen för att se alla ändringar.","errors":"Fel","archivedChats":{"title":"Arkiverade chattar","empty":"Inga arkiverade chattar","unarchive":"Återställ"}},"about":{"title":"Om","versionLabel":"Version","ollama":{"title":"Ollama-status","version":"Version","healthy":"Fungerar","unhealthy":"Fungerar inte"},"stats":{"models":"Modeller","sessions":"Sessioner"},"features":{"privacy":{"title":"Integritet först","description":"Din data stannar på din enhet"},"openSource":{"title":"Öppen källkod","description":"Fri och öppen mjukvara"},"localInference":{"title":"Lokal inferens","description":"Kör AI-modeller lokalt med Ollama"}},"openSourceBy":"Öppen källkod av {{company}}","links":{"title":"Länkar","github":"GitHub","githubDescription":"Visa källkod och bidra","website":"Webbplats","websiteDescription":"Besök vår webbplats","documentation":"Dokumentation","reportIssue":"Rapportera problem","reportIssueDescription":"Felrapporter och funktionsförfrågningar","documentationDescription":"Guider, handledningar och API-referens","forgejo":"Forgejo-spegel","forgejoDescription":"Självhostat Forgejo-förråd","sponsor":"Sponsra","sponsorDescription":"Hjälp till att finansiera projektet","star":"Stjärna på GitHub","starDescription":"En stjärna hjälper andra att hitta projektet"},"version":"Version {{version}}","updates":{"checking":"Söker efter uppdateringar…","upToDate":"Du har den senaste versionen","updateAvailable":"Version {{version}} är tillgänglig","ahead":"Före den senaste utgåvan ({{version}})","checkFailed":"Kunde inte söka efter uppdateringar","viewChangelog":"Visa ändringslogg"}},"groups":{"general":"Allmänt","chat":"Chatt","media":"Tal och bilder","connections":"Anslutningar"},"search":{"title":"Webbsökning","description":"Sök på webben via en självhostad SearXNG-instans. När den är aktiverad får chatten en sökknapp och Work-uppgifter med nätverksåtkomst kan söka.","enableLabel":"Aktivera webbsökning","enableDescription":"Erbjud webbsökning i chattar och Work-uppgifter. Sökningar körs på servern mot den konfigurerade instansen.","urlLabel":"SearXNG-URL","urlDescription":"Bas-URL för SearXNG-instansen som nås från servern. Den medföljande privata deploy-stacken tillhandahåller http://searxng:8080.","maxResultsLabel":"Resultat per sökning","maxResultsDescription":"Hur många resultat som matas in i ett svar eller verktygsanrop, 1-100.","maxResultsInvalid":"Resultat per sökning måste vara mellan 1 och 100.","safeSearchLabel":"Säker sökning","safeSearchDescription":"Be motorn filtrera explicita resultat.","test":"Testa anslutning","testing":"Testar…","testOk":"Sökningen fungerar — {{results}} resultat returnerades","testFailed":"Söktestet misslyckades","save":"Spara","saved":"Sökinställningar sparade","saveFailed":"Kunde inte spara sökinställningarna"},"compaction":{"title":"Kontextkomprimering","description":"När en konversation växer förbi tokentröskeln sammanfattar servern dess äldre meddelanden och behåller bara de senaste ordagrant. Gäller alla användare på den här servern.","thresholdLabel":"Tokentröskel","thresholdDescription":"Uppskattat antal kontexttokens över vilket äldre historik sammanfattas, 500-1 000 000.","thresholdInvalid":"Tokentröskeln måste vara mellan 500 och 1 000 000.","keepRecentLabel":"Senaste meddelanden som behålls","keepRecentDescription":"Hur många av de senaste meddelandena som alltid behålls ordagrant, 2-200.","keepRecentInvalid":"Antalet senaste meddelanden som behålls måste vara mellan 2 och 200.","modelLabel":"Komprimeringsmodell","modelDescription":"Modellen som skriver sammanfattningarna. Sessionens egen modell används när ingen är vald.","sessionModelOption":"Använd sessionens modell","promptLabel":"Egen sammanfattningsprompt","promptPlaceholder":"Lämna tomt för att använda den inbyggda prompten","promptDescription":"Mallvariablerna {{previousSummaryVariable}} och {{messagesVariable}} ersätts med den föregående sammanfattningen och meddelandena som sammanfattas.","saved":"Komprimeringsinställningar sparade","saveFailed":"Kunde inte spara komprimeringsinställningarna","loadFailed":"Kunde inte läsa in komprimeringsinställningarna"},"sessions":{"title":"Sessioner","description":"Alla platser där detta konto är inloggat. Att logga ut en session sker omedelbart; att logga in igen återställer åtkomsten.","signOutOthers":"Logga ut övriga sessioner","signingOutOthers":"Loggar ut…","signOut":"Logga ut","signingOut":"Loggar ut…","revoked":"Sessionen har loggats ut.","revokeFailed":"Sessionen kunde inte loggas ut.","othersRevoked":"Övriga sessioner utloggade: {{count}}","loadFailed":"Sessionerna kunde inte läsas in.","empty":"Inga sessioner hittades.","current":"Denna session","revokedBadge":"Utloggad","unknownDevice":"Okänd enhet","createdAt":"Inloggad","lastSeenAt":"Senast aktiv","expiresAt":"Upphör"},"apiKeys":{"title":"API-nycklar","description":"Begränsade tokens för skript och integrationer. Varje nyckel har endast åtkomst till de behörigheter du väljer.","newKeyTitle":"Din nya API-nyckel","copy":"Kopiera","copied":"Kopierat till urklipp.","copyFailed":"Kopieringen misslyckades.","showOnceWarning":"Kopiera den nu – den visas inte igen.","dismiss":"Klar","createTitle":"Skapa en nyckel","nameLabel":"Namn","namePlaceholder":"t.ex. CI-pipeline","nameRequired":"Ge nyckeln ett namn.","expiryLabel":"Giltighetstid i dagar (valfritt)","expiryPlaceholder":"Aldrig","expiryInvalid":"Giltighetstiden måste vara ett helt antal dagar.","scopesLabel":"Behörigheter","scopesRequired":"Välj minst en behörighet.","create":"Skapa nyckel","creating":"Skapar…","created":"API-nyckeln har skapats.","createFailed":"API-nyckeln kunde inte skapas.","revoke":"Återkalla","revoking":"Återkallar…","revoked":"API-nyckeln har återkallats.","revokeFailed":"API-nyckeln kunde inte återkallas.","revokedBadge":"Återkallad","loadFailed":"API-nycklarna kunde inte läsas in.","empty":"Inga API-nycklar ännu.","createdAt":"Skapad","lastUsedAt":"Senast använd","expiresAt":"Upphör","neverExpires":"Aldrig"}}`),models:{title:`Modeller`,subtitle:`Hämta, hantera och övervaka dina Ollama-modeller`,installed:`Installerade modeller`,available:`Tillgängliga modeller`,pull:`Hämta modell`,pulling:`Hämtar...`,delete:`Radera modell`,deleting:`Raderar...`,size:`Storlek`,modified:`Ändrad`,family:`Familj`,parameters:`Parametrar`,quantization:`Kvantisering`,noModels:`Inga modeller installerade`,pullFirst:`Hämta en modell för att komma igång`,noModelsFound:`Inga modeller hittades`},personas:{title:`Personas`,create:`Skapa persona`,edit:`Redigera persona`,delete:`Radera persona`,name:`Namn`,description:`Beskrivning`,systemPrompt:`Systemprompt`,model:`Modell`,avatar:`Avatar`,background:`Bakgrund`,noPersonas:`Inga personas skapade`,createFirst:`Skapa din första persona för att anpassa din chattupplevelse`},gallery:{title:`Galleri`,subtitle:`Ditt AI-genererade bildgalleri`,imageCount:`{{count}} bilder`,generate:`Generera bild`,generateDescription:`Skapa bilder med AI`,generating:`Genererar...`,prompt:`Prompt`,promptPlaceholder:`Beskriv bilden du vill generera...`,noImages:`Inga bilder genererade ännu`,download:`Ladda ner`,delete:`Radera`,regenerate:`Generera om`,model:`Modell`,size:`Storlek`,quality:`Kvalitet`,created:`Skapad`},errors:{generic:`Ett fel uppstod`,network:`Nätverksfel. Kontrollera din anslutning.`,unauthorized:`Du har inte behörighet att utföra denna åtgärd.`,notFound:`Den begärda resursen hittades inte.`,serverError:`Serverfel. Försök igen senare.`,validation:`Kontrollera din inmatning och försök igen.`},keyboard:{title:`Tangentbordsgenvägar`,toggleSidebar:`Växla sidofält`,openSettings:`Öppna inställningar`,toggleDarkMode:`Växla mörkt läge`,showShortcuts:`Visa tangentbordsgenvägar`,closeModals:`Stäng dialogrutor`,groups:{navigation:`Navigering`,general:`Allmänt`,chat:`Chatt`,workspace:`Arbetsyta`},actions:{sendMessage:`Skicka meddelande`,newLine:`Ny rad i meddelande`,saveEdit:`Spara redigerat meddelande`,cancelEdit:`Avbryt redigering`,saveFile:`Spara fil`,formatCode:`Formatera kod`},description:`Alla kortkommandon som finns i Libre WebUI.`,newChat:`Ny chatt`,newWork:`Ny Work-session`,openPalette:`Öppna kommandopaletten`},modelManager:{title:`Modeller`,loading:`Laddar modeller...`,systemStatus:{online:`Ollama online`,offline:`Ollama offline`,models:`modell`,models_plural:`modeller`,running:`körs`,vram:`VRAM`},sections:{pull:`Hämta ny modell`,library:`Bläddra i bibliotek`,huggingface:`HuggingFace Hub`,running:`Aktiva modeller`,local:`Lokala modeller`,advanced:`Avancerade åtgärder`,catalog:`Modellkatalog`},catalog:{searchPlaceholder:`Sök modeller efter namn eller leverantör...`,noModels:`Inga modeller är tillgängliga ännu.`,empty:`Inga modeller matchar din sökning.`,providerOllama:`Ollama`,hidden:`Dold`,visibilityFailed:`Kunde inte uppdatera modellens synlighet.`,filterAll:`Alla modeller`,filterLocal:`Lokala`,filterProviders:`Leverantörer`,filterHidden:`Dolda`,enableAll:`Aktivera visade`,disableAll:`Inaktivera visade`,rename:`Redigera namn och bild`,setPicture:`Ange bild`,clearPicture:`Ta bort bild`,pictureInvalid:`Välj en bildfil.`,pictureTooLarge:`Bilder måste vara under 192 KB.`,saving:`Sparar…`,hide:`Dölj för användare`,show:`Visa för användare`},pull:{placeholder:`Ange modellnamn (t.ex. llama3.2:3b, deepseek-r1:14b)`,button:`Hämta`,cancel:`Avbryt`,popular:`Populära modeller:`,browseAll:`Bläddra bland alla modeller på ollama.com`,success:`Modellen {{name}} hämtades`,cancelled:`Modellhämtning avbruten`,failed:`Kunde inte hämta modell`,enterName:`Ange ett modellnamn`,restricted:`Modellinstallation är begränsad till administratörer på denna instans.`},progress:{starting:`Initierar...`,pulling:`Laddar ner modell...`,pullingLayer:`laddar ner`,verifying:`Verifierar integritet...`,verifyingDigest:`verifierar sha256-digest`,writing:`Skriver manifest...`,cleaning:`Städar upp...`},library:{available:`tillgänglig`,search:`Sök modeller...`,noResults:`Inga modeller hittades som matchar dina kriterier`,installed:`Installerad`,more:`+{{count}} fler`,refresh:`Uppdatera bibliotek`},huggingface:{browseAll:`Bläddra bland alla på HuggingFace`,checkingGguf:`Söker efter GGUF-filer...`,noGgufAvailable:`Inga GGUF-filer tillgängliga för direkt Ollama-hämtning`,ggufFilesCount:`GGUF-filer ({{count}}) - Hämta direkt till Ollama`,noModelsFound:`Inga modeller hittades`,noResults:`Inga modeller hittades. Försök justera din sökning eller filter.`,browseAllLink:`Visa alla`,search:`Sök HuggingFace-modeller...`,by:`av`,gated:`Begränsad åtkomst`,viewOnHF:`Visa på HuggingFace`,sortDownloads:`Nedladdningar`,sortLikes:`Gillar`,sortRecent:`Senaste`,taskTextGeneration:`Textgenerering`,taskTextToSpeech:`Text till tal`,taskTextToImage:`Text till bild`,taskSpeechRecognition:`Taligenkänning`,tasks:{textGen:`Textgenerering`,tts:`Text till tal`,image:`Text till bild`,stt:`Taligenkänning`},sort:{downloads:`Mest nedladdade`,likes:`Mest gillade`,recent:`Nyligen uppdaterade`}},local:{noModels:`Inga modeller installerade ännu`,pullToStart:`Hämta en modell ovan för att komma igång`,installed:`installerad`,running:`Körs`,info:`Info`,copy:`Kopiera`,delete:`Radera`,deleteConfirm:`Är du säker på att du vill radera modellen "{{name}}"?`,deleteSuccess:`Modellen {{name}} raderades`,deleteFailed:`Kunde inte radera modell`},advanced:{createModel:`Skapa modell`,fromModelfile:`Från Modelfile`,copyModel:`Kopiera modell`,duplicateExisting:`Duplicera befintlig`,testEmbeddings:`Testa inbäddningar`,generateVectors:`Generera vektorer`,healthCheck:`Hälsokontroll`,testConnection:`Testa anslutning`,healthy:`Ollama fungerar!`},modals:{details:{title:`Modelldetaljer`,info:`Modellinformation`,family:`Familj`,parameters:`Parametrar`,quantization:`Kvantisering`,format:`Format`,systemPrompt:`Systemprompt`,template:`Mall`,license:`Licens`,modelfile:`Modelfile`,noDetails:`Inga detaljer tillgängliga`},copy:{title:`Kopiera modell`,source:`Källmodell`,selectModel:`Välj en modell...`,newName:`Nytt modellnamn`,placeholder:`t.ex. min-anpassade-modell`,copying:`Kopierar...`,button:`Kopiera modell`,success:`Modellen kopierades till {{name}}`,failed:`Kunde inte kopiera modell`,enterBoth:`Ange både käll- och målnamn`},create:{title:`Skapa anpassad modell`,name:`Modellnamn`,namePlaceholder:`t.ex. min-assistent`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
2
- SYSTEM Du är en hjälpsam assistent.`,see:`Se`,docs:`Modelfile-dokumentation`,docsLink:`för syntaxreferens`,creating:`Skapar...`,button:`Skapa modell`,success:`Modellen {{name}} skapades`,failed:`Kunde inte skapa modell`,enterBoth:`Ange modellnamn och Modelfile-innehåll`},embeddings:{title:`Testa inbäddningar`,model:`Inbäddningsmodell`,selectModel:`Välj en modell...`,recommended:`Rekommenderade: nomic-embed-text, mxbai-embed-large`,input:`Inmatningstext`,placeholder:`Ange text att generera inbäddningar för...`,generating:`Genererar...`,button:`Generera inbäddningar`,result:`Resultat ({{count}} dimensioner)`,success:`Genererade {{count}}-dimensionell inbäddningsvektor`,failed:`Kunde inte generera inbäddningar`,enterBoth:`Välj en modell och ange text`}}},personaManager:{title:`Personas`,subtitle:`Skapa och hantera AI-personas med anpassade personligheter, minnen och beteenden`,loading:`Laddar personas...`,createButton:`Skapa persona`,importExport:`Importera/Exportera`,stats:{title:`Dina personas`,count:`{{count}} persona skapad`,count_plural:`{{count}} personas skapade`},empty:{title:`Inga personas ännu`,description:`Skapa din första persona för att komma igång med personaliserade AI-interaktioner`,button:`Skapa din första persona`},deleteConfirm:`Är du säker på att du vill radera "{{name}}"?`,deleteSuccess:`Persona "{{name}}" raderades`,downloadSuccess:`Persona "{{name}}" laddades ner`,failed:`Kunde inte {{action}} persona`},personaForm:{title:{create:`Skapa ny persona`,edit:`Redigera persona`},subtitle:{create:`Skapa en ny AI-persona med anpassad personlighet, minnessystem och adaptiv inlärning`,edit:`Anpassa din AI-persona med avancerat minne, adaptiv inlärning och intelligenta parametrar`},loading:`Laddar formulär...`,saved:`Sparad`,tabs:{basic:`Grundläggande`,parameters:`Parametrar`,memory:`Minne och inlärning`,advanced:`Avancerat`},basic:{name:`Namn`,namePlaceholder:`Ange personans namn`,model:`Modell`,selectModel:`Välj en modell`,description:`Beskrivning`,descriptionPlaceholder:`Beskriv din persona...`,systemPrompt:`Systemprompt`,systemPromptPlaceholder:`Ange systemprompten som definierar din personas beteende...`,systemPromptHint:`Systemprompten definierar hur din persona kommer att bete sig och svara.`},parameters:{temperature:`Temperatur`,temperatureHint:`Styr kreativitet kontra konsekvens`,topP:`Top-P`,topPHint:`Styr svarsmångfald`,topK:`Top-K`,topKHint:`Begränsar vokabulär till top-k tokens`,contextWindow:`Kontextfönster`,contextWindowHint:`Maximal konversationshistoriklängd`,maxTokens:`Max tokens`,maxTokensHint:`Maximal svarslängd`,repeatPenalty:`Upprepningsstraff`,repeatPenaltyHint:`Minskar upprepande svar`},memory:{title:`Minnessystem`,subtitle:`Persona minns konversationer över tid`,enableHint:`Aktivera minnessystemet för att låta din persona komma ihåg konversationer och bygga upp kontext över tid.`,loading:`Laddar minnesstatus...`,noData:`Ingen minnesdata ännu`,memories:`Minnen`,mbUsed:`MB använt`,lastBackup:`Senaste säkerhetskopiering`,never:`Aldrig`,maxMemories:`Maximala minnen`,maxMemoriesHint:`Hur många minnen denna persona kan lagra`,retention:`Minnesbevarande`,retentionHint:`Dagar att behålla minnen före rensning`,autoCleanup:`Automatisk rensning av gamla minnen`,wipeAll:`Radera alla minnen`,wipeCannot:`Detta kan inte ångras`,wipeButton:`Radera`,wiping:`Raderar...`,wipeConfirm:`Är du säker på att du vill radera alla minnen? Detta kan inte ångras.`,wipeSuccess:`Raderade {{count}} minnen`},learning:{title:`Adaptiv inlärning`,subtitle:`Persona utvecklas baserat på interaktioner`,enableHint:`Aktivera adaptiv inlärning för att låta din persona utvecklas och personalisera svar baserat på dina interaktioner.`,speed:`Inlärningshastighet`,slow:`Långsam`,slowDesc:`Gradvisa förändringar`,balanced:`Balanserad`,balancedDesc:`Måttlig takt`,fast:`Snabb`,fastDesc:`Snabb anpassning`,autoAdapt:`Anpassa automatiskt till användarpreferenser`,whatLearns:`Vad personan lär sig:`,conversationTone:`Konversationston`,responseStyle:`Svarsstil`,userPreferences:`Användarpreferenser`,topicInterests:`Ämnesintressen`},advanced:{embeddingModel:`Inbäddningsmodell`,embeddingHint:`Välj modell för minneskodning och semantisk sökning. Inbäddningsmodeller visas först, följt av andra tillgängliga modeller.`,noModels:`Inga modeller hittades`,embeddingModels:`Inbäddningsmodeller`,otherModels:`Andra modeller`,installHint:`Installera en inbäddningsmodell:`,recommended:`Rekommenderade: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`Om avancerade inställningar`,aboutDescription:`Inbäddningsmodellen används av minnessystemet för att förstå semantisk betydelse och hitta relevanta minnen under konversationer. Välj en modell som passar ditt användningsfall och tillgängliga resurser.`},actions:{cancel:`Avbryt`,save:`Spara`,saving:`Sparar...`,saveClose:`Spara och stäng`,create:`Skapa`},success:{created:`Persona skapad`,updated:`Persona uppdaterad`},error:{saveFailed:`Kunde inte spara`}},personaCard:{enhanced:`Förbättrad`,systemPrompt:`Systemprompt`,memories:`minnen`,use:`Använd`,editTooltip:`Redigera persona`,downloadTooltip:`Ladda ner persona`,backup:`Säkerhetskopiera`,exportDNA:`Exportera DNA`,wipeMemories:`Radera minnen`,wipeConfirm:`Är du säker på att du vill radera alla minnen för denna persona? Denna åtgärd kan inte ångras.`,wipeSuccess:`Raderade {{count}} minnen`,backupSuccess:`Personans säkerhetskopia laddades ner`,dnaSuccess:`Personans DNA exporterades`,failed:`Kunde inte {{action}}`},userManager:{title:`Användarhantering`,subtitle:`Hantera användarkonton och behörigheter`,pageDescription:`Hantera användarkonton, behörigheter och åtkomstkontroller för din Libre WebUI-instans.`,loading:`Laddar användare...`,createUser:`Skapa användare`,search:`Sök användare...`,noUsers:`Inga användare hittades`,noUsersMatching:`Inga användare matchar din sökning`,columns:{user:`Användare`,email:`E-post`,role:`Roll`,created:`Skapad`,actions:`Åtgärder`},roles:{admin:`Administratör`,user:`Användare`},noEmail:`Ingen e-post`,deleteConfirm:`Är du säker på att du vill radera användaren "{{name}}"?`,deleteSuccess:`Användaren raderades`,deleteFailed:`Kunde inte radera användare`,cannotDeleteSelf:`Du kan inte radera ditt eget konto`,approval:{title:`Väntande godkännanden`,description:`Granska nya registreringar innan de tillåts i denna instans.`,registered:`Registrerad`,activate:`Aktivera konto`,reject:`Neka registrering`,approved:`{{name}} kan nu logga in.`,failed:`Kontot kunde inte godkännas.`,notification:`{{count}} registrering(ar) väntar på ditt godkännande.`,notificationBadge:`{{count}} väntande användargodkännanden`},form:{title:{create:`Skapa användare`,edit:`Redigera användare`},username:`Användarnamn`,usernamePlaceholder:`Ange användarnamn`,email:`E-post`,emailPlaceholder:`Ange e-post (valfritt)`,password:`Lösenord`,passwordPlaceholder:`Ange lösenord`,passwordHint:`Lämna tomt för att behålla nuvarande lösenord`,role:`Roll`,creating:`Skapar...`,updating:`Uppdaterar...`,createButton:`Skapa användare`,updateButton:`Uppdatera användare`,createSuccess:`Användaren skapades`,updateSuccess:`Användaren uppdaterades`,createFailed:`Kunde inte skapa användare`,updateFailed:`Kunde inte uppdatera användare`},workAccess:{title:`Work-åtkomst`,description:`Tillåt alla aktiva användare att skapa och köra Work-uppgifter i isolerade sandlådor. Administratörer har alltid åtkomst; arbetsytor i värdmappar förblir endast för administratörer.`,saved:`Work-åtkomst uppdaterad`,saveFailed:`Kunde inte uppdatera Work-åtkomst`},workPolicies:{title:`Work-policyer`,description:`Namngivna körningsförval (image, gränser, tomgångsstopp) som uppgifter kan skapas under. Tomma fält ärver de globala standarderna.`,add:`Lägg till policy`,name:`Namn`,image:`Image`,memory:`Minne`,cpu:`CPU:er`,pids:`PID-gräns`,workspaceSize:`Arbetsytans storlek`,idleMinutes:`Tomgångsstopp (minuter)`,networkDefault:`Nätverksstandard`,networkInherit:`Ärv standard`,networkOn:`Aktiverad`,networkOff:`Inaktiverad`,save:`Spara`,cancel:`Avbryt`,edit:`Redigera policy`,delete:`Ta bort policy`,deleteConfirm:`Ta bort denna policy? Uppgifter som använder den faller tillbaka till de globala standarderna.`,empty:`Inga policyer ännu. Uppgifter använder de globala körningsstandarderna.`,saved:`Work-policy sparad`,deleted:`Work-policy borttagen`,failed:`Kunde inte spara Work-policyn`,invalidNumber:`PID-gräns och tomgångsstopp måste vara tal.`},modelAccess:{title:`Modellnedladdningar`,description:`Tillåt alla aktiva användare att hämta modeller från Ollama och Hugging Face-bläddraren. Administratörer kan alltid hämta modeller.`,saved:`Åtkomst till modellnedladdning uppdaterad`,saveFailed:`Kunde inte uppdatera åtkomst till modellnedladdning`},webSearchAccess:{title:`Webbsökning`,description:`Tillåt alla aktiva användare att använda webbsökning i chattar och Work-uppgifter. Administratörer kan alltid använda den. Motorn konfigureras under Inställningar > Sökning.`,saved:`Åtkomst till webbsökning uppdaterad`,saveFailed:`Kunde inte uppdatera åtkomst till webbsökning`},agentAccess:{title:`Agenter`,description:`Erbjud sektionen Agenter (Libre Claw) för administratörer. Agent-CLI:er körs på värden som serveranvändaren, utanför Work-sandlådan.`,saved:`Agentåtkomst uppdaterad`,saveFailed:`Kunde inte uppdatera agentåtkomst`,lockedByEnv:`Låst av miljövariabeln AGENT_CLI_MODELS_ENABLED.`},groups:{title:`Grupper`,description:`Gruppera konton för att hantera delad åtkomst och se vad ett konto faktiskt kan göra.`,newGroup:`Ny grupp`,nameLabel:`Namn`,nameRequired:`Ge gruppen ett namn.`,descriptionLabel:`Beskrivning (valfritt)`,create:`Skapa grupp`,creating:`Skapar…`,created:`Gruppen har skapats.`,createFailed:`Gruppen kunde inte skapas.`,deleted:`Gruppen har tagits bort.`,deleteFailed:`Gruppen kunde inte tas bort.`,deleteGroup:`Ta bort grupp`,loadFailed:`Grupperna kunde inte läsas in.`,empty:`Inga grupper ännu.`,memberCount:`Medlemmar: {{count}}`,noMembers:`Inga medlemmar ännu.`,addedAt:`Tillagd`,addMember:`Lägg till medlem`,add:`Lägg till`,selectUser:`Välj en användare…`,memberAdded:`Medlemmen har lagts till.`,memberAddFailed:`Medlemmen kunde inte läggas till.`,removeMember:`Ta bort medlem`,memberRemoved:`Medlemmen har tagits bort.`,memberRemoveFailed:`Medlemmen kunde inte tas bort.`,effectiveTitle:`Effektiv åtkomst`,effectiveDescription:`Välj ett konto för att se vilken åtkomst det får sammanlagt via roll, grupper och tilldelningar.`,accessLookupFailed:`Den effektiva åtkomsten kunde inte läsas in.`,roleLabel:`Roll`,statusLabel:`Status`,memberOf:`Grupper`,featuresLabel:`Funktionsåtkomst`,grantsLabel:`Tilldelningar`,grantVia:`via`},audit:{title:`Säkerhetslogg`,description:`Senaste inloggningar, behörighetskontroller och administrativa ändringar på denna instans.`,actionFilter:`Åtgärd`,actionPlaceholder:`t.ex. auth.login`,resultFilter:`Resultat`,resultSuccess:`Lyckades`,resultDenied:`Nekad`,resultFailure:`Misslyckades`,limitFilter:`Gräns`,loadFailed:`Granskningsloggen kunde inte läsas in.`,empty:`Inga granskningshändelser registrerade ännu.`,actor:`Aktör`,target:`Mål`}},usageAnalytics:{eyebrow:`Administration`,title:`Leverantörsanvändning`,description:`Följ utgående API-anrop och modellförbrukning över de aktiverade pluginsen i denna instans.`,days:`{{count}} dagar`,refresh:`Uppdatera användning`,loadFailed:`Leverantörsanvändning kunde inte laddas.`,metrics:{calls:`Anrop`,tokens:`Tokens`},cards:{calls:`API-anrop`,callsDetail:`Över {{count}} aktiv(a) användare`,tokens:`Rapporterade tokens`,tokensDetail:`Användning rapporterad på {{count}} anrop`,success:`Framgångsfrekvens`,successDetail:`{{count}} misslyckade anrop`,latency:`Genomsnittlig latens`,latencyDetail:`Leverantörens tid från ände till ände`},activity:{title:`Förbrukning över tid`,callsDescription:`Dagliga utgående förfrågningar till aktiverade plugins`,tokensDescription:`Dagliga token-totaler rapporterade av leverantörer`,chartLabel:`Dagligt diagram över leverantörens {{metric}}`},models:{title:`Modellförbrukning`,description:`Modellerna med mest trafik under denna period.`,model:`Modell`,success:`Lyckade`,latency:`Latens`},providers:{title:`Trafik för aktiverade plugins`},capabilities:{title:`Kapabilitetsmix`,characters:`{{count}} tecken`,bytes:`{{count}} byte`,images:`{{count}} bilder`,jobs:`{{count}} videojobb`,inputs:`{{count}} indata`,reportedTokens:`{{count}} rapporterade tokens`},empty:{title:`Inga leverantörsanrop ännu`,description:`Anrop visas här efter att en aktiverad plugin hanterar chatt-, Work-, inbäddnings-, bild-, tal-, ljud- eller videoförfrågningar.`},privacyNote:`Användning mäts på servern vid den utgående plugin-gränsen. Libre WebUI lagrar leverantör, modell, tidsmätning, status och rapporterade räknare—aldrig prompts, svar, ändpunkter, autentiseringsuppgifter eller leverantörsfelkroppar. Token-totaler inkluderar endast anrop där leverantören returnerade användningsmetadata.`,heatmap:{title:`Ett år av aktivitet`,description:`Dagliga leverantörsanrop under det senaste året, färgade efter dagens mest använda modell.`,calls:`anrop`,noCalls:`Inga anrop`,other:`Övriga modeller`,less:`Mindre`,more:`Mer`,yearTotal:`{{formatted}} anrop under det senaste året`}},systemPage:{eyebrow:`Administration`,title:`System`,description:`Övervaka maskinen och körningsmiljön som är värd för denna Libre WebUI-instans.`,updated:`Uppdaterad {{date}}`,refresh:`Uppdatera systeminformation`,loadFailed:`Systeminformation kunde inte läsas in.`,cards:{uptime:`Värdens drifttid`,uptimeDetail:`Körs sedan {{date}}`,memory:`Använt minne`,memoryDetail:`{{used}} av {{total}}`,freeSpace:`Ledigt utrymme`,freeSpaceDetail:`{{label}} · {{total}} totalt`,containers:`Körande containrar`,containersDetail:`{{total}} container(s) kända av Docker`,dockerUnavailable:`Docker otillgänglig`,unavailable:`Otillgänglig`},host:{title:`Värd & körningsmiljö`,description:`Operativsystem, processor och Libre WebUI-processdetaljer.`,container:`Container-körningsmiljö`,native:`Inbyggd körning`,hostname:`Värdnamn`,operatingSystem:`Operativsystem`,processor:`Processor`,logicalCpus:`logiska CPU:er`,loadAverage:`Belastningsmedelvärde · 1 / 5 / 15 min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Process`,workingDirectory:`Arbetskatalog`},memory:{title:`Minne`,description:`Systemminne synligt vid körning samt processanvändning för applikationen.`,usedOf:`{{used}} använt av {{total}}`,free:`{{value}} ledigt`,processRss:`Process-RSS`,heapUsed:`V8-heap använt`,heapTotal:`V8-heap totalt`,external:`Externt minne`},storage:{title:`Lagring`,description:`Tillgängligt utrymme för körningsmiljöns filsystem och beständig applikationsdata.`,used:`{{value}} använt`,free:`{{value}} ledigt`,empty:`Filsystemsinformation är inte tillgänglig i denna körningsmiljö.`},docker:{title:`Docker`,description:`Skrivskyddad Docker Engine-status och en begränsad lista över containrar.`,connected:`Ansluten`,unavailable:`Otillgänglig`,unavailableDetail:`Docker Engine-diagnostik är otillgänglig.`,socketStatus:`Lokal socket: {{status}}`,mounted:`monterad`,notMounted:`inte monterad`,running:`Körs`,stopped:`Stoppad`,paused:`Pausad`,total:`Totalt`,version:`Version`,host:`Värd`,architecture:`Arkitektur`,cpus:`CPU:er`,memory:`Minne`,container:`Container`,image:`Avbildning`,state:`Tillstånd`,created:`Skapad`,empty:`Docker är anslutet och inga containrar listas för närvarande.`},network:{title:`Nätverk`,description:`Körningsmiljöns synliga gränssnitt, adresser och Linux-trafikräknare.`,internal:`intern`,empty:`Inga nätverksgränssnitt är synliga för programmets körningsmiljö.`},securityNote:`Denna sida är begränsad till administratörer. Servern returnerar endast driftsammanfattningar: den exponerar inte miljövariabler, autentiseringsuppgifter, Docker-etiketter, monteringar, container-kommandon eller inspektionsnyttolaster. När Libre WebUI körs i en container kommer värdnivåns CPU- och minnesdetaljer från Docker Engine när dess lokala socket är tillgänglig; andra värden beskriver programmets körningsmiljö.`,work:{title:`Work`,description:`Sandlådor för alla användare`,access:`Åtkomst`,accessAdmins:`Endast administratörer`,accessAllUsers:`Alla användare`,runtimeAvailable:`Tillgänglig`,runtimeUnavailable:`Otillgänglig`,activeRuntimes:`Aktiva körmiljöer`,pendingCleanups:`Väntande rensningar`,orphans:`Föräldralösa containrar`,owner:`Ägare`,task:`Uppgift`,state:`Tillstånd`,preview:`Förhandsvisning`,terminals:`Terminaler`,updated:`Uppdaterad`,stateRunning:`Körs`,stateStopped:`Stoppad`,stateStarting:`Startar`,stateUnknown:`Okänd`,noTasks:`Inga Work-uppgifter ännu.`}},chatHistory:{label:`Konversationshistorik`,jumpToTurn:`Gå till tur {{index}} av {{total}}`},chatMessage:{you:`Du`,assistant:`Assistent`,system:`System`,conversationSummary:`Sammanfattning av samtalet`,restoreCompacted:`Återställ de sammanfattade meddelandena`,restoreFailed:`De sammanfattade meddelandena kunde inte återställas`,copy:`Kopiera`,copyMessage:`Kopiera meddelande`,copied:`Kopierat!`,regenerate:`Generera om`,regenerateResponse:`Generera om svar`,edit:`Redigera`,editSystemMessage:`Redigera systemmeddelande`,saveChanges:`Spara ändringar`,cancelEditing:`Avbryt redigering`,saveAndSubmit:`Spara och skicka`,goodResponse:`Bra svar`,badResponse:`Dåligt svar`,delete:`Radera`,deleteConfirm:`Radera detta meddelande?`,branch:`Förgrena`,speaking:`Talar...`,speakMessage:`Läs upp meddelande`,stopSpeaking:`Sluta tala`,showMore:`Visa mer`,showLess:`Visa mindre`,thinking:`Tänker`,thoughtFor:`Tänkte i {{duration}}`,hiddenLines:`{{count}} dolda rader`,systemMessagePlaceholder:`Ange ditt systemmeddelande...`,fullSizeImage:`Fullstor bild`,startConversation:`Starta en konversation`,startConversationDescription:`Skicka ett meddelande för att börja chatta med din AI-assistent. Ställ frågor, få hjälp med kod eller ha en naturlig konversation.`,scrollToBottom:`Scrolla till botten`,newMessages:`Nya meddelanden`},imageGallery:{title:`Bildgalleri`,noImages:`Inga bilder ännu`,noImagesHint:`Generera din första bild med panelen till höger`,delete:`Radera`,download:`Ladda ner`,deleteConfirm:`Är du säker på att du vill radera denna bild?`,deleteSuccess:`Bilden raderades`,deleteFailed:`Kunde inte radera bild`,downloadFailed:`Kunde inte ladda ner bild`,loadMore:`Ladda fler ({{current}} av {{total}})`,loadFailed:`Kunde inte ladda galleri`},imageGeneration:{title:`Generera bild`,prompt:`Prompt`,promptPlaceholder:`Beskriv bilden du vill skapa...`,model:`Modell`,selectModel:`Välj modell`,noModels:`Inga bildgenereringsmodeller tillgängliga`,configurePlugin:`Konfigurera ett tillägg med bildgenereringsstöd`,size:`Storlek`,quality:`Kvalitet`,style:`Stil`,generate:`Generera`,generating:`Genererar...`,success:`Bilden genererades`,failed:`Kunde inte generera bild`,enterPrompt:`Ange en prompt`,promptTooLong:`Prompten överstiger maxlängden på {{max}} tecken`},mediaGeneration:{title:`Generera media`,description:`Skapa video, ljud, musik eller tal med en aktiverad medieleverantör.`,image:`Bild`,video:`Video`,audio:`Ljud`,sound:`Ljud`,speech:`Tal`,model:`Modell`,voice:`Röst eller röst-ID`,cloneVoice:`Klona en referensröst`,cloneVoiceDescription:`Generera talet utifrån en referensinspelning i stället för en förinställd röst.`,referenceAudio:`Referensljud`,referenceTranscript:`Exakt transkription av referensen`,referenceTranscriptPlaceholder:`Ange exakt vad som sägs i referensinspelningen…`,referenceAudioTooLarge:`Referensljudet får vara högst {{max}}.`,cloneConsent:`Klona bara en röst när du har talarens tillstånd. Inspelningen skickas till den valda leverantören för denna generering och sparas inte av Libre WebUI.`,saveVoiceProfile:`Spara som en återanvändbar röst`,saveVoiceProfileDescription:`Spara referensinspelningen och transkriptionen säkert. Libre WebUI skickar dem till den valda leverantören för varje talbatch som använder rösten.`,voiceProfileName:`Namn på sparad röst`,voiceProfileNamePlaceholder:`Till exempel Min röst`,voiceStorageConsent:`Jag bekräftar att jag har talarens tillstånd att klona och spara rösten. Referensen sparas tills jag tar bort den.`,resolution:`Upplösning`,aspectRatio:`Bildförhållande`,duration:`Längd`,providerDefault:`Leverantörens standard`,generateAudio:`Generera ljud med videon när det stöds`,prompt:`Prompt`,text:`Text att läsa upp`,videoPlaceholder:`Beskriv scenen, rörelsen, kameran och ljussättningen...`,audioPlaceholder:`Skriv in texten du vill att rösten ska läsa upp...`,soundPlaceholder:`Beskriv ljudet, musiken, atmosfären eller det talade svaret du vill ha...`,generate:`Generera`,generating:`Genererar… detta kan ta flera minuter`,success:`Media genererad och sparad till Imagine`,successWithSavedVoice:`Mediet har skapats och ”{{name}}” är nu tillgänglig i talinställningarna`,failed:`Misslyckades att generera media`,loadFailed:`Misslyckades att ladda medieleverantörer`,noModels:`Inga {{kind}}-modeller är tillgängliga. Aktivera en kompatibel leverantör och spara dess autentiseringsuppgifter först.`},mediaGallery:{itemCount:`{{count}} objekt`,empty:`Ingen genererad media ännu`,emptyHint:`Generera en bild, video eller ett röstklipp så visas det här.`,filters:{all:`Alla`,image:`Bilder`,video:`Videor`,audio:`Ljud`}},errorBoundary:{title:`Något gick fel`,description:`Vi stötte på ett oväntat fel. Försök att uppdatera sidan.`,tryAgain:`Uppdatera sidan`,goHome:`Gå till startsidan`,errorDetails:`Feldetaljer (utveckling)`},documents:{title:`Dokument`,upload:`Ladda upp dokument`,uploading:`Laddar upp...`,noDocuments:`Inga dokument uppladdade`,uploadHint:`Ladda upp dokument för att använda i dina konversationer`,delete:`Radera`,deleteConfirm:`Är du säker på att du vill radera detta dokument?`,deleteSuccess:`Dokumentet raderades`,deleteFailed:`Kunde inte radera dokument`,uploadSuccess:`Dokumentet laddades upp`,uploadFailed:`Kunde inte ladda upp dokument`,types:`Stöder: PDF, TXT, MD, DOCX`,unsupportedFileType:`Endast PDF- och TXT-filer stöds`,fileSizeTooLarge:`Filstorleken måste vara mindre än 10MB`,uploadSuccessWithName:`Dokumentet "{{name}}" laddades upp`,removeSuccess:`Dokumentet togs bort`,removeFailed:`Kunde inte ta bort dokument`,removeError:`Ett fel uppstod vid borttagning av dokumentet`,clickToUpload:`Klicka för att ladda upp`,orDragAndDrop:`eller dra och släpp`,fileTypesAndSize:`PDF- eller TXT-filer upp till 10MB`,uploadedDocuments:`Uppladdade dokument`,removeDocument:`Ta bort dokument`},ttsButton:{speak:`Tala`,stop:`Stoppa`,speaking:`Talar...`,generateFailed:`Kunde inte generera tal`,playbackFailed:`Ljuduppspelning misslyckades`,stopSpeaking:`Sluta tala`,preparingSpeech:`Förbereder tal...`,generatingSpeech:`Genererar tal...`,bufferingSpeech:`Buffrar tal...`,enableAudio:`Aktivera ljud och läs högt`,enableAudioShort:`Aktivera ljud`,readAloud:`Läs högt`},artifacts:{title:`Artefakter`,code:`Kod`,preview:`Förhandsgranskning`,copy:`Kopiera kod`,copied:`Kopierat!`,download:`Ladda ner`,expand:`Expandera`,collapse:`Minimera`,openInNewTab:`Öppna i ny flik`,invalidSvg:`Ogiltigt SVG-innehåll`,invalidJson:`Ogiltigt JSON-innehåll`,previewMode:`Förhandsgranskningsläge`,codeMode:`Kodläge`,copyContent:`Kopiera innehåll`,openInPanel:`Öppna i panel`,openInNewWindow:`Öppna i nytt fönster`,created:`Skapad`,closePanelEsc:`Stäng panel (Esc)`,copyButton:`Kopiera`,open:`Öppna`,dragEdgeToResize:`Dra i kanten för att ändra storlek`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Version {{current}} av {{total}}`,previousVersion:`Föregående version`,nextVersion:`Nästa version`},personaImportExport:{title:`Importera och exportera personas`,description:`Exportera dina personas för att dela dem eller importera personas från andra`,exportPersonas:`Exportera personas`,importPersonas:`Importera personas`,noPersonasToExport:`Inga personas att exportera`,personasAvailable:`{{count}} persona tillgänglig`,personasAvailable_plural:`{{count}} personas tillgängliga`,exportAll:`Exportera alla`,uploadJsonFile:`Ladda upp JSON-fil`,pasteJsonLabel:`Klistra in JSON-data`,pasteJsonPlaceholder:`Klistra in persona JSON-data här...`,importing:`Importerar...`,importButton:`Importera persona(s)`,expectedFormat:`Förväntat JSON-format:`,exportSuccess:`Persona "{{name}}" exporterades`,exportFailed:`Kunde inte exportera persona`,exportAllSuccess:`Alla {{count}} personas exporterades`,exportAllFailed:`Kunde inte exportera personas`,pasteJsonData:`Klistra in persona JSON-data`,importMultipleSuccess:`Importerade {{count}} personas`,importMultipleFailed:`Kunde inte importera {{count}} personas`,importNoneFailed:`Kunde inte importera några personas`,importSuccess:`Persona importerades`,importFailed:`Kunde inte importera persona`},generationStats:{details:`Detaljer`,promptTokens:`Prompttokens:`,generatedTokens:`Genererade tokens:`,totalTokens:`Totalt tokens:`,speed:`Hastighet:`,promptEval:`Promptutvärdering:`,generation:`Generering:`,modelLoad:`Modellladdning:`,totalTime:`Total tid:`,generatedAt:`Genererat kl.:`},userMenu:{loggedOut:`Utloggad`,pictureUpdated:`Profilbild uppdaterad`,failedUpdateAvatar:`Det gick inte att uppdatera avatar`,failedUpdatePicture:`Det gick inte att uppdatera profilbild`,noEmail:`Ingen e-post angiven`,changePicture:`Byt bild`,settings:`Inställningar`,userManagement:`Användarhantering`,signOut:`Logga ut`,changeProfilePicture:`Byt profilbild`},pluginManager:{title:`Pluginhanterare`,upload:`Ladda upp`,addJson:`Lägg till JSON`,browseHF:`Bläddra i HF Hub`,confirmDelete:`Är du säker på att du vill ta bort detta plugin?`,uploading:`Laddar upp plugin...`,pasteJson:`Klistra in plugin-JSON här...`,installPlugin:`Installera plugin`,loading:`Laddar plugins...`,noPlugins:`Inga plugins installerade`,noPluginsDescription:`Ladda upp en pluginfil eller lägg till ett plugin från JSON för att komma igång.`,active:`Aktiv`,id:`ID`,endpoint:`Endpoint`,activate:`Aktivera`,deactivate:`Inaktivera`,activePlugin:`Aktivt plugin`,activePluginDescription:`Alla chattförfrågningar dirigeras genom detta plugin`,variables:{title:`Variabler`,save:`Spara`,saving:`Sparar...`,saved:`Variabler sparade`,saveFailed:`Kunde inte spara variabler`,resetDefaults:`Återställ standard`,reset:`Variabler återställda`,resetFailed:`Det gick inte att återställa variabler`,sensitiveSet:`Värde är satt (ange nytt för att ändra)`,showValue:`Visa {{label}}-värde`,hideValue:`Dölj {{label}}-värde`,connection:`Anslutning`,advanced:`Avancerade parametrar`,inherited:`Använd leverantörens standard`,inheritedValue:`Använd leverantörens standard ({{value}})`,enabled:`Aktiverad`,disabled:`Inaktiverad`,required:`Ett värde krävs`,fullApiEndpoint:`Fullständig API-slutpunkts-URL`,endpointHelp:`Ange den fullständiga begärande-URL:en, inklusive dess operationssökväg (till exempel /v1/chat/completions), inte bara leverantörens bas-URL.`,invalidUrl:`Ange en giltig fullständig API-slutpunkts-URL, till exempel https://provider.example/v1/chat/completions`,insecureUrl:`API-slutpunkter måste använda HTTP eller HTTPS.`,httpWarning:`HTTP krypterar inte inloggningsuppgifter eller trafik. Använd det endast i ett betrott nätverk.`,invalidBaseUrl:`Bas-URL:er får inte innehålla en frågesträng eller fragment.`,invalidApiPath:`Måste börja med / och får inte innehålla URL, fråga, fragment eller ..-segment`,tooLong:`Värdet är för långt`}},huggingface:{title:`HuggingFace modellbläddrare`,subtitle:`Bläddra och välj modeller från Hub`,searchPlaceholder:`Sök modeller...`,filters:`Filter`,task:`Uppgift`,sortBy:`Sortera efter`,noModels:`Inga modeller hittades`,adjustSearch:`Försök justera din sökning eller filter`,gated:`Begränsad`,selected:`Valt`,select:`Välj`,refresh:`Uppdatera`,modelsFound:`modeller hittade`},demoMode:{title:`Demoläge`,github:`GitHub`},libreClaw:{title:`Agenter`,subtitle:`Lokala agentkörningar, godkännanden, scheman, minne, verktyg och användning.`,dashboard:`Översikt`,connection:{disconnectedTitle:`Libre Claw-daemonen är inte ansluten`,disconnectedDescription:`Starta den lokalt med <command>libre-claw start</command> eller ställ in <env>LIBRE_CLAW_BASE_URL</env> i backend-miljön.`},status:{connected:`Ansluten`,disconnected:`Frånkopplad`,activeRuns:`{{count}} aktiv`,activeRuns_plural:`{{count}} aktiv`},states:{queued:`I kö`,running:`Körs`,blocked:`Blockerad`,done:`Klart`,failed:`Misslyckades`,cancelled:`Avbruten`},startRun:{title:`Starta agentkörning`,placeholder:`Be Libre Claw att inspektera en repo, fixa en bugg, köra en granskning, schemalägga en rapport...`,chatRun:`Chattkörning`,goalMode:`Målläge`,providerOverride:`Åsidosättande av leverantör`,modelOverride:`Modell åsidosättande`,run:`Kör`},modelRoute:{title:`Modellväg`,providerPlaceholder:`leverantör`,modelPlaceholder:`modell`,persistGlobal:`Fortsätt till Libre Claw global konfiguration`,saveModel:`Spara modell`,theme:`Libre Claw-tema`,saveTheme:`Spara tema`},runs:{title:`Körningar`,empty:`Inga Libre Claw-körningar ännu.`},timeline:{title:`Körningstidslinje`,empty:`Välj en körning för att inspektera dess händelser.`,streaming:`Streamar...`,assistantResponse:`Assistentsvar`,resultOk:`okej`,resultError:`fel`,labels:{userMessage:`Användarmeddelande`,toolCall:`Verktygsanrop`,toolResult:`Verktygsresultat`,approvalRequest:`Begäran om godkännande`,approvalResponse:`Godkännande svar`,runStarted:`Körning startad`,runFinished:`Körning avslutad`,usage:`Användning`,error:`Fel`}},approvals:{needed:`Godkännande behövs`,allowOnce:`Tillåt en gång`,alwaysAllowTool:`Tillåt alltid verktyg`,deny:`Neka`,toolApprovalRequested:`Verktygsgodkännande begärs`},automations:{title:`Automatiseringar`,namePlaceholder:`Namn`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Automatiseringsprompt`,create:`Skapa`,empty:`Inga schemalagda Libre Claw-automatiseringar.`,runNow:`Kör nu`,pause:`Pausa`,resume:`Återuppta`,routes:{report:`Rapportera`,telegram:`Telegram`},status:{active:`Aktiv`,paused:`Pausad`}},usageFallback:{title:`Användning och reserv`,usage:`Användning`,fallbackRoute:`Reservrutt`,noUsage:`Inga användningsuppgifter ännu.`},metrics:{provider:`Leverantör`,model:`Modell`,input:`Ingång`,output:`Utgång`,cached:`Cachad`,reasoning:`Resonemang`,cost:`Kostnad`,tool:`Verktyg`,resolution:`Upplösning`,state:`Status`,stopReason:`Stopporsak`,tokens:`{{formatted}} token`,tokens_plural:`{{formatted}} polletter`},fallbacks:{tool:`verktyg`,unknown:`okänt`,resolved:`löst`,unknownError:`Okänt fel`},toasts:{loadStatusFailed:`Kunde inte ladda Libre Claw status`,enterTask:`Ange en uppgift för Libre Claw`,runStarted:`Libre Claw-körning startad`,startRunFailed:`Kunde inte starta Libre Claw-körning`,runCancelled:`Körning avbruten`,cancelRunFailed:`Det gick inte att avbryta körningen`,approved:`Godkänd`,denied:`Nekad`,resolvePermissionFailed:`Det gick inte att lösa behörigheten`,providerModelRequired:`Leverantör och modell krävs`,modelUpdated:`Libre Claw-modellen uppdaterad`,updateModelFailed:`Kunde inte uppdatera modellen`,themeUpdated:`Libre Claw-tema uppdaterat`,updateThemeFailed:`Det gick inte att uppdatera temat`,automationRequired:`Automationsnamn, schema och uppmaning krävs`,automationCreated:`Automatisering skapad`,createAutomationFailed:`Det gick inte att skapa automatisering`,automationUpdated:`Automatisering uppdaterad`,updateAutomationFailed:`Det gick inte att uppdatera automatiseringen`}},work:{title:`Arbete`,subtitle:`Isolerade arbetsytor för modeller`,tasks:{title:`Arbetsuppgifter`,subtitle:`Beständiga lokala arbetsytor`,new:`Ny uppgift`,emptyTitle:`Inga arbetsuppgifter än`,empty:`Dina arbetsuppgifter visas här när du har skickat det första meddelandet.`,untitled:`Namnlös uppgift`,actions:`Uppgiftsåtgärder`,delete:`Ta bort uppgift`,deleteNamed:`Ta bort {{title}}`,deleteConfirm:`Ta bort ”{{title}}” och dess arbetsyta permanent?`,close:`Stäng arbetsuppgifter`,open:`Öppna arbetsuppgifter`,rename:`Uppgiftstitel`,loading:`Läser in uppgift…`,notFound:`Den här arbetsuppgiften är inte tillgänglig`,back:`Starta en ny uppgift`,status:`Status: {{status}}`},landing:{title:`Starta en ny arbetsuppgift`,description:`Ge en lokal modell eller en modell från en konfigurerad leverantör en beständig, isolerad arbetsyta. Den kan granska filer, köra verktyg och fortsätta där den slutade när du återvänder.`,isolated:`Isolerad`,isolatedBody:`Varje uppgift får en egen container och egna filer.`,durable:`Beständig`,durableBody:`Återvänd senare till konversationen och arbetsytan.`,controlled:`Kontrollerad`,controlledBody:`Körmiljön och uppgiftsfilerna förblir isolerade från värdsystemet.`},composer:{placeholder:`Beskriv vad du vill skapa eller ändra…`,model:`Modell för arbete`,noModels:`Inga modeller som är kompatibla med Arbete`,cancel:`Stoppa`,send:`Kör`,hint:`Varje uppgift behåller sina egna filer och sin historik. Granska modellens utdata innan du använder dem.`,remoteTitle:`Fjärrleverantör`,remoteHint:`Konversationen och verktygens utdata skickas till den konfigurerade tjänsten. En autonom körning kan göra flera leverantörsanrop och medföra kostnader. Filerna på arbetsytan stannar lokalt om inte ett verktyg returnerar deras innehåll.`,remoteDismiss:`Dölj`,remoteDismissLabel:`Dölj meddelandet om fjärrleverantören`,remoteDismissFailed:`Det gick inte att spara inställningen för fjärrleverantören.`,noModelSelected:`Ingen modell som är kompatibel med Arbete har valts.`},conversation:{ready:`Arbetsytan är klar`,empty:`Fortsätt med uppgiften nedan. Konversationen och dess filer förblir kopplade till den här arbetsytan.`,loadOlder:`Läs in äldre meddelanden`},status:{preparing:`Förbereder den isolerade arbetsytan…`,running:`Arbetar på den lokala arbetsytan…`},statusLabels:{idle:`Inaktiv`,thinking:`Tänker`,complete:`Klar`,needsInput:`Behöver inmatning`,error:`Fel`},live:{connecting:`Ansluter till liveuppdateringar…`,reconnecting:`Återansluter till liveuppdateringar…`,unavailable:`Liveuppdateringar är inte tillgängliga`,newActivity:`Ny aktivitet`,skillsLoaded:`Arbetsytefärdigheter · {{count}}`},runtime:{unavailable:`Körmiljön är inte tillgänglig`,ready:`Körmiljön är redo`,readyOllama:`Docker redo`,readyPlugin:`Docker + tillägg redo`,readyHybrid:`Docker + modeller redo`,reason:`Docker och en tillgänglig modellleverantör via Ollama eller ett tillägg krävs.`},workspace:{label:`Arbetsytevyer`,files:`Filer`,activity:`Aktivitet`,preview:`Förhandsgranskning`,resize:`Ändra storlek på konversationen och arbetsytan`,resizeHint:`Dra för att ändra storleken. Använd piltangenterna för exakt kontroll. Dubbelklicka eller tryck på Retur för att återställa.`,splitSize:`Konversation {{conversation}} %, arbetsyta {{workspace}} %`,terminal:`Terminal`,git:`Git`},files:{discard:`Kassera osparade filändringar?`,leaveWithDraft:`Lämna den här filen? Din osparade redigering sparas som ett utkast i webbläsaren.`,up:`Överordnad mapp`,back:`Tillbaka till filer`,empty:`Det finns inga filer i den här mappen än.`,select:`Välj en fil för att granska och redigera den.`,editorLabel:`Filredigerare: {{path}}`,format:`Formatera`,formatted:`Koden har formaterats.`,formatFailed:`Det gick inte att formatera den här filen.`,formatShortcut:`Formatera (Skift+Alt+F)`,formatTooLarge:`Formatering är begränsad till filer med färre än 100 000 tecken och 4 000 rader.`,formatUnsupported:`Formatering är inte tillgänglig för den här filtypen.`,saveShortcut:`Spara (⌘/Ctrl+S)`,highlightPaused:`Syntaxmarkering i realtid har pausats för stora filer så att redigeringen förblir responsiv.`,plainTextLarge:`Oformaterad text · stor fil`,changes:`Ändringar`,changesSince:`Vad som ändrats sedan senaste turen`,diffLabel:`Ändringar sedan senaste turen: {{path}}`,diffFolded:`{{count}} oförändrade rader`},activity:{empty:`Kommandon, filåtgärder och verktygsresultat visas här.`,toolActivity:`Verktygsaktivitet`,details:`Detaljer`,kinds:{message:`Meddelande`,toolCall:`Verktygsanrop`,toolResult:`Verktygsresultat`,error:`Fel`}},preview:{command:`Valfritt startkommando`,start:`Starta förhandsgranskning`,stop:`Stoppa förhandsgranskning`,open:`Öppna`,starting:`Startar förhandsgranskning…`,frameTitle:`Förhandsgranskning av arbetsyta`,failed:`Det gick inte att starta förhandsgranskningen. Kontrollera Aktivitet och prova sedan ett annat kommando.`,empty:`Starta appen på den här arbetsytan för att granska den här.`},mobile:{surface:`Uppgiftsvy`,conversation:`Konversation`,workspace:`Arbetsyta`},toasts:{runFailed:`Det gick inte att starta arbetsuppgiften.`,updateFailed:`Det gick inte att uppdatera den här uppgiften.`,renameFailed:`Det gick inte att byta namn på den här uppgiften.`,cancelled:`Arbetskörningen stoppades.`,cancelFailed:`Det gick inte att stoppa arbetskörningen.`,deleteFailed:`Det gick inte att ta bort den här arbetsuppgiften.`,saveFailed:`Det gick inte att spara den här filen.`,saved:`Filen har sparats.`,previewFailed:`Det gick inte att starta förhandsgranskningen.`,previewStopFailed:`Det gick inte att stoppa förhandsgranskningen.`},terminal:{connecting:`Öppnar ett skal i sandlådan…`,closed:`Terminalsessionen avslutades.`,failed:`Terminalsessionen kunde inte startas.`,reconnect:`Anslut igen`,unavailable:`Den interaktiva terminalen är inte tillgänglig i den här installationen.`,blockedByRun:`Modellen använder den här containern. Terminalen öppnas när turen är klar.`,taskRunning:`Modelltur pågår`},policy:{label:`Körningspolicy`,default:`Standard (globala gränser)`},git:{actionFailed:`Git-åtgärden misslyckades.`,blockedByPreview:`Stoppa förhandsvisningen innan Git-läget ändras.`,blockedByRun:`Git-skrivåtgärder låses upp när modellens tur är klar.`,branchCreated:`{{name}} skapad.`,branchSwitched:`Bytte till {{name}}.`,clean:`Arbetsträdet är rent.`,commit:`Committa förberedda ändringar`,commitMessage:`Commit-meddelande`,committed:`Commit skapad.`,detached:`frånkopplad HEAD`,diff:`Diff-förhandsvisning`,diffFailed:`Kunde inte läsa in denna diff.`,history:`Lokal historik`,initialize:`Initiera Git`,initializeDescription:`Skapa ett lokalt repository för status, diffar, grenar och commits. Inga fjärruppgifter kopplas.`,initialized:`Git-repository initierat.`,loadFailed:`Kunde inte läsa in Git-status.`,localOnly:`Endast lokal Git. Push, pull och pull requests kräver en separat betrodd uppgiftsmäklare.`,newBranch:`Ny lokal gren`,noCommits:`Inga commits ännu.`,noDiff:`Ingen textdiff ännu. Ospårade filer visas efter förberedelse.`,notInitialized:`Git är inte initierat`,selectChange:`Välj en ändrad fil för att granska dess diff.`,selectPath:`Välj {{path}}`,stageAll:`Förbered alla`,stageSelected:`Förbered {{count}}`,staged:`Ändringar förberedda.`,switchBranch:`Byt lokal gren`,changes:`Ändringar`,createBranch:`Skapa`,filterFiles:`Filtrera ändrade filer`,noFilterMatches:`Inga ändrade filer matchar det här filtret.`,allChanges:`Alla ändringar`,diffTruncated:`Denna diff är avkortad.`,binaryFile:`Binär fil, ingen textdiff.`},hostWorkspace:{hint:`Lämna tomt för en isolerad arbetsyta, eller peka uppgiften mot en mapp på den här datorn.`,label:`Arbetsytemapp (valfritt)`,warning:`Uppgiften kan läsa och skriva denna mapp direkt. Lämna tomt för en isolerad arbetsyta.`}},personaBackground:{label:`Bakgrundsbild`,uploadBackgroundImage:`Ladda upp bakgrundsbild`,dragAndDrop:`Dra och släpp en bild eller klicka för att bläddra`,chooseImage:`Välj bild`,uploading:`Laddar upp...`,enterImageUrl:`Eller ange bild-URL`,supportedFormats:`Stöder: JPG, PNG, GIF, WebP (max 5MB). Breda landskapsbilder fungerar bäst.`,customBackground:`Anpassad bakgrundsbild`,clickToChange:`Klicka för att ändra eller ta bort`,removed:`Bakgrund borttagen`,uploaded:`Bakgrund uppladdad`,invalidFile:`Välj en giltig bildfil`,fileTooLarge:`Bakgrundsbildens storlek måste vara mindre än 5MB`,readFailed:`Kunde inte läsa bildfil`,uploadFailed:`Kunde inte ladda upp bakgrundsbild`},modelSelector:{searchInstalled:`Sök installerade modeller...`,searchOllama:`Sök i Ollama-biblioteket...`,searchHuggingFace:`Sök på HuggingFace...`,selectModel:`Välj modell`,personas:`Personas`,ollamaModels:`Ollama-modeller`,pluginModels:`Plugin-modeller`,actions:`Åtgärder`,installed:`Installerad`,use:`Använd`,pull:`Ladda ner`,pullRestricted:`Modellinstallation är begränsad till administratörer på denna instans.`,adminOnlyPull:`Endast administratörer`,legacyProvider:`leverantör ej registrerad`,providerNotRecorded:`Leverantör ej registrerad`,providerUnavailable:`leverantör otillgänglig`,reselectProvider:`välj leverantör igen för att fästa denna modell`,unavailable:`otillgänglig`,unavailableSelections:`Otillgängliga val`,agentModels:`Agenter`},whatsNew:{title:`Nyheter`,releaseNotes:`Versionsinformation`,cta:`Okej, nu kör vi`,starAsk:`Gillar du Libre WebUI? Lämna en stjärna på GitHub`},notes:{title:`Anteckningar`,new:`Ny anteckning`,untitled:`Namnlös`,empty:`Inga anteckningar än`,selectOrCreate:`Välj en anteckning eller skapa en ny`,contentPlaceholder:`Skriv i Markdown…`,saved:`Sparad`,saveFailed:`Kunde inte spara anteckningen`,createFailed:`Kunde inte skapa en anteckning`,deleteConfirm:`Ta bort den här anteckningen?`,deleteFailed:`Kunde inte ta bort anteckningen`},calendar:{title:`Kalender`,today:`Idag`,month:`Månad`,week:`Vecka`,previous:`Föregående`,next:`Nästa`,newEvent:`Ny händelse`,editEvent:`Redigera händelse`,eventTitle:`Titel`,titlePlaceholder:`Händelsens titel`,date:`Datum`,start:`Start`,end:`Slut`,allDay:`Hela dagen`,repeat:`Upprepa`,repeatNone:`Upprepas inte`,repeatDaily:`Dagligen`,repeatWeekly:`Varje vecka`,repeatMonthly:`Varje månad`,repeatYearly:`Varje år`,notes:`Anteckningar`,more:`+{{n}} till`,loadFailed:`Kalendern kunde inte läsas in`,saveFailed:`Händelsen kunde inte sparas`,deleteFailed:`Händelsen kunde inte tas bort`},automations:{title:`Automatiseringar`,tab:{automations:`Automatiseringar`,runs:`Körningar`},newAutomation:`Ny automatisering`,editAutomation:`Redigera automatisering`,empty:`Inga automatiseringar ännu. Skapa en för att köra en uppgift enligt ett schema.`,loadFailed:`Automatiseringarna kunde inte läsas in`,saveFailed:`Automatiseringen kunde inte sparas`,actionFailed:`Åtgärden misslyckades`,runQueued:`Körning startad`,status:{active:`Aktiv`,paused:`Pausad`},nextRun:`Nästa körning {{when}}`,actions:`Åtgärder`,pause:`Pausa`,resume:`Återuppta`,runNow:`Kör nu`,openChat:`Öppna chatt`,noRuns:`Inga körningar ännu`,deletedAutomation:`Borttagen automatisering`,runHistory:`Körningshistorik (senaste 30 dagarna)`,succeeded:`lyckades`,failed:`misslyckades`,form:{name:`Namn`,namePlaceholder:`Min automatisering`,triggers:`Utlösare`,addTrigger:`Lägg till utlösare`,instructions:`Instruktioner`,instructionsPlaceholder:`Vad ska köras enligt det här schemat?`,model:`Modell`,modelAuto:`Auto`,notification:`Avisering`,notifyApp:`App`,notifyOff:`Av`,frequency:`Frekvens`,time:`Tid`,minute:`Minut`,fromHour:`Från`,toHour:`Till`,weekday:`Veckodag`,dayOfMonth:`Dag`,month:`Månad`},kind:{once:`En gång`,hourly:`Varje timme`,daily:`Dagligen`,weekly:`Varje vecka`,monthly:`Varje månad`,yearly:`Varje år`},trigger:{once:`En gång den {{when}}`,hourly:`Varje timme vid :{{minute}}`,daily:`Dagligen kl. {{time}}`,weekly:`Varje {{day}} kl. {{time}}`,monthly:`Den {{day}}:e varje månad kl. {{time}}`,yearly:`Varje år den {{date}} kl. {{time}}`},finishedNotification:`{{n}} automatiseringskörningar klara`,templatesTitle:`Mallar`,templates:{morningBrief:{name:`Morgonöversikt`,description:`Börja dagen med rubriker och prioriteringar.`},newsDigest:{name:`AI-nyhetsöversikt`,description:`Modellsläpp, forskning och finansiering som spelar roll.`},weeklyReview:{name:`Veckogenomgång`,description:`Avsluta veckan: framgångar, lösa trådar, nästa prioriteringar.`},monthlyReport:{name:`Månadsrapport`,description:`En statusrapportskiss den första varje månad.`}}},home:{active:`aktiv`,continue:`Fortsätt`,start:`Börja`,explore:`Utforska`},palette:{empty:`Inga träffar.`,placeholder:`Sök chattar, Work, åtgärder…`,toggleTheme:`Växla tema`,actions:`Åtgärder`,chats:`Chattar`,search:`Sök`,settings:`Inställningar`,work:`Arbete`},tabs:{actions:`Flikåtgärder`,close:`Stäng flik`,closeAll:`Stäng alla flikar`,closeOthers:`Stäng övriga flikar`,closeRight:`Stäng flikar till höger`,home:`Hem`,label:`Öppna flikar`,new:`Ny flik`,newWork:`Nytt Work`,chat:`Chatt`,newChat:`Ny chatt`,work:`Arbete`}};export{e as default};