libre-webui 0.21.2 → 0.22.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.
- package/README.md +308 -328
- package/backend/dist/cli/migrateSqliteToPostgres.d.ts +2 -0
- package/backend/dist/cli/migrateSqliteToPostgres.d.ts.map +1 -0
- package/backend/dist/cli/migrateSqliteToPostgres.js +113 -0
- package/backend/dist/cli/migrateSqliteToPostgres.js.map +1 -0
- package/backend/dist/cli/recoveryBackup.d.ts +3 -0
- package/backend/dist/cli/recoveryBackup.d.ts.map +1 -0
- package/backend/dist/cli/recoveryBackup.js +251 -0
- package/backend/dist/cli/recoveryBackup.js.map +1 -0
- package/backend/dist/cli/recoveryInventory.d.ts +2 -0
- package/backend/dist/cli/recoveryInventory.d.ts.map +1 -0
- package/backend/dist/cli/recoveryInventory.js +109 -0
- package/backend/dist/cli/recoveryInventory.js.map +1 -0
- package/backend/dist/db.d.ts +27 -0
- package/backend/dist/db.d.ts.map +1 -1
- package/backend/dist/db.js +333 -16
- package/backend/dist/db.js.map +1 -1
- package/backend/dist/env.d.ts.map +1 -1
- package/backend/dist/env.js +12 -2
- package/backend/dist/env.js.map +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +235 -47
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/main.d.ts +2 -0
- package/backend/dist/main.d.ts.map +1 -0
- package/backend/dist/main.js +137 -0
- package/backend/dist/main.js.map +1 -0
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +7 -3
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/middleware/chatCancellationAdmission.d.ts +7 -0
- package/backend/dist/middleware/chatCancellationAdmission.d.ts.map +1 -0
- package/backend/dist/middleware/chatCancellationAdmission.js +17 -0
- package/backend/dist/middleware/chatCancellationAdmission.js.map +1 -0
- package/backend/dist/middleware/coordinatedRateLimit.d.ts +18 -0
- package/backend/dist/middleware/coordinatedRateLimit.d.ts.map +1 -0
- package/backend/dist/middleware/coordinatedRateLimit.js +52 -0
- package/backend/dist/middleware/coordinatedRateLimit.js.map +1 -0
- package/backend/dist/middleware/sharedRateLimit.d.ts +26 -0
- package/backend/dist/middleware/sharedRateLimit.d.ts.map +1 -0
- package/backend/dist/middleware/sharedRateLimit.js +99 -0
- package/backend/dist/middleware/sharedRateLimit.js.map +1 -0
- package/backend/dist/models/personaModel.d.ts +1 -26
- package/backend/dist/models/personaModel.d.ts.map +1 -1
- package/backend/dist/models/personaModel.js +54 -247
- package/backend/dist/models/personaModel.js.map +1 -1
- package/backend/dist/models/userModel.d.ts +23 -66
- package/backend/dist/models/userModel.d.ts.map +1 -1
- package/backend/dist/models/userModel.js +110 -187
- package/backend/dist/models/userModel.js.map +1 -1
- package/backend/dist/persistence/chatGenerationTypes.d.ts +24 -0
- package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -0
- package/backend/dist/persistence/chatGenerationTypes.js +7 -0
- package/backend/dist/persistence/chatGenerationTypes.js.map +1 -0
- package/backend/dist/persistence/extensionTypes.d.ts +185 -0
- package/backend/dist/persistence/extensionTypes.d.ts.map +1 -0
- package/backend/dist/persistence/extensionTypes.js +13 -0
- package/backend/dist/persistence/extensionTypes.js.map +1 -0
- package/backend/dist/persistence/identityDeletionTypes.d.ts +16 -0
- package/backend/dist/persistence/identityDeletionTypes.d.ts.map +1 -0
- package/backend/dist/persistence/identityDeletionTypes.js +7 -0
- package/backend/dist/persistence/identityDeletionTypes.js.map +1 -0
- package/backend/dist/persistence/index.d.ts +48 -0
- package/backend/dist/persistence/index.d.ts.map +1 -0
- package/backend/dist/persistence/index.js +159 -0
- package/backend/dist/persistence/index.js.map +1 -0
- package/backend/dist/persistence/postgresConfig.d.ts +32 -0
- package/backend/dist/persistence/postgresConfig.d.ts.map +1 -0
- package/backend/dist/persistence/postgresConfig.js +91 -0
- package/backend/dist/persistence/postgresConfig.js.map +1 -0
- package/backend/dist/persistence/postgresCoreMigration.d.ts +8 -0
- package/backend/dist/persistence/postgresCoreMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresCoreMigration.js +179 -0
- package/backend/dist/persistence/postgresCoreMigration.js.map +1 -0
- package/backend/dist/persistence/postgresDatabase.d.ts +40 -0
- package/backend/dist/persistence/postgresDatabase.d.ts.map +1 -0
- package/backend/dist/persistence/postgresDatabase.js +148 -0
- package/backend/dist/persistence/postgresDatabase.js.map +1 -0
- package/backend/dist/persistence/postgresExtensionMigration.d.ts +4 -0
- package/backend/dist/persistence/postgresExtensionMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresExtensionMigration.js +143 -0
- package/backend/dist/persistence/postgresExtensionMigration.js.map +1 -0
- package/backend/dist/persistence/postgresExtensionRepositories.d.ts +6 -0
- package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/postgresExtensionRepositories.js +550 -0
- package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -0
- package/backend/dist/persistence/postgresImportState.d.ts +9 -0
- package/backend/dist/persistence/postgresImportState.d.ts.map +1 -0
- package/backend/dist/persistence/postgresImportState.js +64 -0
- package/backend/dist/persistence/postgresImportState.js.map +1 -0
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts +4 -0
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js +33 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -0
- package/backend/dist/persistence/postgresMigrationTypes.d.ts +24 -0
- package/backend/dist/persistence/postgresMigrationTypes.d.ts.map +1 -0
- package/backend/dist/persistence/postgresMigrationTypes.js +7 -0
- package/backend/dist/persistence/postgresMigrationTypes.js.map +1 -0
- package/backend/dist/persistence/postgresMigrations.d.ts +15 -0
- package/backend/dist/persistence/postgresMigrations.d.ts.map +1 -0
- package/backend/dist/persistence/postgresMigrations.js +333 -0
- package/backend/dist/persistence/postgresMigrations.js.map +1 -0
- package/backend/dist/persistence/postgresPersistence.d.ts +17 -0
- package/backend/dist/persistence/postgresPersistence.d.ts.map +1 -0
- package/backend/dist/persistence/postgresPersistence.js +332 -0
- package/backend/dist/persistence/postgresPersistence.js.map +1 -0
- package/backend/dist/persistence/postgresPluginDefinitionMigration.d.ts +4 -0
- package/backend/dist/persistence/postgresPluginDefinitionMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresPluginDefinitionMigration.js +40 -0
- package/backend/dist/persistence/postgresPluginDefinitionMigration.js.map +1 -0
- package/backend/dist/persistence/postgresResourceRepositories.d.ts +7 -0
- package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/postgresResourceRepositories.js +776 -0
- package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -0
- package/backend/dist/persistence/postgresSchemaInspector.d.ts +14 -0
- package/backend/dist/persistence/postgresSchemaInspector.d.ts.map +1 -0
- package/backend/dist/persistence/postgresSchemaInspector.js +817 -0
- package/backend/dist/persistence/postgresSchemaInspector.js.map +1 -0
- package/backend/dist/persistence/resourceTypes.d.ts +207 -0
- package/backend/dist/persistence/resourceTypes.d.ts.map +1 -0
- package/backend/dist/persistence/resourceTypes.js +38 -0
- package/backend/dist/persistence/resourceTypes.js.map +1 -0
- package/backend/dist/persistence/sqliteExtensionRepositories.d.ts +4 -0
- package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/sqliteExtensionRepositories.js +494 -0
- package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts +93 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -0
- package/backend/dist/persistence/sqliteMigrations.js +2232 -0
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -0
- package/backend/dist/persistence/sqlitePersistence.d.ts +23 -0
- package/backend/dist/persistence/sqlitePersistence.d.ts.map +1 -0
- package/backend/dist/persistence/sqlitePersistence.js +596 -0
- package/backend/dist/persistence/sqlitePersistence.js.map +1 -0
- package/backend/dist/persistence/sqliteResourceRepositories.d.ts +4 -0
- package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/sqliteResourceRepositories.js +663 -0
- package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -0
- package/backend/dist/persistence/sqliteSyncExecutor.d.ts +5 -0
- package/backend/dist/persistence/sqliteSyncExecutor.d.ts.map +1 -0
- package/backend/dist/persistence/sqliteSyncExecutor.js +19 -0
- package/backend/dist/persistence/sqliteSyncExecutor.js.map +1 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts +80 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js +1543 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -0
- package/backend/dist/persistence/types.d.ts +131 -0
- package/backend/dist/persistence/types.d.ts.map +1 -0
- package/backend/dist/persistence/types.js +18 -0
- package/backend/dist/persistence/types.js.map +1 -0
- package/backend/dist/persistence/voiceProfileNameLookup.d.ts +9 -0
- package/backend/dist/persistence/voiceProfileNameLookup.d.ts.map +1 -0
- package/backend/dist/persistence/voiceProfileNameLookup.js +15 -0
- package/backend/dist/persistence/voiceProfileNameLookup.js.map +1 -0
- package/backend/dist/platform/coordination/index.d.ts +7 -0
- package/backend/dist/platform/coordination/index.d.ts.map +1 -0
- package/backend/dist/platform/coordination/index.js +24 -0
- package/backend/dist/platform/coordination/index.js.map +1 -0
- package/backend/dist/platform/coordination/localCoordinator.d.ts +49 -0
- package/backend/dist/platform/coordination/localCoordinator.d.ts.map +1 -0
- package/backend/dist/platform/coordination/localCoordinator.js +380 -0
- package/backend/dist/platform/coordination/localCoordinator.js.map +1 -0
- package/backend/dist/platform/coordination/redisCoordinator.d.ts +83 -0
- package/backend/dist/platform/coordination/redisCoordinator.d.ts.map +1 -0
- package/backend/dist/platform/coordination/redisCoordinator.js +726 -0
- package/backend/dist/platform/coordination/redisCoordinator.js.map +1 -0
- package/backend/dist/platform/coordination/service.d.ts +11 -0
- package/backend/dist/platform/coordination/service.d.ts.map +1 -0
- package/backend/dist/platform/coordination/service.js +55 -0
- package/backend/dist/platform/coordination/service.js.map +1 -0
- package/backend/dist/platform/coordination/sharedAdmission.d.ts +53 -0
- package/backend/dist/platform/coordination/sharedAdmission.d.ts.map +1 -0
- package/backend/dist/platform/coordination/sharedAdmission.js +194 -0
- package/backend/dist/platform/coordination/sharedAdmission.js.map +1 -0
- package/backend/dist/platform/coordination/types.d.ts +76 -0
- package/backend/dist/platform/coordination/types.d.ts.map +1 -0
- package/backend/dist/platform/coordination/types.js +32 -0
- package/backend/dist/platform/coordination/types.js.map +1 -0
- package/backend/dist/platform/events/durableEventGateway.d.ts +54 -0
- package/backend/dist/platform/events/durableEventGateway.d.ts.map +1 -0
- package/backend/dist/platform/events/durableEventGateway.js +262 -0
- package/backend/dist/platform/events/durableEventGateway.js.map +1 -0
- package/backend/dist/platform/events/index.d.ts +3 -0
- package/backend/dist/platform/events/index.d.ts.map +1 -0
- package/backend/dist/platform/events/index.js +8 -0
- package/backend/dist/platform/events/index.js.map +1 -0
- package/backend/dist/platform/events/service.d.ts +8 -0
- package/backend/dist/platform/events/service.d.ts.map +1 -0
- package/backend/dist/platform/events/service.js +25 -0
- package/backend/dist/platform/events/service.js.map +1 -0
- package/backend/dist/platform/jobs/chatGenerationEnqueuer.d.ts +3 -0
- package/backend/dist/platform/jobs/chatGenerationEnqueuer.d.ts.map +1 -0
- package/backend/dist/platform/jobs/chatGenerationEnqueuer.js +55 -0
- package/backend/dist/platform/jobs/chatGenerationEnqueuer.js.map +1 -0
- package/backend/dist/platform/jobs/documentIngestionEnqueuer.d.ts +3 -0
- package/backend/dist/platform/jobs/documentIngestionEnqueuer.d.ts.map +1 -0
- package/backend/dist/platform/jobs/documentIngestionEnqueuer.js +38 -0
- package/backend/dist/platform/jobs/documentIngestionEnqueuer.js.map +1 -0
- package/backend/dist/platform/jobs/domainJobContracts.d.ts +30 -0
- package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -0
- package/backend/dist/platform/jobs/domainJobContracts.js +53 -0
- package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -0
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts +11 -0
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -0
- package/backend/dist/platform/jobs/domainJobHandlers.js +612 -0
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -0
- package/backend/dist/platform/jobs/durableEventIdentity.d.ts +8 -0
- package/backend/dist/platform/jobs/durableEventIdentity.d.ts.map +1 -0
- package/backend/dist/platform/jobs/durableEventIdentity.js +33 -0
- package/backend/dist/platform/jobs/durableEventIdentity.js.map +1 -0
- package/backend/dist/platform/jobs/durableJobRuntime.d.ts +57 -0
- package/backend/dist/platform/jobs/durableJobRuntime.d.ts.map +1 -0
- package/backend/dist/platform/jobs/durableJobRuntime.js +131 -0
- package/backend/dist/platform/jobs/durableJobRuntime.js.map +1 -0
- package/backend/dist/platform/jobs/durableJobRuntimeBackend.d.ts +28 -0
- package/backend/dist/platform/jobs/durableJobRuntimeBackend.d.ts.map +1 -0
- package/backend/dist/platform/jobs/durableJobRuntimeBackend.js +62 -0
- package/backend/dist/platform/jobs/durableJobRuntimeBackend.js.map +1 -0
- package/backend/dist/platform/jobs/durableJobService.d.ts +85 -0
- package/backend/dist/platform/jobs/durableJobService.d.ts.map +1 -0
- package/backend/dist/platform/jobs/durableJobService.js +726 -0
- package/backend/dist/platform/jobs/durableJobService.js.map +1 -0
- package/backend/dist/platform/jobs/durableJobTypes.d.ts +195 -0
- package/backend/dist/platform/jobs/durableJobTypes.d.ts.map +1 -0
- package/backend/dist/platform/jobs/durableJobTypes.js +72 -0
- package/backend/dist/platform/jobs/durableJobTypes.js.map +1 -0
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts +87 -0
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -0
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +429 -0
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -0
- package/backend/dist/platform/jobs/identityDeletionEnqueuer.d.ts +3 -0
- package/backend/dist/platform/jobs/identityDeletionEnqueuer.d.ts.map +1 -0
- package/backend/dist/platform/jobs/identityDeletionEnqueuer.js +36 -0
- package/backend/dist/platform/jobs/identityDeletionEnqueuer.js.map +1 -0
- package/backend/dist/platform/jobs/index.d.ts +18 -0
- package/backend/dist/platform/jobs/index.d.ts.map +1 -0
- package/backend/dist/platform/jobs/index.js +34 -0
- package/backend/dist/platform/jobs/index.js.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.d.ts +4 -0
- package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.d.ts.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.js +25 -0
- package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.js.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.d.ts +4 -0
- package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.d.ts.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.js +23 -0
- package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.js.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobMigration.d.ts +11 -0
- package/backend/dist/platform/jobs/postgresDurableJobMigration.d.ts.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobMigration.js +106 -0
- package/backend/dist/platform/jobs/postgresDurableJobMigration.js.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobRepository.d.ts +88 -0
- package/backend/dist/platform/jobs/postgresDurableJobRepository.d.ts.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobRepository.js +1185 -0
- package/backend/dist/platform/jobs/postgresDurableJobRepository.js.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobService.d.ts +86 -0
- package/backend/dist/platform/jobs/postgresDurableJobService.d.ts.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobService.js +696 -0
- package/backend/dist/platform/jobs/postgresDurableJobService.js.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts +53 -0
- package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -0
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js +393 -0
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -0
- package/backend/dist/platform/jobs/resourceDeletionEnqueuer.d.ts +3 -0
- package/backend/dist/platform/jobs/resourceDeletionEnqueuer.d.ts.map +1 -0
- package/backend/dist/platform/jobs/resourceDeletionEnqueuer.js +43 -0
- package/backend/dist/platform/jobs/resourceDeletionEnqueuer.js.map +1 -0
- package/backend/dist/platform/jobs/sqliteDurableJobRepository.d.ts +166 -0
- package/backend/dist/platform/jobs/sqliteDurableJobRepository.d.ts.map +1 -0
- package/backend/dist/platform/jobs/sqliteDurableJobRepository.js +1008 -0
- package/backend/dist/platform/jobs/sqliteDurableJobRepository.js.map +1 -0
- package/backend/dist/platform/jobs/videoGenerationEnqueuer.d.ts +4 -0
- package/backend/dist/platform/jobs/videoGenerationEnqueuer.d.ts.map +1 -0
- package/backend/dist/platform/jobs/videoGenerationEnqueuer.js +46 -0
- package/backend/dist/platform/jobs/videoGenerationEnqueuer.js.map +1 -0
- package/backend/dist/platform/jobs/workExecutionEnqueuer.d.ts +3 -0
- package/backend/dist/platform/jobs/workExecutionEnqueuer.d.ts.map +1 -0
- package/backend/dist/platform/jobs/workExecutionEnqueuer.js +38 -0
- package/backend/dist/platform/jobs/workExecutionEnqueuer.js.map +1 -0
- package/backend/dist/platform/ollamaRuntimeConfig.d.ts +40 -0
- package/backend/dist/platform/ollamaRuntimeConfig.d.ts.map +1 -0
- package/backend/dist/platform/ollamaRuntimeConfig.js +72 -0
- package/backend/dist/platform/ollamaRuntimeConfig.js.map +1 -0
- package/backend/dist/platform/recovery/backupArchive.d.ts +120 -0
- package/backend/dist/platform/recovery/backupArchive.d.ts.map +1 -0
- package/backend/dist/platform/recovery/backupArchive.js +842 -0
- package/backend/dist/platform/recovery/backupArchive.js.map +1 -0
- package/backend/dist/platform/recovery/index.d.ts +3 -0
- package/backend/dist/platform/recovery/index.d.ts.map +1 -0
- package/backend/dist/platform/recovery/index.js +8 -0
- package/backend/dist/platform/recovery/index.js.map +1 -0
- package/backend/dist/platform/recovery/teamBackupArchive.d.ts +98 -0
- package/backend/dist/platform/recovery/teamBackupArchive.d.ts.map +1 -0
- package/backend/dist/platform/recovery/teamBackupArchive.js +1203 -0
- package/backend/dist/platform/recovery/teamBackupArchive.js.map +1 -0
- package/backend/dist/platform/runtimeConfig.d.ts +70 -0
- package/backend/dist/platform/runtimeConfig.d.ts.map +1 -0
- package/backend/dist/platform/runtimeConfig.js +205 -0
- package/backend/dist/platform/runtimeConfig.js.map +1 -0
- package/backend/dist/platform/storage/aesGcmKeyring.d.ts +26 -0
- package/backend/dist/platform/storage/aesGcmKeyring.d.ts.map +1 -0
- package/backend/dist/platform/storage/aesGcmKeyring.js +135 -0
- package/backend/dist/platform/storage/aesGcmKeyring.js.map +1 -0
- package/backend/dist/platform/storage/blobReferenceRepository.d.ts +36 -0
- package/backend/dist/platform/storage/blobReferenceRepository.d.ts.map +1 -0
- package/backend/dist/platform/storage/blobReferenceRepository.js +117 -0
- package/backend/dist/platform/storage/blobReferenceRepository.js.map +1 -0
- package/backend/dist/platform/storage/blobStore.d.ts +111 -0
- package/backend/dist/platform/storage/blobStore.d.ts.map +1 -0
- package/backend/dist/platform/storage/blobStore.js +46 -0
- package/backend/dist/platform/storage/blobStore.js.map +1 -0
- package/backend/dist/platform/storage/documentVectorIndex.d.ts +44 -0
- package/backend/dist/platform/storage/documentVectorIndex.d.ts.map +1 -0
- package/backend/dist/platform/storage/documentVectorIndex.js +110 -0
- package/backend/dist/platform/storage/documentVectorIndex.js.map +1 -0
- package/backend/dist/platform/storage/durableBlobQuotaPolicy.d.ts +82 -0
- package/backend/dist/platform/storage/durableBlobQuotaPolicy.d.ts.map +1 -0
- package/backend/dist/platform/storage/durableBlobQuotaPolicy.js +583 -0
- package/backend/dist/platform/storage/durableBlobQuotaPolicy.js.map +1 -0
- package/backend/dist/platform/storage/index.d.ts +19 -0
- package/backend/dist/platform/storage/index.d.ts.map +1 -0
- package/backend/dist/platform/storage/index.js +35 -0
- package/backend/dist/platform/storage/index.js.map +1 -0
- package/backend/dist/platform/storage/localEncryptedBlobStore.d.ts +120 -0
- package/backend/dist/platform/storage/localEncryptedBlobStore.d.ts.map +1 -0
- package/backend/dist/platform/storage/localEncryptedBlobStore.js +1205 -0
- package/backend/dist/platform/storage/localEncryptedBlobStore.js.map +1 -0
- package/backend/dist/platform/storage/personaMemoryIndexing.d.ts +12 -0
- package/backend/dist/platform/storage/personaMemoryIndexing.d.ts.map +1 -0
- package/backend/dist/platform/storage/personaMemoryIndexing.js +25 -0
- package/backend/dist/platform/storage/personaMemoryIndexing.js.map +1 -0
- package/backend/dist/platform/storage/pgVectorStore.d.ts +37 -0
- package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -0
- package/backend/dist/platform/storage/pgVectorStore.js +493 -0
- package/backend/dist/platform/storage/pgVectorStore.js.map +1 -0
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts +244 -0
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -0
- package/backend/dist/platform/storage/platformDomainRepositories.js +7 -0
- package/backend/dist/platform/storage/platformDomainRepositories.js.map +1 -0
- package/backend/dist/platform/storage/platformStorageRuntime.d.ts +35 -0
- package/backend/dist/platform/storage/platformStorageRuntime.d.ts.map +1 -0
- package/backend/dist/platform/storage/platformStorageRuntime.js +299 -0
- package/backend/dist/platform/storage/platformStorageRuntime.js.map +1 -0
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts +4 -0
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -0
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +1017 -0
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -0
- package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.d.ts +4 -0
- package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.d.ts.map +1 -0
- package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.js +40 -0
- package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.js.map +1 -0
- package/backend/dist/platform/storage/resourceContentCleanup.d.ts +29 -0
- package/backend/dist/platform/storage/resourceContentCleanup.d.ts.map +1 -0
- package/backend/dist/platform/storage/resourceContentCleanup.js +100 -0
- package/backend/dist/platform/storage/resourceContentCleanup.js.map +1 -0
- package/backend/dist/platform/storage/resourceDeletionLifecycle.d.ts +14 -0
- package/backend/dist/platform/storage/resourceDeletionLifecycle.d.ts.map +1 -0
- package/backend/dist/platform/storage/resourceDeletionLifecycle.js +31 -0
- package/backend/dist/platform/storage/resourceDeletionLifecycle.js.map +1 -0
- package/backend/dist/platform/storage/s3EncryptedBlobStore.d.ts +140 -0
- package/backend/dist/platform/storage/s3EncryptedBlobStore.d.ts.map +1 -0
- package/backend/dist/platform/storage/s3EncryptedBlobStore.js +1309 -0
- package/backend/dist/platform/storage/s3EncryptedBlobStore.js.map +1 -0
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +71 -0
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -0
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +766 -0
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -0
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts +4 -0
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -0
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +1037 -0
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -0
- package/backend/dist/platform/storage/sqliteToTeamStorageMigration.d.ts +25 -0
- package/backend/dist/platform/storage/sqliteToTeamStorageMigration.d.ts.map +1 -0
- package/backend/dist/platform/storage/sqliteToTeamStorageMigration.js +1292 -0
- package/backend/dist/platform/storage/sqliteToTeamStorageMigration.js.map +1 -0
- package/backend/dist/platform/storage/storageFactory.d.ts +81 -0
- package/backend/dist/platform/storage/storageFactory.d.ts.map +1 -0
- package/backend/dist/platform/storage/storageFactory.js +518 -0
- package/backend/dist/platform/storage/storageFactory.js.map +1 -0
- package/backend/dist/platform/storage/storageSchemaContracts.d.ts +22 -0
- package/backend/dist/platform/storage/storageSchemaContracts.d.ts.map +1 -0
- package/backend/dist/platform/storage/storageSchemaContracts.js +299 -0
- package/backend/dist/platform/storage/storageSchemaContracts.js.map +1 -0
- package/backend/dist/platform/storage/vectorStore.d.ts +117 -0
- package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -0
- package/backend/dist/platform/storage/vectorStore.js +40 -0
- package/backend/dist/platform/storage/vectorStore.js.map +1 -0
- package/backend/dist/platform/workPersistence/index.d.ts +9 -0
- package/backend/dist/platform/workPersistence/index.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/index.js +14 -0
- package/backend/dist/platform/workPersistence/index.js.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.d.ts +9 -0
- package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.js +47 -0
- package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.js.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.d.ts +3 -0
- package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.js +28 -0
- package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.js.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkMigration.d.ts +3 -0
- package/backend/dist/platform/workPersistence/postgresWorkMigration.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkMigration.js +101 -0
- package/backend/dist/platform/workPersistence/postgresWorkMigration.js.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts +79 -0
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +521 -0
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -0
- package/backend/dist/platform/workPersistence/service.d.ts +6 -0
- package/backend/dist/platform/workPersistence/service.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/service.js +27 -0
- package/backend/dist/platform/workPersistence/service.js.map +1 -0
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts +77 -0
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +463 -0
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -0
- package/backend/dist/platform/workPersistence/types.d.ts +159 -0
- package/backend/dist/platform/workPersistence/types.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/types.js +13 -0
- package/backend/dist/platform/workPersistence/types.js.map +1 -0
- package/backend/dist/platform/workPersistence/workExecutionTypes.d.ts +13 -0
- package/backend/dist/platform/workPersistence/workExecutionTypes.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/workExecutionTypes.js +7 -0
- package/backend/dist/platform/workPersistence/workExecutionTypes.js.map +1 -0
- package/backend/dist/platform/workPersistence/workMessageContentCodec.d.ts +8 -0
- package/backend/dist/platform/workPersistence/workMessageContentCodec.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/workMessageContentCodec.js +25 -0
- package/backend/dist/platform/workPersistence/workMessageContentCodec.js.map +1 -0
- package/backend/dist/platform/workPersistence/workTextSafety.d.ts +3 -0
- package/backend/dist/platform/workPersistence/workTextSafety.d.ts.map +1 -0
- package/backend/dist/platform/workPersistence/workTextSafety.js +8 -0
- package/backend/dist/platform/workPersistence/workTextSafety.js.map +1 -0
- package/backend/dist/routes/agentCli.js +1 -1
- package/backend/dist/routes/agentCli.js.map +1 -1
- package/backend/dist/routes/artifacts.d.ts.map +1 -1
- package/backend/dist/routes/artifacts.js +2 -1
- package/backend/dist/routes/artifacts.js.map +1 -1
- package/backend/dist/routes/auth.d.ts.map +1 -1
- package/backend/dist/routes/auth.js +64 -18
- package/backend/dist/routes/auth.js.map +1 -1
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +519 -85
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/documents.d.ts.map +1 -1
- package/backend/dist/routes/documents.js +136 -28
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/embeddings.d.ts.map +1 -1
- package/backend/dist/routes/embeddings.js +2 -1
- package/backend/dist/routes/embeddings.js.map +1 -1
- package/backend/dist/routes/health.d.ts +3 -0
- package/backend/dist/routes/health.d.ts.map +1 -0
- package/backend/dist/routes/health.js +52 -0
- package/backend/dist/routes/health.js.map +1 -0
- package/backend/dist/routes/huggingfaceHub.d.ts.map +1 -1
- package/backend/dist/routes/huggingfaceHub.js +2 -1
- package/backend/dist/routes/huggingfaceHub.js.map +1 -1
- package/backend/dist/routes/imageGen.d.ts.map +1 -1
- package/backend/dist/routes/imageGen.js +42 -10
- package/backend/dist/routes/imageGen.js.map +1 -1
- package/backend/dist/routes/jobs.d.ts +3 -0
- package/backend/dist/routes/jobs.d.ts.map +1 -0
- package/backend/dist/routes/jobs.js +117 -0
- package/backend/dist/routes/jobs.js.map +1 -0
- package/backend/dist/routes/libreClaw.d.ts.map +1 -1
- package/backend/dist/routes/libreClaw.js +10 -7
- package/backend/dist/routes/libreClaw.js.map +1 -1
- package/backend/dist/routes/media.d.ts.map +1 -1
- package/backend/dist/routes/media.js +523 -77
- package/backend/dist/routes/media.js.map +1 -1
- package/backend/dist/routes/notes.d.ts.map +1 -1
- package/backend/dist/routes/notes.js +21 -21
- package/backend/dist/routes/notes.js.map +1 -1
- package/backend/dist/routes/ollama.d.ts.map +1 -1
- package/backend/dist/routes/ollama.js +40 -12
- package/backend/dist/routes/ollama.js.map +1 -1
- package/backend/dist/routes/personas.d.ts.map +1 -1
- package/backend/dist/routes/personas.js +4 -2
- package/backend/dist/routes/personas.js.map +1 -1
- package/backend/dist/routes/plugins.d.ts.map +1 -1
- package/backend/dist/routes/plugins.js +79 -51
- package/backend/dist/routes/plugins.js.map +1 -1
- package/backend/dist/routes/preferences.d.ts.map +1 -1
- package/backend/dist/routes/preferences.js +290 -25
- package/backend/dist/routes/preferences.js.map +1 -1
- package/backend/dist/routes/search.d.ts.map +1 -1
- package/backend/dist/routes/search.js +23 -14
- package/backend/dist/routes/search.js.map +1 -1
- package/backend/dist/routes/stt.d.ts +9 -0
- package/backend/dist/routes/stt.d.ts.map +1 -0
- package/backend/dist/routes/stt.js +217 -0
- package/backend/dist/routes/stt.js.map +1 -0
- package/backend/dist/routes/systemDiagnostics.d.ts.map +1 -1
- package/backend/dist/routes/systemDiagnostics.js +2 -1
- package/backend/dist/routes/systemDiagnostics.js.map +1 -1
- package/backend/dist/routes/tts.d.ts.map +1 -1
- package/backend/dist/routes/tts.js +577 -28
- package/backend/dist/routes/tts.js.map +1 -1
- package/backend/dist/routes/users.d.ts.map +1 -1
- package/backend/dist/routes/users.js +16 -25
- package/backend/dist/routes/users.js.map +1 -1
- package/backend/dist/routes/work.d.ts.map +1 -1
- package/backend/dist/routes/work.js +167 -113
- package/backend/dist/routes/work.js.map +1 -1
- package/backend/dist/services/agentAccessService.d.ts +2 -2
- package/backend/dist/services/agentAccessService.d.ts.map +1 -1
- package/backend/dist/services/agentAccessService.js +5 -14
- package/backend/dist/services/agentAccessService.js.map +1 -1
- package/backend/dist/services/agentCliService.d.ts +3 -2
- package/backend/dist/services/agentCliService.d.ts.map +1 -1
- package/backend/dist/services/agentCliService.js +44 -16
- package/backend/dist/services/agentCliService.js.map +1 -1
- package/backend/dist/services/assistantCompletionService.d.ts +2 -1
- package/backend/dist/services/assistantCompletionService.d.ts.map +1 -1
- package/backend/dist/services/assistantCompletionService.js +7 -3
- package/backend/dist/services/assistantCompletionService.js.map +1 -1
- package/backend/dist/services/authService.d.ts +7 -2
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +23 -10
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/chatGenerationService.d.ts +5 -4
- package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/chatGenerationService.js +23 -17
- package/backend/dist/services/chatGenerationService.js.map +1 -1
- package/backend/dist/services/chatRequestService.d.ts +4 -3
- package/backend/dist/services/chatRequestService.d.ts.map +1 -1
- package/backend/dist/services/chatRequestService.js +3 -3
- package/backend/dist/services/chatRequestService.js.map +1 -1
- package/backend/dist/services/chatService.d.ts +66 -16
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +402 -111
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/codexOAuthService.d.ts +2 -2
- package/backend/dist/services/codexOAuthService.d.ts.map +1 -1
- package/backend/dist/services/codexOAuthService.js +63 -7
- package/backend/dist/services/codexOAuthService.js.map +1 -1
- package/backend/dist/services/dataArchiveService.d.ts +88 -0
- package/backend/dist/services/dataArchiveService.d.ts.map +1 -0
- package/backend/dist/services/dataArchiveService.js +1027 -0
- package/backend/dist/services/dataArchiveService.js.map +1 -0
- package/backend/dist/services/documentService.d.ts +67 -14
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +938 -193
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/durableChatCompletion.d.ts +16 -0
- package/backend/dist/services/durableChatCompletion.d.ts.map +1 -0
- package/backend/dist/services/durableChatCompletion.js +34 -0
- package/backend/dist/services/durableChatCompletion.js.map +1 -0
- package/backend/dist/services/durableChatGenerationService.d.ts +19 -0
- package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -0
- package/backend/dist/services/durableChatGenerationService.js +341 -0
- package/backend/dist/services/durableChatGenerationService.js.map +1 -0
- package/backend/dist/services/embeddingService.d.ts +1 -1
- package/backend/dist/services/embeddingService.d.ts.map +1 -1
- package/backend/dist/services/embeddingService.js +16 -13
- package/backend/dist/services/embeddingService.js.map +1 -1
- package/backend/dist/services/encryptionService.d.ts +28 -1
- package/backend/dist/services/encryptionService.d.ts.map +1 -1
- package/backend/dist/services/encryptionService.js +131 -51
- package/backend/dist/services/encryptionService.js.map +1 -1
- package/backend/dist/services/followUpService.d.ts +1 -1
- package/backend/dist/services/followUpService.d.ts.map +1 -1
- package/backend/dist/services/followUpService.js +1 -1
- package/backend/dist/services/followUpService.js.map +1 -1
- package/backend/dist/services/galleryService.d.ts +38 -37
- package/backend/dist/services/galleryService.d.ts.map +1 -1
- package/backend/dist/services/galleryService.js +356 -251
- package/backend/dist/services/galleryService.js.map +1 -1
- package/backend/dist/services/healthService.d.ts +65 -0
- package/backend/dist/services/healthService.d.ts.map +1 -0
- package/backend/dist/services/healthService.js +379 -0
- package/backend/dist/services/healthService.js.map +1 -0
- package/backend/dist/services/legacyCiphertextIntegrity.d.ts +40 -0
- package/backend/dist/services/legacyCiphertextIntegrity.d.ts.map +1 -0
- package/backend/dist/services/legacyCiphertextIntegrity.js +406 -0
- package/backend/dist/services/legacyCiphertextIntegrity.js.map +1 -0
- package/backend/dist/services/mediaGenerationJobService.d.ts +27 -5
- package/backend/dist/services/mediaGenerationJobService.d.ts.map +1 -1
- package/backend/dist/services/mediaGenerationJobService.js +185 -55
- package/backend/dist/services/mediaGenerationJobService.js.map +1 -1
- package/backend/dist/services/memoryService.d.ts +7 -83
- package/backend/dist/services/memoryService.d.ts.map +1 -1
- package/backend/dist/services/memoryService.js +428 -573
- package/backend/dist/services/memoryService.js.map +1 -1
- package/backend/dist/services/memoryUtils.d.ts.map +1 -1
- package/backend/dist/services/memoryUtils.js +8 -1
- package/backend/dist/services/memoryUtils.js.map +1 -1
- package/backend/dist/services/modelAccessService.d.ts +3 -3
- package/backend/dist/services/modelAccessService.d.ts.map +1 -1
- package/backend/dist/services/modelAccessService.js +8 -16
- package/backend/dist/services/modelAccessService.js.map +1 -1
- package/backend/dist/services/mutationEngineService.d.ts +0 -7
- package/backend/dist/services/mutationEngineService.d.ts.map +1 -1
- package/backend/dist/services/mutationEngineService.js +7 -78
- package/backend/dist/services/mutationEngineService.js.map +1 -1
- package/backend/dist/services/ollamaService.d.ts +4 -4
- package/backend/dist/services/ollamaService.d.ts.map +1 -1
- package/backend/dist/services/ollamaService.js +97 -34
- package/backend/dist/services/ollamaService.js.map +1 -1
- package/backend/dist/services/personaService.d.ts.map +1 -1
- package/backend/dist/services/personaService.js +19 -54
- package/backend/dist/services/personaService.js.map +1 -1
- package/backend/dist/services/pluginActivationService.d.ts +6 -5
- package/backend/dist/services/pluginActivationService.d.ts.map +1 -1
- package/backend/dist/services/pluginActivationService.js +36 -76
- package/backend/dist/services/pluginActivationService.js.map +1 -1
- package/backend/dist/services/pluginAudioGenerationService.d.ts +11 -6
- package/backend/dist/services/pluginAudioGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginAudioGenerationService.js +74 -16
- package/backend/dist/services/pluginAudioGenerationService.js.map +1 -1
- package/backend/dist/services/pluginCacheInvalidation.d.ts +38 -0
- package/backend/dist/services/pluginCacheInvalidation.d.ts.map +1 -0
- package/backend/dist/services/pluginCacheInvalidation.js +198 -0
- package/backend/dist/services/pluginCacheInvalidation.js.map +1 -0
- package/backend/dist/services/pluginCapabilityRegistryService.d.ts +3 -3
- package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -1
- package/backend/dist/services/pluginCapabilityRegistryService.js +11 -7
- package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -1
- package/backend/dist/services/pluginCredentialsService.d.ts +9 -8
- package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
- package/backend/dist/services/pluginCredentialsService.js +48 -89
- package/backend/dist/services/pluginCredentialsService.js.map +1 -1
- package/backend/dist/services/pluginEmbeddingService.d.ts +8 -7
- package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -1
- package/backend/dist/services/pluginEmbeddingService.js +13 -11
- package/backend/dist/services/pluginEmbeddingService.js.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.d.ts +10 -8
- package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.js +119 -14
- package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
- package/backend/dist/services/pluginSTTService.d.ts +47 -0
- package/backend/dist/services/pluginSTTService.d.ts.map +1 -0
- package/backend/dist/services/pluginSTTService.js +199 -0
- package/backend/dist/services/pluginSTTService.js.map +1 -0
- package/backend/dist/services/pluginService.d.ts +94 -40
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +799 -274
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/pluginTTSService.d.ts +26 -8
- package/backend/dist/services/pluginTTSService.d.ts.map +1 -1
- package/backend/dist/services/pluginTTSService.js +277 -25
- package/backend/dist/services/pluginTTSService.js.map +1 -1
- package/backend/dist/services/pluginUsageService.d.ts +4 -4
- package/backend/dist/services/pluginUsageService.d.ts.map +1 -1
- package/backend/dist/services/pluginUsageService.js +44 -93
- package/backend/dist/services/pluginUsageService.js.map +1 -1
- package/backend/dist/services/pluginVariablesService.d.ts +14 -7
- package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
- package/backend/dist/services/pluginVariablesService.js +116 -81
- package/backend/dist/services/pluginVariablesService.js.map +1 -1
- package/backend/dist/services/pluginVideoGenerationService.d.ts +19 -8
- package/backend/dist/services/pluginVideoGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginVideoGenerationService.js +116 -20
- package/backend/dist/services/pluginVideoGenerationService.js.map +1 -1
- package/backend/dist/services/preferencesService.d.ts +31 -21
- package/backend/dist/services/preferencesService.d.ts.map +1 -1
- package/backend/dist/services/preferencesService.js +104 -102
- package/backend/dist/services/preferencesService.js.map +1 -1
- package/backend/dist/services/recoveryInventoryService.d.ts +244 -0
- package/backend/dist/services/recoveryInventoryService.d.ts.map +1 -0
- package/backend/dist/services/recoveryInventoryService.js +1436 -0
- package/backend/dist/services/recoveryInventoryService.js.map +1 -0
- package/backend/dist/services/simpleGitHubOAuth.js +3 -3
- package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
- package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
- package/backend/dist/services/simpleHuggingFaceOAuth.js +3 -3
- package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
- package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -1
- package/backend/dist/services/systemDiagnosticsService.js +2 -2
- package/backend/dist/services/systemDiagnosticsService.js.map +1 -1
- package/backend/dist/services/systemSettingsService.d.ts +5 -0
- package/backend/dist/services/systemSettingsService.d.ts.map +1 -0
- package/backend/dist/services/systemSettingsService.js +24 -0
- package/backend/dist/services/systemSettingsService.js.map +1 -0
- package/backend/dist/services/titleGenerationService.d.ts +1 -1
- package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
- package/backend/dist/services/titleGenerationService.js +15 -4
- package/backend/dist/services/titleGenerationService.js.map +1 -1
- package/backend/dist/services/voiceProfileService.d.ts +44 -0
- package/backend/dist/services/voiceProfileService.d.ts.map +1 -0
- package/backend/dist/services/voiceProfileService.js +195 -0
- package/backend/dist/services/voiceProfileService.js.map +1 -0
- package/backend/dist/services/webSearchService.d.ts +7 -7
- package/backend/dist/services/webSearchService.d.ts.map +1 -1
- package/backend/dist/services/webSearchService.js +40 -35
- package/backend/dist/services/webSearchService.js.map +1 -1
- package/backend/dist/services/websocketTicketService.d.ts +39 -0
- package/backend/dist/services/websocketTicketService.d.ts.map +1 -0
- package/backend/dist/services/websocketTicketService.js +183 -0
- package/backend/dist/services/websocketTicketService.js.map +1 -0
- package/backend/dist/services/workAccessService.d.ts +3 -3
- package/backend/dist/services/workAccessService.d.ts.map +1 -1
- package/backend/dist/services/workAccessService.js +8 -16
- package/backend/dist/services/workAccessService.js.map +1 -1
- package/backend/dist/services/workAdminService.d.ts +3 -3
- package/backend/dist/services/workAdminService.d.ts.map +1 -1
- package/backend/dist/services/workAdminService.js +4 -4
- package/backend/dist/services/workAdminService.js.map +1 -1
- package/backend/dist/services/workAgentService.d.ts +25 -1
- package/backend/dist/services/workAgentService.d.ts.map +1 -1
- package/backend/dist/services/workAgentService.js +294 -126
- package/backend/dist/services/workAgentService.js.map +1 -1
- package/backend/dist/services/workEventService.d.ts +15 -2
- package/backend/dist/services/workEventService.d.ts.map +1 -1
- package/backend/dist/services/workEventService.js +201 -3
- package/backend/dist/services/workEventService.js.map +1 -1
- package/backend/dist/services/workKubernetesDriver.d.ts +8 -7
- package/backend/dist/services/workKubernetesDriver.d.ts.map +1 -1
- package/backend/dist/services/workKubernetesDriver.js +65 -21
- package/backend/dist/services/workKubernetesDriver.js.map +1 -1
- package/backend/dist/services/workModelProviderService.d.ts +2 -2
- package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
- package/backend/dist/services/workModelProviderService.js +38 -34
- package/backend/dist/services/workModelProviderService.js.map +1 -1
- package/backend/dist/services/workPolicyService.d.ts +7 -7
- package/backend/dist/services/workPolicyService.d.ts.map +1 -1
- package/backend/dist/services/workPolicyService.js +50 -51
- package/backend/dist/services/workPolicyService.js.map +1 -1
- package/backend/dist/services/workPreviewProxyService.d.ts +8 -8
- package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -1
- package/backend/dist/services/workPreviewProxyService.js +47 -44
- package/backend/dist/services/workPreviewProxyService.js.map +1 -1
- package/backend/dist/services/workRuntimeDriver.d.ts +21 -18
- package/backend/dist/services/workRuntimeDriver.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeDriver.js +69 -20
- package/backend/dist/services/workRuntimeDriver.js.map +1 -1
- package/backend/dist/services/workRuntimeService.d.ts +18 -13
- package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeService.js +438 -194
- package/backend/dist/services/workRuntimeService.js.map +1 -1
- package/backend/dist/services/workRuntimeShared.d.ts +2 -0
- package/backend/dist/services/workRuntimeShared.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeShared.js.map +1 -1
- package/backend/dist/services/workTaskService.d.ts +42 -36
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js +445 -350
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/services/workTerminalService.d.ts +1 -1
- package/backend/dist/services/workTerminalService.d.ts.map +1 -1
- package/backend/dist/services/workTerminalService.js +33 -6
- package/backend/dist/services/workTerminalService.js.map +1 -1
- package/backend/dist/storage.d.ts +72 -40
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +312 -660
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/types/index.d.ts +28 -0
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/types/work.d.ts +7 -2
- package/backend/dist/types/work.d.ts.map +1 -1
- package/backend/dist/utils/chatCancellation.d.ts +48 -0
- package/backend/dist/utils/chatCancellation.d.ts.map +1 -0
- package/backend/dist/utils/chatCancellation.js +152 -0
- package/backend/dist/utils/chatCancellation.js.map +1 -0
- package/backend/dist/utils/chatDocumentContext.d.ts +1 -1
- package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
- package/backend/dist/utils/chatDocumentContext.js +11 -5
- package/backend/dist/utils/chatDocumentContext.js.map +1 -1
- package/backend/dist/utils/chatStreamCoalescer.d.ts +15 -0
- package/backend/dist/utils/chatStreamCoalescer.d.ts.map +1 -0
- package/backend/dist/utils/chatStreamCoalescer.js +59 -0
- package/backend/dist/utils/chatStreamCoalescer.js.map +1 -0
- package/backend/dist/utils/dataDirectory.d.ts +49 -0
- package/backend/dist/utils/dataDirectory.d.ts.map +1 -0
- package/backend/dist/utils/dataDirectory.js +291 -0
- package/backend/dist/utils/dataDirectory.js.map +1 -0
- package/backend/dist/utils/generationUtils.d.ts.map +1 -1
- package/backend/dist/utils/generationUtils.js +18 -6
- package/backend/dist/utils/generationUtils.js.map +1 -1
- package/backend/dist/utils/jwt.d.ts.map +1 -1
- package/backend/dist/utils/jwt.js +2 -3
- package/backend/dist/utils/jwt.js.map +1 -1
- package/backend/dist/utils/ollamaModelDefaults.d.ts.map +1 -1
- package/backend/dist/utils/ollamaModelDefaults.js +2 -7
- package/backend/dist/utils/ollamaModelDefaults.js.map +1 -1
- package/backend/dist/utils/ollamaStreaming.d.ts +2 -1
- package/backend/dist/utils/ollamaStreaming.d.ts.map +1 -1
- package/backend/dist/utils/ollamaStreaming.js +49 -11
- package/backend/dist/utils/ollamaStreaming.js.map +1 -1
- package/backend/dist/utils/pluginConnectionVariables.d.ts.map +1 -1
- package/backend/dist/utils/pluginConnectionVariables.js +11 -3
- package/backend/dist/utils/pluginConnectionVariables.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +4 -3
- package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
- package/backend/dist/utils/pluginStreaming.d.ts +2 -1
- package/backend/dist/utils/pluginStreaming.d.ts.map +1 -1
- package/backend/dist/utils/pluginStreaming.js +5 -1
- package/backend/dist/utils/pluginStreaming.js.map +1 -1
- package/backend/dist/utils/pluginUpload.d.ts +1 -0
- package/backend/dist/utils/pluginUpload.d.ts.map +1 -1
- package/backend/dist/utils/pluginUpload.js +9 -2
- package/backend/dist/utils/pluginUpload.js.map +1 -1
- package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
- package/backend/dist/utils/pluginValidation.js +29 -1
- package/backend/dist/utils/pluginValidation.js.map +1 -1
- package/backend/dist/utils/sttAudioUpload.d.ts +24 -0
- package/backend/dist/utils/sttAudioUpload.d.ts.map +1 -0
- package/backend/dist/utils/sttAudioUpload.js +500 -0
- package/backend/dist/utils/sttAudioUpload.js.map +1 -0
- package/backend/dist/utils/ttsVoiceCloneUpload.d.ts +34 -0
- package/backend/dist/utils/ttsVoiceCloneUpload.d.ts.map +1 -0
- package/backend/dist/utils/ttsVoiceCloneUpload.js +224 -0
- package/backend/dist/utils/ttsVoiceCloneUpload.js.map +1 -0
- package/backend/dist/utils/websocketMessages.d.ts +2 -1
- package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
- package/backend/dist/utils/websocketMessages.js +16 -2
- package/backend/dist/utils/websocketMessages.js.map +1 -1
- package/backend/dist/websocketServer.d.ts +4 -1
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +290 -44
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/dist/workTerminalServer.d.ts +9 -0
- package/backend/dist/workTerminalServer.d.ts.map +1 -1
- package/backend/dist/workTerminalServer.js +221 -52
- package/backend/dist/workTerminalServer.js.map +1 -1
- package/backend/dist/worker.d.ts +2 -0
- package/backend/dist/worker.d.ts.map +1 -0
- package/backend/dist/worker.js +250 -0
- package/backend/dist/worker.js.map +1 -0
- package/backend/package.json +19 -9
- package/bin/cli.js +126 -99
- package/bin/runtime-paths.js +108 -0
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/artifact-runtime/framer-motion.js +5 -5
- package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
- package/frontend/dist/assets/index-CUhEG7E2.js +33 -0
- package/frontend/dist/assets/index-kxtZQLV6.css +1 -0
- package/frontend/dist/assets/{markdown-math-ClQbWekD.css → markdown-math-ClTedVi7.css} +1 -1
- package/frontend/dist/index.html +36 -18
- package/frontend/dist/js/{ArtifactContainer-C_UdeK4k.js → ArtifactContainer-BTEDhBnv.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-D3AuvuR5.js → ArtifactDemoPage-B0gN3YTl.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-BiXl9iGD.js → ArtifactSandboxFrame-CLBXQkZs.js} +3 -3
- package/frontend/dist/js/{ArtifactSlideOutPanel-CvgS3sfQ.js → ArtifactSlideOutPanel-CfqHPFdE.js} +1 -1
- package/frontend/dist/js/{Button-DcBM7gdH.js → Button-BV44cTnj.js} +1 -1
- package/frontend/dist/js/ChatPage-DIkAXZWA.js +23 -0
- package/frontend/dist/js/{FirstTimeSetup-B9742i3H.js → FirstTimeSetup-B8phXGNA.js} +1 -1
- package/frontend/dist/js/GalleryPage-W4uI043I.js +1 -0
- package/frontend/dist/js/HomePage-DlxehbyO.js +1 -0
- package/frontend/dist/js/{LibreClawPage-Ds6pqEyk.js → LibreClawPage-CgD0_G_F.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-BBNg2fxs.js → ModelManagerModals-D7jIT3v1.js} +1 -1
- package/frontend/dist/js/{ModelSelector-CJfJYwxh.js → ModelSelector-BYxJU1UV.js} +1 -1
- package/frontend/dist/js/ModelsPage-C4XdCKP5.js +2 -0
- package/frontend/dist/js/NotesPage-CDECOl4V.js +1 -0
- package/frontend/dist/js/{OptimizedSyntaxHighlighter-CWYUn9Oe.js → OptimizedSyntaxHighlighter-XwqZEoTf.js} +1 -1
- package/frontend/dist/js/{PersonasPage-CbQVv9OM.js → PersonasPage-CjSLPrgS.js} +2 -2
- package/frontend/dist/js/PluginUsagePage-DJOXJuH4.js +1 -0
- package/frontend/dist/js/RichMessageContent-Debeh6bi.js +3 -0
- package/frontend/dist/js/SettingsModal-cUqAeYUP.js +1 -0
- package/frontend/dist/js/{SettingsToggle-Uz2jvV64.js → SettingsToggle-WTa0rgvY.js} +1 -1
- package/frontend/dist/js/{SystemPage-CIBDZTWB.js → SystemPage-DxPw0GS7.js} +1 -1
- package/frontend/dist/js/UserManagementPage-CEdYFe_Z.js +1 -0
- package/frontend/dist/js/WorkPage-DDVeuG_9.js +6 -0
- package/frontend/dist/js/api-IzobHGND.js +14 -0
- package/frontend/dist/js/appStore-DKwC2vgn.js +2 -0
- package/frontend/dist/js/ar-xTSvTq05.js +2 -0
- package/frontend/dist/js/authStore-OaTuapL7.js +4 -0
- package/frontend/dist/js/{babel-CmENXdZw.js → babel-D24oDI9y.js} +1 -1
- package/frontend/dist/js/bn-iYAsohEA.js +2 -0
- package/frontend/dist/js/chatStore-DXGUVLXD.js +3 -0
- package/frontend/dist/js/{config-CV8L89A5.js → config-DPEEuTAe.js} +1 -1
- package/frontend/dist/js/cs-YBHN88Hb.js +2 -0
- package/frontend/dist/js/da-D7qlLy_k.js +2 -0
- package/frontend/dist/js/de-DV671k2c.js +2 -0
- package/frontend/dist/js/es-kyBgzNq-.js +2 -0
- package/frontend/dist/js/{estree-Lx6fK8Ug.js → estree-ChwJsD2w.js} +1 -1
- package/frontend/dist/js/fr-Cw1vut7I.js +2 -0
- package/frontend/dist/js/hi-DWEFC024.js +2 -0
- package/frontend/dist/js/{html-Dx5reqmV.js → html-DFrVjciF.js} +1 -1
- package/frontend/dist/js/id-DlMHjjy0.js +2 -0
- package/frontend/dist/js/is-B9E_a7dG.js +2 -0
- package/frontend/dist/js/it-DawmVbLC.js +2 -0
- package/frontend/dist/js/ja-DmVvwY3W.js +2 -0
- package/frontend/dist/js/ko-DzOPpkVs.js +2 -0
- package/frontend/dist/js/{markdown-Bd5G8zQB.js → markdown-FLLx7b67.js} +1 -1
- package/frontend/dist/js/markdown-core-BmPPZiuD.js +31 -0
- package/frontend/dist/js/{markdown-math-B7FlYsmr.js → markdown-math-mH7AZ_mb.js} +6 -6
- package/frontend/dist/js/{messageCodeStyles-CUWSpffv.js → messageCodeStyles-CBkkZY4n.js} +1 -1
- package/frontend/dist/js/ms-DpsaOPht.js +2 -0
- package/frontend/dist/js/nl-B1d8W22n.js +2 -0
- package/frontend/dist/js/pl-nCncRVgt.js +2 -0
- package/frontend/dist/js/{postcss-B5WIGhAY.js → postcss-Bx9CTcIc.js} +1 -1
- package/frontend/dist/js/pt-DHw8fGuu.js +2 -0
- package/frontend/dist/js/{react-vendor-DPNXrO-8.js → react-vendor-C5yShNlM.js} +1 -1
- package/frontend/dist/js/{router-vendor-Ca9zqOqT.js → router-vendor-CbPDks39.js} +1 -1
- package/frontend/dist/js/ru-Derl_YP_.js +2 -0
- package/frontend/dist/js/{standalone-DLNXiOUi.js → standalone-i8-5bg5p.js} +1 -1
- package/frontend/dist/js/sv-pJAfBVo0.js +2 -0
- package/frontend/dist/js/{syntax-highlight-Ca9bHsaz.js → syntax-highlight-3EEX6CGL.js} +3 -3
- package/frontend/dist/js/th-C_7fIGnk.js +2 -0
- package/frontend/dist/js/tr-CPqsJvaP.js +2 -0
- package/frontend/dist/js/{typescript-YKxslwSt.js → typescript-CQ3x-Uni.js} +1 -1
- package/frontend/dist/js/{ui-Dw6jDKxN.js → ui-BHhR3Vok.js} +2 -2
- package/frontend/dist/js/ui-vendor-D3Ahl1x5.js +177 -0
- package/frontend/dist/js/uk-3o8P_kFi.js +2 -0
- package/frontend/dist/js/{useTranslation-t1quV8ce.js → useTranslation-C3ei3mJq.js} +1 -1
- package/frontend/dist/js/{utils-iKndEgla.js → utils-CuC1beTY.js} +1 -1
- package/frontend/dist/js/{utils-vendor-1zob7nK9.js → utils-vendor-BBa8OxtB.js} +1 -1
- package/frontend/dist/js/vi-Dv6N7OVD.js +2 -0
- package/frontend/dist/js/{workApi-LrQmhNxb.js → workApi-Czu69yWS.js} +2 -2
- package/frontend/dist/js/{yaml-QD4znPfZ.js → yaml-DioTxVLA.js} +1 -1
- package/frontend/dist/js/zh-qg5iqtPi.js +2 -0
- package/package.json +16 -5
- package/plugins/huggingface.json +12 -3
- package/plugins/llama-cpp.json +18 -6
- package/plugins/longcat-audiodit.json +114 -0
- package/plugins/openai.json +18 -0
- package/frontend/dist/assets/index-CN7wpzUO.js +0 -26
- package/frontend/dist/assets/index-Dqkx5o2y.css +0 -1
- package/frontend/dist/js/ChatPage-DBEi-FSO.js +0 -16
- package/frontend/dist/js/GalleryPage-BL0x_xl7.js +0 -1
- package/frontend/dist/js/HomePage-Ukn2Y-BG.js +0 -1
- package/frontend/dist/js/ModelsPage-CDPJM-LA.js +0 -2
- package/frontend/dist/js/NotesPage-DJ-_MSI1.js +0 -1
- package/frontend/dist/js/PluginUsagePage-D69rQvFl.js +0 -1
- package/frontend/dist/js/RichMessageContent-DfuCu6PB.js +0 -3
- package/frontend/dist/js/SettingsModal-D87lWSx4.js +0 -1
- package/frontend/dist/js/UserManagementPage-DzMnFKDG.js +0 -1
- package/frontend/dist/js/WorkPage-D84JNdjS.js +0 -6
- package/frontend/dist/js/api-DhmVEJr2.js +0 -14
- package/frontend/dist/js/appStore-BsqeY2tS.js +0 -2
- package/frontend/dist/js/ar-BgCHB9_9.js +0 -2
- package/frontend/dist/js/authStore-DanfaPdm.js +0 -4
- package/frontend/dist/js/bn-Cr8_opuR.js +0 -2
- package/frontend/dist/js/chatStore-C25ywAXQ.js +0 -3
- package/frontend/dist/js/cs-Bb9gXpfH.js +0 -2
- package/frontend/dist/js/da-JfdGHjAw.js +0 -2
- package/frontend/dist/js/de-CczkCOVx.js +0 -2
- package/frontend/dist/js/es-n_0cjhn7.js +0 -2
- package/frontend/dist/js/fr-Pno128cn.js +0 -2
- package/frontend/dist/js/hi-DBCdcL4p.js +0 -2
- package/frontend/dist/js/id-85QDk-wA.js +0 -2
- package/frontend/dist/js/is-9MuKmBft.js +0 -2
- package/frontend/dist/js/it-C5mz9I3H.js +0 -2
- package/frontend/dist/js/ja-Cu90QTBd.js +0 -2
- package/frontend/dist/js/ko-CSdgcMgq.js +0 -2
- package/frontend/dist/js/markdown-core-DHnR5Hw8.js +0 -16
- package/frontend/dist/js/ms-IQMi6HBU.js +0 -2
- package/frontend/dist/js/nl-BwpdTgvn.js +0 -2
- package/frontend/dist/js/pl-zq8ctKrQ.js +0 -2
- package/frontend/dist/js/pt-BIQu7dBu.js +0 -2
- package/frontend/dist/js/ru-BT5-Z0F9.js +0 -2
- package/frontend/dist/js/sv-B1_q6-Uj.js +0 -2
- package/frontend/dist/js/th-BiLLwq0A.js +0 -2
- package/frontend/dist/js/tr-NZbkkeKs.js +0 -2
- package/frontend/dist/js/ui-vendor-xUzKqAXI.js +0 -177
- package/frontend/dist/js/uk-CGu1pg-F.js +0 -2
- package/frontend/dist/js/vi-ClvH5JZg.js +0 -2
- package/frontend/dist/js/zh-Jgjy3uAG.js +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={common:{loading:`Загрузка...`,save:`Сохранить`,saving:`Сохранение...`,cancel:`Отмена`,delete:`Удалить`,edit:`Редактировать`,close:`Закрыть`,back:`Назад`,next:`Далее`,confirm:`Подтвердить`,error:`Ошибка`,success:`Успешно`,warning:`Предупреждение`,or:`или`,optional:`необязательно`,enabled:`Включено`,disabled:`Отключено`,on:`Вкл`,off:`Выкл`,yes:`Да`,no:`Нет`,search:`Поиск`,noResults:`Ничего не найдено`,retry:`Повторить`,refresh:`Обновить`,download:`Скачать`,upload:`Загрузить`,export:`Экспорт`,import:`Импорт`,reset:`Сбросить`,apply:`Применить`,clear:`Очистить`,all:`Все`,none:`Нет`,default:`По умолчанию`,custom:`Пользовательский`,remove:`Удалить`,home:`Главная`,more:`Больше`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`С возвращением`,subtitle:`Войдите в свой аккаунт, чтобы продолжить`,username:`Имя пользователя`,usernamePlaceholder:`Введите имя пользователя`,password:`Пароль`,passwordPlaceholder:`Введите пароль`,signIn:`Войти`,signingIn:`Вход...`,noAccount:`Нет аккаунта?`,signUpHere:`Зарегистрируйтесь здесь`,loginSuccess:`Вход выполнен успешно!`,loginFailed:`Ошибка входа`,checkCredentials:`Ошибка входа. Проверьте учётные данные.`,enterBoth:`Пожалуйста, введите имя пользователя и пароль`,githubSuccess:`Вход через GitHub выполнен успешно!`,githubFailed:`Ошибка аутентификации GitHub`,githubVerifyFailed:`Не удалось проверить аутентификацию GitHub`,approvalPending:`Ваш аккаунт ожидает одобрения администратором.`,verificationFailed:`Проверка безопасности не пройдена. Обновите страницу и попробуйте снова.`},signup:{title:`Создать аккаунт`,subtitle:`Зарегистрируйте новый аккаунт`,username:`Имя пользователя`,usernamePlaceholder:`Выберите имя пользователя`,email:`Эл. почта`,emailPlaceholder:`ваш@email.com`,password:`Пароль`,passwordPlaceholder:`Выберите пароль`,confirmPassword:`Подтвердите пароль`,confirmPasswordPlaceholder:`Подтвердите ваш пароль`,createAccount:`Создать аккаунт`,creatingAccount:`Создание аккаунта...`,hasAccount:`Уже есть аккаунт?`,signInHere:`Войдите здесь`,signupSuccess:`Аккаунт успешно создан!`,signupFailed:`Ошибка регистрации`,tryAgain:`Ошибка регистрации. Попробуйте снова.`,usernameRequired:`Имя пользователя и пароль обязательны`,passwordMismatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 6 символов`,approvalPending:`Регистрация получена. Администратор должен одобрить ваш аккаунт.`,awaitingApproval:`Ожидает одобрения`,awaitingApprovalDescription:`Ваш аккаунт создан, но администратор должен активировать его, прежде чем вы сможете войти.`,backToSignIn:`Вернуться к входу`},logout:{button:`Выйти`,success:`Выход выполнен успешно`},oauth:{continueWith:`Продолжить через {{provider}}`,connectingTo:`Подключение к {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Проверка аутентификации...`,welcome:`Добро пожаловать`,noEmail:`Email не указан`,role:`Роль`,id:`ID`,userId:`ID пользователя`,signInDescription:`Войдите с помощью учётной записи GitHub, чтобы продолжить`,signInWithGitHub:`Войти через GitHub`,jwtActive:`JWT-аутентификация активна`,jwtDescription:`JWT-аутентификация с GitHub OAuth`,github:`GitHub`,provider:`Провайдер`,tagline:`Ваш ИИ-стек должен подчиняться вам.`,selfHosted:`Самостоятельный хостинг · Apache 2.0`,highlights:{local:{title:`Локально`,body:`Ваши диалоги и файлы остаются на устройстве, на котором вы это запускаете.`},providers:{title:`Любой провайдер`,body:`Локальные модели через Ollama, а также удаленные провайдеры, которые вы добавляете.`},work:{title:`Изолированная работа`,body:`Предоставьте модели изолированное рабочее пространство с файлами, терминалом и предпросмотром.`}}},setup:{welcome:{title:`Добро пожаловать в Libre WebUI`,subtitle:`Давайте начнём`,description:`Настройте ваш экземпляр Libre WebUI за несколько шагов`,createAdmin:`Создать аккаунт администратора`,features:{secure:{title:`Безопасность и конфиденциальность`,description:`Ваши разговоры остаются на вашем устройстве`},fast:{title:`Быстрый и отзывчивый`,description:`Оптимизирован для скорости и производительности`},openSource:{title:`Открытый исходный код`,description:`Бесплатное программное обеспечение с открытым исходным кодом`}}},admin:{title:`Создать аккаунт администратора`,subtitle:`Настройка администратора`,description:`Создайте первый аккаунт администратора для вашего экземпляра Libre WebUI`,usernamePlaceholder:`Введите имя администратора`,passwordPlaceholder:`Введите пароль (мин. 6 символов)`,confirmPlaceholder:`Подтвердите пароль`,creating:`Создание...`,createAdmin:`Создать администратора`,success:`Аккаунт администратора успешно создан!`,failed:`Не удалось создать аккаунт администратора`,fillAllFields:`Пожалуйста, заполните все поля`,note:`Это будет основной аккаунт администратора для вашего экземпляра Libre WebUI`,approvalUnexpected:`Не удалось активировать первоначального администратора. Пожалуйста, попробуйте снова.`},encryptionKey:{title:`Сохраните ваш ключ шифрования`,subtitle:`Важно: Сохраните этот ключ`,description:`Этот ключ шифрования защищает ваши конфиденциальные данные. Храните его надёжно — он понадобится при восстановлении базы данных.`,warning:`Предупреждение`,warningText:`Если вы потеряете этот ключ и вам потребуется восстановить базу данных, ваши зашифрованные данные (API-ключи, настройки) будут утеряны безвозвратно.`,label:`Ваш ключ шифрования`,loading:`Загрузка...`,copyToClipboard:`Копировать в буфер обмена`,copied:`Ключ шифрования скопирован в буфер обмена!`,copyFailed:`Не удалось скопировать ключ в буфер обмена`,envNote:`Этот ключ также сохранён в файле backend/.env как ENCRYPTION_KEY`,acknowledgment:`Я сохранил ключ шифрования в надёжном месте и понимаю, что его потеря может привести к утрате данных.`,confirmRequired:`Пожалуйста, подтвердите, что вы сохранили ключ шифрования`,continue:`Продолжить к Libre WebUI`}},chat:JSON.parse(`{"greeting":{"morning":"Доброе утро","afternoon":"Добрый день","evening":"Добрый вечер","night":"Доброй ночи"},"followUp":"Продолжить","welcome":{"helpToday":"Чем могу помочь сегодня?","helpTonight":"Чем могу помочь сегодня вечером?","variety":{"create":{"title":"Что будем создавать?","subtitle":"Начните с мысли, наброска или задачи, которая никак не поддаётся."},"explore":{"title":"С чего начнём?","subtitle":"Расскажите о вопросе, к которому постоянно возвращаетесь."},"imagine":{"title":"Что вы представляете?","subtitle":"Мы можем вместе придать этому форму."},"focus":{"title":"Что заслуживает вашего внимания?","subtitle":"Давайте проясним следующий шаг."},"untangle":{"title":"Что нужно распутать?","subtitle":"Для начала покажите всё как есть, даже если пока хаотично."},"momentum":{"title":"Начнём, когда будете готовы.","subtitle":"Вернитесь к идее, плану или незаконченной теме."},"open":{"title":"О чём вы думаете?","subtitle":"Небольшая мысль или амбициозный проект. Подойдёт и то и другое."},"challenge":{"title":"Что мы решаем?","subtitle":"Расскажите, что пока не работает."},"draft":{"title":"Давайте с чего-нибудь начнём.","subtitle":"Необязательно сразу доводить до блеска."},"possibility":{"title":"Во что это может превратиться?","subtitle":"Покажите мне исходный материал."},"unexpected":{"title":"Создадим что-нибудь неожиданное.","subtitle":"Дайте мне ограничение, настроение или не до конца оформленную идею."}}},"input":{"placeholder":"Отправить сообщение","messagePlaceholder":"Сообщение...","attachImages":"Прикрепить изображения","attachments":"Вложения и дополнительные функции","sendMessage":"Отправить сообщение","stopGeneration":"Остановить генерацию","menu":{"uploadImages":"Загрузить изображения","attachDocument":"Прикрепить документ","attachWebpage":"Прикрепить веб-страницу","structuredOutput":"Структурированный вывод","attach":"Прикрепить","documentAttached":"Документ прикреплён","webpageAttached":"Веб-страница прикреплена","attachFailed":"Не удалось прикрепить","attachKnowledge":"Прикрепить знания","noCollections":"Коллекций пока нет — создайте в Настройках → Документы"},"voiceInput":"Голосовой ввод","voiceStop":"Остановить прослушивание","webSearchOn":"Веб-поиск включён — ответы используют актуальные результаты","webSearchOff":"Искать в интернете для этого сообщения"},"session":{"new":"Новый чат","work":"Работа","chat":"Чат","private":"Приватный","privateMode":"Приватный режим","privateDescription":"Этот разговор не будет сохранён","privateTooltip":"Начать приватный разговор, который не будет сохранён","deleteConfirm":"Вы уверены, что хотите удалить этот чат?","generatingTitle":"Генерация заголовка","noChats":"Чатов пока нет","createFirst":"Создайте свой первый чат выше","chats":"Чаты","renameChat":"Переименовать чат","openNewTab":"Открыть в новой вкладке","pinChat":"Закрепить","unpinChat":"Открепить","deleteChat":"Удалить чат","incognito":"Чат в режиме инкогнито","archiveChat":"Архивировать чат","groups":{"pinned":"Закреплённые","today":"Сегодня","yesterday":"Вчера","previous7Days":"Последние 7 дней","previous30Days":"Последние 30 дней","older":"Старее"},"folder":{"new":"Новая папка","namePlaceholder":"Название папки","move":"Переместить в папку","remove":"Убрать из папки","delete":"Удалить папку","deleteConfirm":"Удалить эту папку? Чаты внутри сохранятся."}},"persona":{"applied":"Персона применена","label":"Персона","loadFailed":"Не удалось загрузить сведения о персоне","removeFailed":"Не удалось удалить персону"},"model":{"updated":"Модель обновлена","noModels":"Модели недоступны","noModelsDescription":"Модели недоступны. Убедитесь, что Ollama запущен и модели установлены.","pullCommand":"ollama pull llama3.2:3b","noModelsTooltip":"Модели недоступны. Убедитесь, что Ollama запущен и модели установлены.","selectBeforePrivateChat":"Выберите доступную модель перед началом приватного чата","selectBeforeSending":"Выберите доступную модель перед отправкой"},"footer":{"disclaimer":"ИИ может ошибаться — проверяйте важную информацию","images":"{{count}} изображение","images_plural":"{{count}} изображений","structuredOutput":"Структурированный вывод"},"mediaUpload":{"dropImagesHere":"Перетащите изображения сюда или","supportedFormats":"Поддерживаются: JPG, PNG, GIF, WebP (макс. 10 МБ каждый)","browse":"выберите"},"structuredOutput":{"title":"Формат ответа","none":"Нет (естественный язык)","noneDescription":"Стандартный ответ на естественном языке","json":"JSON","jsonDescription":"Структурированный формат JSON","list":"Список","listDescription":"Массив элементов","summary":"Резюме","summaryDescription":"Краткое изложение документа с ключевыми моментами","analysis":"Анализ","analysisDescription":"Структурированный анализ с плюсами/минусами","custom":"Пользовательская схема","customDescription":"Определите собственную JSON-схему","customSchema":"Пользовательская JSON-схема","schemaPreview":"Предпросмотр схемы","applySchema":"Применить схему","cancel":"Отмена","enabled":"Структурированный вывод включён"},"controls":{"title":"Настройки чата","systemPrompt":"Системный промпт","systemPromptPlaceholder":"Инструкции только для этого чата…","advancedParams":"Расширенные параметры","advancedParamsDescription":"Переопределения для этого чата. Пустые поля используют глобальные значения.","fromModel":"из модели","fromModelHint":"Это значение взято из рекомендованных настроек самой модели.","contextCapped":"Контекст ограничен {{context}} из {{trained}}, на которых обучалась модель, чтобы она загружалась.","saved":"Настройки сохранены","saveFailed":"Не удалось сохранить настройки","params":{"temperature":"Температура","topP":"Top P","topK":"Top K","minP":"Min P","maxTokens":"Макс. токенов","repeatPenalty":"Штраф за повторы","seed":"Сид","contextLength":"Длина контекста"}},"message":{"sources":"Источники"},"toasts":{"chatCreated":"Новый чат создан","createFailed":"Не удалось создать сеанс","loadFailed":"Не удалось загрузить сеансы","chatDeleted":"Чат удалён","deleteFailed":"Не удалось удалить чат","deleteSessionFailed":"Не удалось удалить сеанс","historyCleared":"Вся история чата очищена","historyClearFailed":"Не удалось очистить историю чата","titleUpdated":"Название чата обновлено","updateFailed":"Не удалось обновить сеанс","noValidSession":"Нет допустимого сеанса чата. Создайте или выберите чат.","sessionNotFound":"Сеанс не найден или недействителен. Выберите или создайте допустимый сеанс чата.","noModelProvider":"Нет доступного поставщика моделей","modelUnavailable":"Выбранная модель \\"{{model}}\\" недоступна у {{provider}}. Повторно активируйте этого поставщика или выберите другую модель.","modelSwitched":"Переключено на {{model}} (предыдущая модель больше недоступна)","modelsLoadFailed":"Не удалось загрузить модели","modelUpdated":"Модель обновлена для текущего чата","modelUpdateFailed":"Не удалось обновить модель сеанса"}}`),sidebar:{navigation:{chat:`Чат`,models:`Модели`,personas:`Персоны`,imagine:`Изображения`,settings:`Настройки`,userManagement:`Управление пользователями`,signOut:`Выйти`,agents:`Агенты`,work:`Работа`,exploreLabel:`Обзор`,usageAnalytics:`Использование провайдеров`,system:`Система`,notes:`Заметки`},toggleSize:`Переключить размер боковой панели`,expandSidebar:`Развернуть боковую панель`},user:{menu:{changePicture:`Изменить фото`,settings:`Настройки`,userManagement:`Управление пользователями`,logout:`Выйти`,usageAnalytics:`Использование провайдеров`,system:`Система`},avatar:{title:`Изменить фото профиля`,updated:`Фото профиля обновлено`,updateFailed:`Не удалось обновить фото профиля`,saving:`Сохранение...`,label:`Аватар`,uploadAvatarImage:`Загрузить изображение аватара`,dragAndDrop:`Перетащите изображение или нажмите для выбора`,chooseImage:`Выбрать изображение`,uploading:`Загрузка...`,enterImageUrl:`Или введите URL изображения`,supportedFormats:`Поддерживаются: JPG, PNG, GIF, WebP (макс. 2 МБ). Квадратные изображения подходят лучше всего.`,customAvatar:`Пользовательское изображение аватара`,clickToChange:`Нажмите, чтобы изменить или удалить`,removed:`Аватар удалён`,uploaded:`Аватар успешно загружен`,invalidFile:`Пожалуйста, выберите корректный файл изображения`,fileTooLarge:`Размер изображения аватара должен быть менее 2 МБ`,readFailed:`Не удалось прочитать файл изображения`,uploadFailed:`Не удалось загрузить изображение аватара`},profile:{noEmail:`Эл. почта не указана`}},settings:JSON.parse(`{"title":"Настройки","tabs":{"appearance":"Внешний вид","model":"Модель","systemMessage":"Системное сообщение","plugins":"Плагины","search":"Поиск","generation":"Генерация","documents":"Документы","tts":"Синтез речи","imageGen":"Генерация изображений","data":"Данные","shortcuts":"Сочетания клавиш","about":"О программе"},"appearance":{"title":"Внешний вид","language":{"title":"Язык","description":"Выберите предпочтительный язык"},"theme":{"title":"Тема","light":"Светлая","dark":"Тёмная","amoled":"Глубокий Чёрный","system":"Системная"},"accent":{"title":"Акцентный цвет","custom":"Пользовательский цвет","useColor":"Использовать {{color}} как акцент","behaviorTitle":"Палитра интерфейса","behaviorDescription":"Выберите, останется ли акцент только на элементах управления или изменит весь светлый либо тёмный интерфейс.","defaultStyle":"По умолчанию","defaultStyleDescription":"Сохранить нейтральные поверхности светлой и тёмной темы.","adaptedStyle":"Адаптировать к акценту","adaptedStyleDescription":"Окрасить поверхности, границы и текст в акцентный цвет."},"chatInterface":{"title":"Интерфейс чата","showUsername":"Показывать имя пользователя","showUsernameDescription":"Отображать имя пользователя в сообщениях чата","followUpSuggestions":"Подсказки для продолжения","followUpSuggestionsDescription":"Предлагать быстрые ответы после каждого ответа","hapticFeedback":"Тактильная отдача (Android)","hapticFeedbackDescription":"Использовать лёгкую вибрацию для важных действий на мобильном устройстве"},"background":{"title":"Фоновое изображение","enable":"Включить фоновое изображение","enableDescription":"Показывать пользовательский фон с эффектом размытия","blur":"Размытие","opacity":"Прозрачность","upload":"Загрузить фоновое изображение","dragDrop":"Перетащите изображение или нажмите для выбора","chooseImage":"Выбрать изображение"}},"saveSettings":"Сохранить настройки","model":{"title":"Настройки модели","defaultModel":"Модель по умолчанию","defaultModelDescription":"Эта модель будет использоваться по умолчанию для новых разговоров","selectModel":"Выберите модель","updateAll":"Обновить все модели","updateAllDescription":"Проверить обновления и загрузить последние версии всех установленных моделей","updateAllButton":"Обновить все","updating":"Обновление моделей...","currentModelInfo":"Информация о текущей модели","name":"Название","size":"Размер","family":"Семейство","format":"Формат","status":"Статус","statusStarting":"Запуск...","statusComplete":"Завершено","statusError":"Ошибка","bulkOperations":"Массовые операции","autoTitle":{"title":"Автогенерация заголовков","enable":"Включить автогенерацию заголовков","enableDescription":"Автоматически генерировать заголовки для новых разговоров","taskModel":"Модель для задач","selectTaskModel":"Выберите модель для задач","taskModelDescription":"Модель для генерации заголовков разговоров"},"persona":"Персона","updatingModel":"Обновление {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} из {{total}} моделей","specializedModels":"Специализированные модели","visionModel":"Модель зрения","selectVisionModel":"Использовать текущую модель чата","visionModelDescription":"Используется автоматически, когда исходящий контекст чата содержит изображения. Выберите модель, поддерживающую ввод изображений.","visionModelUpdateFailed":"Не удалось обновить модель зрения: {{error}}","visionModelNoProvider":"У этой модели зрения нет идентификатора провайдера. Выберите доступную модель."},"systemMessage":{"title":"Системное сообщение","description":"Установите пользовательское системное сообщение, которое будет использоваться для всех новых разговоров.","placeholder":"Введите системное сообщение...","saved":"Системное сообщение сохранено","saveFailed":"Не удалось сохранить системное сообщение"},"plugins":{"title":"Плагины","description":"Управление установленными плагинами","addNew":"Добавить новый плагин","upload":"Загрузить плагин","addJson":"Добавить JSON","uploading":"Загрузка...","jsonPlaceholder":"Вставьте JSON-конфигурацию плагина...","install":"Установить плагин","noPlugins":"Плагины не установлены","noPluginsDescription":"Добавьте плагин для расширения функциональности","loading":"Загрузка плагинов...","installed":"Установленные плагины","active":"Активные плагины","activeLabel":"Активен","inactive":"Неактивен","activate":"Активировать","deactivate":"Деактивировать","models":"моделей","apiKeySet":"API-ключ установлен","apiKeyConfiguration":"Настройка API-ключа","apiKeyEnvAlternative":"Или установите переменную","environmentVariable":"переменную окружения","apiKeyConfigured":"API-ключ настроен","apiKeyPlaceholder":"Введите ваш API-ключ...","saveApiKey":"Сохранить API-ключ","apiKey":{"title":"API-ключ","placeholder":"Введите API-ключ","save":"Сохранить ключ","remove":"Удалить ключ","configured":"API-ключ настроен","notConfigured":"Требуется API-ключ","saved":"API-ключ успешно сохранён","removed":"API-ключ удалён","saveFailed":"Не удалось сохранить API-ключ","removeFailed":"Не удалось удалить API-ключ","enterKey":"Пожалуйста, введите API-ключ"},"variables":"Variables","providerConnections":"Подключения провайдеров","providerConnectionsDescription":"Подключайте, настраивайте и проверяйте провайдеров моделей через плагины.","providers":"Провайдеры","searchProviders":"Поиск провайдеров","noProvidersFound":"По вашему запросу провайдеры не найдены.","selectProvider":"Выберите провайдера","selectProviderDescription":"Выберите провайдера для просмотра его подключения и каталога моделей.","apiKeyDescription":"Сохранить личный API-ключ для {{name}}.","showApiKey":"Показать API-ключ","hideApiKey":"Скрыть API-ключ","configure":"Настроить","providerSettings":"Настройки провайдера","status":"Статус","defaultEndpoint":"Конечная точка по умолчанию","modelCatalog":"Каталог моделей","modelCatalogDescription":"Обнаруженные и настроенные модели для этого провайдера и его возможности.","refreshModels":"Обновить модели","noModelsConfigured":"Для этого провайдера не настроено ни одной модели.","modelId":"ID модели","capabilities":"Возможности","modelCatalogUpdated":"Каталог моделей обновлен: {{count}} моделей.","modelCatalogUnchanged":"Каталог моделей уже актуален.","modelCatalogNeedsApiKey":"Добавьте действительный API-ключ для этого провайдера, чтобы загрузить его актуальный список моделей.","modelCatalogUnavailable":"Не удалось загрузить список моделей провайдера.","modelCatalogRefreshFailed":"Не удалось обновить каталог моделей","capability":{"chat":"Чат","embedding":"Эмбеддинг","image":"Изображение","speech":"Речь","transcription":"Транскрипция"},"exportPlugin":"Экспортировать плагин","deletePlugin":"Удалить плагин"},"generation":{"title":"Параметры генерации","description":"Настройте, как ИИ генерирует ответы","scopeLabel":"Применяется к","scopeAll":"Всем моделям","scopeModel":"Только {{model}}","scopeAllHint":"Значения, которые использует каждая модель, если у неё нет своих.","scopeModelHint":"Сохраняется только для этой модели и имеет приоритет над общими значениями.","coreParameters":"Основные параметры","temperature":"Температура","temperatureDescription":"Контролирует случайность. Низкие значения — более точные, высокие — более творческие.","topP":"Top P","topPDescription":"Контролирует разнообразие через nucleus sampling. Низкие значения фокусируются на вероятных токенах.","topK":"Top K","topKDescription":"Ограничивает выбор токенов до K наиболее вероятных. Установите 0 для отключения.","minP":"Min P","minPDescription":"Минимальный порог вероятности для выбора токена.","generationControl":"Управление генерацией","maxTokens":"Макс. токенов","maxTokensDescription":"Максимальное количество токенов для генерации в ответе.","repeatPenalty":"Штраф за повторение","repeatPenaltyDescription":"Штрафует повторяющиеся токены. Высокие значения уменьшают повторения.","contextLength":"Длина контекста","contextLengthDescription":"Максимальный размер окна контекста для разговоров.","seed":"Seed","optional":"необязательно","random":"Случайный","seedDescription":"Установите конкретный seed для воспроизводимых результатов.","advancedOptions":"Расширенные параметры","presencePenalty":"Штраф за присутствие","presencePenaltyDescription":"Штрафует токены, появляющиеся в контексте.","frequencyPenalty":"Штраф за частоту","frequencyPenaltyDescription":"Штрафует часто используемые токены.","stopSequences":"Стоп-последовательности","commaSeparated":"через запятую","stopSequencesDescription":"Пользовательские токены, которые остановят генерацию при обнаружении.","resetDefaults":"Сбросить по умолчанию","saveOptions":"Сохранить параметры","embeddingSettings":"Настройки встраивания","enableEmbeddings":"Включить встраивание документов","advancedSettings":"Расширенные настройки генерации","advancedSettingsDescription":"Семплинг, лимиты токенов, контекст, штрафы и стоп-последовательности"},"documents":{"title":"Настройки документов","embeddings":{"title":"Встраивание","enable":"Включить встраивание документов","model":"Модель встраивания","modelDescription":"Выберите модель для встраивания документов","chunkSize":"Размер фрагмента","chunkSizeInTokens":"(в токенах)","chunkSizeDescription":"Размер текстовых фрагментов для встраивания","chunkOverlap":"Перекрытие фрагментов","chunkOverlapInTokens":"(в токенах)","chunkOverlapDescription":"Перекрытие между последовательными фрагментами","similarityThreshold":"Порог сходства","similarityDescription":"Минимальный балл сходства для включения результатов","status":"Статус встраивания","statusLabel":"Статус","available":"Доступно","unavailable":"Недоступно","chunksWithEmbeddings":"Фрагментов со встраиванием","coverage":"Покрытие","regenerate":"Перегенерировать встраивания","regenerating":"Перегенерация..."},"collections":{"title":"Коллекции знаний","description":"Группируйте документы в коллекции и прикрепляйте их к любому чату.","namePlaceholder":"Название коллекции","create":"Создать","none":"Без коллекции","deleteConfirm":"Удалить эту коллекцию? Документы внутри сохранятся."}},"tts":{"title":"Синтез речи","description":"Настройте параметры синтеза речи для озвучивания сообщений","loadingProviders":"Загрузка провайдеров TTS...","noProviders":"Провайдеры TTS отсутствуют","noProvidersDescription":"Настройте плагин с поддержкой TTS для включения синтеза речи","enable":"Включить TTS","enableDescription":"Разрешить синтез речи для сообщений ассистента","autoPlay":"Автовоспроизведение ответов","autoPlayDescription":"Автоматически озвучивать новые сообщения ассистента","streamSentences":"Потоковое воспроизведение предложений","streamSentencesDescription":"Воспроизводить аудио по предложениям вместо ожидания полного сообщения. Рекомендуется для локального TTS, чтобы избежать таймаутов на длинных сообщениях.","voiceConfiguration":"Настройка голоса","model":"Модель TTS","modelDescription":"Выберите модель для синтеза речи","voice":"Голос","selectVoice":"Выберите голос","voiceDescription":"Выберите голос для синтеза речи","speed":"Скорость","speedSlow":"0.5x","speedNormal":"1.0x","speedFast":"2.0x","availableProviders":"Доступные провайдеры","models":"моделей","test":"Тест","testing":"Тестирование...","stop":"Стоп"},"imageGen":{"title":"Генерация изображений","description":"Настройте параметры и провайдеров генерации изображений","loadingProviders":"Загрузка провайдеров генерации изображений...","noProviders":"Провайдеры генерации изображений отсутствуют","noProvidersDescription":"Настройте плагин с поддержкой генерации изображений","enable":"Включить генерацию изображений","enableDescription":"Разрешить генерацию изображений ИИ в разговорах","configuration":"Конфигурация","model":"Модель","modelDescription":"Выберите модель для генерации изображений","size":"Размер","sizeDescription":"Разрешение генерируемых изображений","quality":"Качество","qualityDescription":"Уровень качества генерируемых изображений","style":"Стиль","styleDescription":"Пресет стиля для генерируемых изображений","availableProviders":"Доступные провайдеры","models":"моделей"},"data":{"title":"Управление данными","export":"Экспорт данных","exportDescription":"Скачайте все ваши данные, включая настройки, сессии и документы.","exportAll":"Экспортировать все данные","import":"Импорт данных","importDescription":"Импортируйте данные из предыдущего экспорта.","importData":"Импортировать данные","importing":"Импорт...","clearSessions":"Очистить сессии","clearSessionsDescription":"Удалить все сессии чата. Это действие нельзя отменить.","clearAll":"Очистить всё","clearing":"Очистка...","importOptions":"Параметры импорта","importOptionsDescription":"Выберите, как обрабатывать существующие данные","skipDuplicates":"Пропускать дубликаты","overwrite":"Перезаписывать существующие","importResults":"Результаты импорта","preferences":"Настройки","imported":"Импортировано","failed":"Ошибка","sessions":"Сессии","importedLabel":"импортировано","skipped":"пропущено","documents":"Документы","errors":"Ошибки","archivedChats":{"title":"Архивированные чаты","empty":"Нет архивированных чатов","unarchive":"Восстановить"}},"about":{"title":"О программе","versionLabel":"Версия","ollama":{"title":"Статус Ollama","version":"Версия","healthy":"Работает","unhealthy":"Не работает"},"stats":{"models":"Модели","sessions":"Сессии"},"features":{"privacy":{"title":"Конфиденциальность прежде всего","description":"Ваши данные остаются на вашем устройстве"},"openSource":{"title":"Открытый исходный код","description":"Бесплатное программное обеспечение с открытым исходным кодом"},"localInference":{"title":"Локальный вывод","description":"Запускайте модели ИИ локально с Ollama"}},"openSourceBy":"Открытый исходный код от {{company}}","links":{"title":"Ссылки","github":"GitHub","githubDescription":"Просмотр исходного кода и участие","website":"Веб-сайт","websiteDescription":"Посетите наш веб-сайт","ollama":"Ollama","ollamaDescription":"Узнайте больше об Ollama","documentation":"Документация","reportIssue":"Сообщить о проблеме","reportIssueDescription":"Отчёты об ошибках и запросы функций","gitlab":"Зеркало GitLab","gitlabDescription":"Самостоятельно размещённый репозиторий GitLab","documentationDescription":"Руководства, учебники и справочник API"},"version":"Версия {{version}}"},"groups":{"general":"Основные","chat":"Чат","media":"Речь и изображения","connections":"Подключения"},"search":{"title":"Веб-поиск","description":"Ищите в интернете через собственный экземпляр SearXNG. После включения в чате появляется переключатель поиска, а задачи Work с доступом к сети могут искать.","enableLabel":"Включить веб-поиск","enableDescription":"Предоставить веб-поиск чатам и задачам Work. Поиск выполняется на сервере через настроенный экземпляр.","urlLabel":"URL SearXNG","urlDescription":"Базовый URL экземпляра SearXNG, доступный с сервера. Прилагаемый приватный деплой-стек предоставляет http://searxng:8080.","maxResultsLabel":"Результатов на поиск","maxResultsDescription":"Сколько результатов попадает в ответ или вызов инструмента, 1-10.","maxResultsInvalid":"Количество результатов должно быть от 1 до 10.","safeSearchLabel":"Безопасный поиск","safeSearchDescription":"Просить движок фильтровать откровенные результаты.","test":"Проверить соединение","testing":"Проверка…","testOk":"Поиск работает — получено {{results}} результатов","testFailed":"Проверка поиска не удалась","save":"Сохранить","saved":"Настройки поиска сохранены","saveFailed":"Не удалось сохранить настройки поиска"}}`),models:{title:`Модели`,subtitle:`Загружайте, управляйте и отслеживайте ваши модели Ollama`,installed:`Установленные модели`,available:`Доступные модели`,pull:`Загрузить модель`,pulling:`Загрузка...`,delete:`Удалить модель`,deleting:`Удаление...`,size:`Размер`,modified:`Изменено`,family:`Семейство`,parameters:`Параметры`,quantization:`Квантование`,noModels:`Модели не установлены`,pullFirst:`Загрузите модель, чтобы начать`,noModelsFound:`Модели не найдены`},personas:{title:`Персоны`,create:`Создать персону`,edit:`Редактировать персону`,delete:`Удалить персону`,name:`Имя`,description:`Описание`,systemPrompt:`Системный промпт`,model:`Модель`,avatar:`Аватар`,background:`Фон`,noPersonas:`Персоны не созданы`,createFirst:`Создайте вашу первую персону для настройки опыта общения`},gallery:{title:`Галерея`,subtitle:`Ваша галерея изображений, созданных ИИ`,imageCount:`{{count}} изображений`,generate:`Создать изображение`,generateDescription:`Создавайте изображения с помощью ИИ`,generating:`Создание...`,prompt:`Промпт`,promptPlaceholder:`Опишите изображение, которое хотите создать...`,noImages:`Изображения ещё не созданы`,download:`Скачать`,delete:`Удалить`,regenerate:`Пересоздать`,model:`Модель`,size:`Размер`,quality:`Качество`,created:`Создано`},errors:{generic:`Произошла ошибка`,network:`Сетевая ошибка. Проверьте подключение.`,unauthorized:`У вас нет прав для выполнения этого действия.`,notFound:`Запрошенный ресурс не найден.`,serverError:`Ошибка сервера. Попробуйте позже.`,validation:`Проверьте введённые данные и попробуйте снова.`},keyboard:{title:`Горячие клавиши`,toggleSidebar:`Переключить боковую панель`,openSettings:`Открыть настройки`,toggleDarkMode:`Переключить тёмный режим`,showShortcuts:`Показать горячие клавиши`,closeModals:`Закрыть окна`,groups:{navigation:`Навигация`,general:`Общие`,chat:`Чат`,workspace:`Рабочая область`},actions:{sendMessage:`Отправить сообщение`,newLine:`Новая строка в сообщении`,saveEdit:`Сохранить изменённое сообщение`,cancelEdit:`Отменить редактирование`,saveFile:`Сохранить файл`,formatCode:`Форматировать код`},description:`Все сочетания клавиш, доступные в Libre WebUI.`,newChat:`Новый чат`,newWork:`Новая сессия Work`,openPalette:`Открыть палитру команд`},modelManager:{title:`Модели`,loading:`Загрузка моделей...`,systemStatus:{online:`Ollama онлайн`,offline:`Ollama офлайн`,models:`модель`,models_plural:`моделей`,running:`запущено`,vram:`VRAM`},sections:{pull:`Загрузить новую модель`,library:`Обзор библиотеки`,running:`Запущенные модели`,local:`Локальные модели`,advanced:`Расширенные действия`,huggingface:`HuggingFace Hub`},pull:{placeholder:`Введите название модели (напр., llama3.2:3b, deepseek-r1:14b)`,button:`Загрузить`,cancel:`Отмена`,popular:`Популярные модели:`,browseAll:`Просмотреть все модели на ollama.com`,success:`Модель {{name}} успешно загружена`,cancelled:`Загрузка модели отменена`,failed:`Не удалось загрузить модель`,enterName:`Пожалуйста, введите название модели`,restricted:`Установка моделей в этом экземпляре доступна только администраторам.`},progress:{starting:`Инициализация...`,pulling:`Загрузка модели...`,pullingLayer:`загрузка`,verifying:`Проверка целостности...`,verifyingDigest:`проверка sha256 дайджеста`,writing:`Запись манифеста...`,cleaning:`Очистка...`},library:{available:`доступно`,search:`Поиск моделей...`,noResults:`Модели не найдены по вашим критериям`,installed:`Установлено`,more:`+{{count}} ещё`,refresh:`Обновить библиотеку`},local:{noModels:`Модели ещё не установлены`,pullToStart:`Загрузите модель выше, чтобы начать`,installed:`установлено`,running:`Запущено`,info:`Инфо`,copy:`Копировать`,delete:`Удалить`,deleteConfirm:`Вы уверены, что хотите удалить модель "{{name}}"?`,deleteSuccess:`Модель {{name}} успешно удалена`,deleteFailed:`Не удалось удалить модель`},advanced:{createModel:`Создать модель`,fromModelfile:`Из Modelfile`,copyModel:`Копировать модель`,duplicateExisting:`Дублировать существующую`,testEmbeddings:`Тест встраивания`,generateVectors:`Создать векторы`,healthCheck:`Проверка состояния`,testConnection:`Проверить соединение`,healthy:`Ollama работает нормально!`},modals:{details:{title:`Детали модели`,info:`Информация о модели`,family:`Семейство`,parameters:`Параметры`,quantization:`Квантование`,format:`Формат`,systemPrompt:`Системный промпт`,template:`Шаблон`,license:`Лицензия`,modelfile:`Modelfile`,noDetails:`Детали недоступны`},copy:{title:`Копировать модель`,source:`Исходная модель`,selectModel:`Выберите модель...`,newName:`Новое название модели`,placeholder:`напр., my-custom-model`,copying:`Копирование...`,button:`Копировать модель`,success:`Модель скопирована в {{name}}`,failed:`Не удалось скопировать модель`,enterBoth:`Пожалуйста, введите исходное и целевое названия`},create:{title:`Создать пользовательскую модель`,name:`Название модели`,namePlaceholder:`напр., my-assistant`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
|
|
2
|
-
SYSTEM You are a helpful assistant.`,see:`См.`,docs:`Документация Modelfile`,docsLink:`для справки по синтаксису`,creating:`Создание...`,button:`Создать модель`,success:`Модель {{name}} успешно создана`,failed:`Не удалось создать модель`,enterBoth:`Пожалуйста, введите название модели и содержимое Modelfile`},embeddings:{title:`Тест встраивания`,model:`Модель встраивания`,selectModel:`Выберите модель...`,recommended:`Рекомендуется: nomic-embed-text, mxbai-embed-large`,input:`Входной текст`,placeholder:`Введите текст для создания встраивания...`,generating:`Создание...`,button:`Создать встраивание`,result:`Результат ({{count}} измерений)`,success:`Создан {{count}}-мерный вектор встраивания`,failed:`Не удалось создать встраивание`,enterBoth:`Пожалуйста, выберите модель и введите текст`}},huggingface:{browseAll:`Смотреть всё на HuggingFace`,checkingGguf:`Поиск GGUF-файлов...`,noGgufAvailable:`Нет доступных GGUF-файлов для прямой загрузки в Ollama`,ggufFilesCount:`GGUF-файлы ({{count}}) - Загрузить напрямую в Ollama`,noModelsFound:`Модели не найдены`,noResults:`Модели не найдены. Попробуйте изменить поиск или фильтры.`,browseAllLink:`Смотреть всё`,search:`Поиск моделей HuggingFace...`,by:`от`,gated:`Ограниченный доступ`,viewOnHF:`Открыть на HuggingFace`,sortDownloads:`Загрузки`,sortLikes:`Лайки`,sortRecent:`Недавние`,taskTextGeneration:`Генерация текста`,taskTextToSpeech:`Текст в речь`,taskTextToImage:`Текст в изображение`,taskSpeechRecognition:`Распознавание речи`,tasks:{textGen:`Генерация текста`,tts:`Текст в речь`,image:`Текст в изображение`,stt:`Распознавание речи`},sort:{downloads:`Самые загружаемые`,likes:`Самые популярные`,recent:`Недавно обновлённые`}}},personaManager:{title:`Персоны`,subtitle:`Создавайте и управляйте персонами ИИ с пользовательскими личностями, памятью и поведением`,loading:`Загрузка персон...`,createButton:`Создать персону`,importExport:`Импорт/Экспорт`,stats:{title:`Ваши персоны`,count:`Создано {{count}} персона`,count_plural:`Создано {{count}} персон`},empty:{title:`Персон пока нет`,description:`Создайте вашу первую персону для персонализированного взаимодействия с ИИ`,button:`Создать вашу первую персону`},deleteConfirm:`Вы уверены, что хотите удалить "{{name}}"?`,deleteSuccess:`Персона "{{name}}" успешно удалена`,downloadSuccess:`Персона "{{name}}" успешно скачана`,failed:`Не удалось {{action}} персону`},personaForm:{title:{create:`Создать новую персону`,edit:`Редактировать персону`},subtitle:{create:`Создайте новую персону ИИ с пользовательской личностью, системой памяти и адаптивным обучением`,edit:`Настройте вашу персону ИИ с расширенной памятью, адаптивным обучением и интеллектуальными параметрами`},loading:`Загрузка формы...`,saved:`Сохранено`,tabs:{basic:`Основное`,parameters:`Параметры`,memory:`Память и обучение`,advanced:`Расширенное`},basic:{name:`Имя`,namePlaceholder:`Введите имя персоны`,model:`Модель`,selectModel:`Выберите модель`,description:`Описание`,descriptionPlaceholder:`Опишите вашу персону...`,systemPrompt:`Системный промпт`,systemPromptPlaceholder:`Введите системный промпт, определяющий поведение вашей персоны...`,systemPromptHint:`Системный промпт определяет, как ваша персона будет себя вести и отвечать.`},parameters:{temperature:`Температура`,temperatureHint:`Контролирует креативность vs последовательность`,topP:`Top-P`,topPHint:`Контролирует разнообразие ответов`,topK:`Top-K`,topKHint:`Ограничивает словарь до top-k токенов`,contextWindow:`Окно контекста`,contextWindowHint:`Максимальная длина истории разговора`,maxTokens:`Макс. токенов`,maxTokensHint:`Максимальная длина ответа`,repeatPenalty:`Штраф за повторение`,repeatPenaltyHint:`Уменьшает повторяющиеся ответы`},memory:{title:`Система памяти`,subtitle:`Персона запоминает разговоры со временем`,enableHint:`Включите систему памяти, чтобы ваша персона запоминала разговоры и накапливала контекст со временем.`,loading:`Загрузка статуса памяти...`,noData:`Данных памяти пока нет`,memories:`Воспоминания`,mbUsed:`МБ использовано`,lastBackup:`Последний бэкап`,never:`Никогда`,maxMemories:`Максимум воспоминаний`,maxMemoriesHint:`Сколько воспоминаний может хранить эта персона`,retention:`Срок хранения памяти`,retentionHint:`Дней до очистки воспоминаний`,autoCleanup:`Автоочистка старых воспоминаний`,wipeAll:`Очистить всю память`,wipeCannot:`Это нельзя отменить`,wipeButton:`Очистить`,wiping:`Очистка...`,wipeConfirm:`Вы уверены, что хотите очистить всю память? Это нельзя отменить.`,wipeSuccess:`Очищено {{count}} воспоминаний`},learning:{title:`Адаптивное обучение`,subtitle:`Персона развивается на основе взаимодействий`,enableHint:`Включите адаптивное обучение, чтобы ваша персона развивалась и персонализировала ответы на основе ваших взаимодействий.`,speed:`Скорость обучения`,slow:`Медленно`,slowDesc:`Постепенные изменения`,balanced:`Сбалансировано`,balancedDesc:`Умеренный темп`,fast:`Быстро`,fastDesc:`Быстрая адаптация`,autoAdapt:`Автоадаптация к предпочтениям пользователя`,whatLearns:`Что изучает персона:`,conversationTone:`Тон разговора`,responseStyle:`Стиль ответов`,userPreferences:`Предпочтения пользователя`,topicInterests:`Интересующие темы`},advanced:{embeddingModel:`Модель встраивания`,embeddingHint:`Выберите модель для кодирования памяти и семантического поиска. Модели встраивания показаны первыми, затем другие доступные модели.`,noModels:`Модели не найдены`,embeddingModels:`Модели встраивания`,otherModels:`Другие модели`,installHint:`Установите модель встраивания:`,recommended:`Рекомендуется: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`О расширенных настройках`,aboutDescription:`Модель встраивания используется системой памяти для понимания семантического значения и поиска релевантных воспоминаний во время разговоров. Выберите модель, соответствующую вашему сценарию использования и доступным ресурсам.`},actions:{cancel:`Отмена`,save:`Сохранить`,saving:`Сохранение...`,saveClose:`Сохранить и закрыть`,create:`Создать`},success:{created:`Персона создана`,updated:`Персона обновлена`},error:{saveFailed:`Не удалось сохранить`}},personaCard:{enhanced:`Улучшенная`,systemPrompt:`Системный промпт`,memories:`воспоминаний`,use:`Использовать`,editTooltip:`Редактировать персону`,downloadTooltip:`Скачать персону`,backup:`Бэкап`,exportDNA:`Экспорт ДНК`,wipeMemories:`Очистить память`,wipeConfirm:`Вы уверены, что хотите очистить всю память этой персоны? Это действие нельзя отменить.`,wipeSuccess:`Очищено {{count}} воспоминаний`,backupSuccess:`Бэкап персоны успешно скачан`,dnaSuccess:`ДНК персоны успешно экспортирована`,failed:`Не удалось {{action}}`},userManager:{title:`Управление пользователями`,subtitle:`Управление аккаунтами и правами пользователей`,pageDescription:`Управляйте учетными записями пользователей, разрешениями и контролем доступа для вашего экземпляра Libre WebUI.`,loading:`Загрузка пользователей...`,createUser:`Создать пользователя`,search:`Поиск пользователей...`,noUsers:`Пользователи не найдены`,noUsersMatching:`Пользователи по вашему запросу не найдены`,columns:{user:`Пользователь`,email:`Эл. почта`,role:`Роль`,created:`Создан`,actions:`Действия`},roles:{admin:`Администратор`,user:`Пользователь`},noEmail:`Нет эл. почты`,deleteConfirm:`Вы уверены, что хотите удалить пользователя "{{name}}"?`,deleteSuccess:`Пользователь успешно удалён`,deleteFailed:`Не удалось удалить пользователя`,cannotDeleteSelf:`Вы не можете удалить свой аккаунт`,form:{title:{create:`Создать пользователя`,edit:`Редактировать пользователя`},username:`Имя пользователя`,usernamePlaceholder:`Введите имя пользователя`,email:`Эл. почта`,emailPlaceholder:`Введите эл. почту (необязательно)`,password:`Пароль`,passwordPlaceholder:`Введите пароль`,passwordHint:`Оставьте пустым, чтобы сохранить текущий пароль`,role:`Роль`,creating:`Создание...`,updating:`Обновление...`,createButton:`Создать пользователя`,updateButton:`Обновить пользователя`,createSuccess:`Пользователь успешно создан`,updateSuccess:`Пользователь успешно обновлён`,createFailed:`Не удалось создать пользователя`,updateFailed:`Не удалось обновить пользователя`},approval:{title:`Ожидающие одобрения`,description:`Проверяйте новые регистрации, прежде чем разрешить им доступ к этому экземпляру.`,registered:`Зарегистрирован`,activate:`Активировать аккаунт`,reject:`Отклонить регистрацию`,approved:`{{name}} теперь может войти.`,failed:`Аккаунт не может быть одобрен.`,notification:`{{count}} регистраций ожидают вашего одобрения.`,notificationBadge:`{{count}} ожидающих одобрений пользователей`},workAccess:{title:`Доступ к Work`,description:`Разрешить всем активным пользователям создавать и запускать задачи Work в изолированных песочницах. Администраторы всегда имеют доступ; рабочие пространства в папках хоста остаются только для администраторов.`,saved:`Доступ к Work обновлён`,saveFailed:`Не удалось обновить доступ к Work`},workPolicies:{title:`Политики Work`,description:`Именованные пресеты среды (образ, лимиты, остановка при простое), под которыми создаются задачи. Пустые поля наследуют глобальные значения.`,add:`Добавить политику`,name:`Название`,image:`Образ`,memory:`Память`,cpu:`CPU`,pids:`Лимит PID`,workspaceSize:`Размер рабочего пространства`,idleMinutes:`Остановка при простое (минуты)`,networkDefault:`Сеть по умолчанию`,networkInherit:`Наследовать умолчание`,networkOn:`Включена`,networkOff:`Отключена`,save:`Сохранить`,cancel:`Отмена`,edit:`Изменить политику`,delete:`Удалить политику`,deleteConfirm:`Удалить эту политику? Задачи, использующие её, вернутся к глобальным значениям.`,empty:`Политик пока нет. Задачи используют глобальные настройки среды.`,saved:`Политика Work сохранена`,deleted:`Политика Work удалена`,failed:`Не удалось сохранить политику Work`,invalidNumber:`Лимит PID и остановка при простое должны быть числами.`},modelAccess:{title:`Загрузка моделей`,description:`Разрешить всем активным пользователям загружать модели из Ollama и браузера Hugging Face. Администраторы всегда могут загружать модели.`,saved:`Доступ к загрузке моделей обновлён`,saveFailed:`Не удалось обновить доступ к загрузке моделей`},webSearchAccess:{title:`Веб-поиск`,description:`Разрешить всем активным пользователям использовать веб-поиск в чатах и задачах Work. Администраторы всегда могут им пользоваться. Движок настраивается в Настройки > Поиск.`,saved:`Доступ к веб-поиску обновлён`,saveFailed:`Не удалось обновить доступ к веб-поиску`},agentAccess:{title:`Агенты`,description:`Предоставить администраторам раздел «Агенты» (Libre Claw). CLI агентов выполняются на хосте от имени пользователя сервера, вне песочницы Work.`,saved:`Доступ к агентам обновлён`,saveFailed:`Не удалось обновить доступ к агентам`,lockedByEnv:`Закреплено переменной окружения AGENT_CLI_MODELS_ENABLED.`}},chatHistory:{label:`История разговора`,jumpToTurn:`Перейти к реплике {{index}} из {{total}}`},chatMessage:{you:`Вы`,assistant:`Ассистент`,system:`Система`,copy:`Копировать`,copyMessage:`Копировать сообщение`,copied:`Скопировано!`,regenerate:`Пересоздать`,regenerateResponse:`Пересоздать ответ`,edit:`Редактировать`,editSystemMessage:`Редактировать системное сообщение`,saveChanges:`Сохранить изменения`,cancelEditing:`Отменить редактирование`,saveAndSubmit:`Сохранить и отправить`,goodResponse:`Хороший ответ`,badResponse:`Плохой ответ`,delete:`Удалить`,deleteConfirm:`Удалить это сообщение?`,branch:`Ветка`,speaking:`Озвучивание...`,speakMessage:`Озвучить сообщение`,stopSpeaking:`Остановить озвучивание`,showMore:`Показать больше`,showLess:`Показать меньше`,thinking:`Думает`,thoughtFor:`Думал {{duration}}`,hiddenLines:`Скрыто строк: {{count}}`,systemMessagePlaceholder:`Введите ваше системное сообщение...`,fullSizeImage:`Изображение в полном размере`,startConversation:`Начать разговор`,startConversationDescription:`Отправьте сообщение, чтобы начать общение с вашим ИИ-ассистентом. Задавайте вопросы, получайте помощь с кодом или ведите обычный разговор.`,scrollToBottom:`Прокрутить вниз`,newMessages:`Новые сообщения`},imageGallery:{title:`Галерея изображений`,noImages:`Изображений пока нет`,noImagesHint:`Создайте первое изображение с помощью панели справа`,delete:`Удалить`,download:`Скачать`,deleteConfirm:`Вы уверены, что хотите удалить это изображение?`,deleteSuccess:`Изображение удалено`,deleteFailed:`Не удалось удалить изображение`,downloadFailed:`Не удалось скачать изображение`,loadMore:`Загрузить ещё ({{current}} из {{total}})`,loadFailed:`Не удалось загрузить галерею`},imageGeneration:{title:`Создать изображение`,prompt:`Промпт`,promptPlaceholder:`Опишите изображение, которое хотите создать...`,model:`Модель`,selectModel:`Выберите модель`,noModels:`Модели генерации изображений недоступны`,configurePlugin:`Настройте плагин с поддержкой генерации изображений`,size:`Размер`,quality:`Качество`,style:`Стиль`,generate:`Создать`,generating:`Создание...`,success:`Изображение успешно создано`,failed:`Не удалось создать изображение`,enterPrompt:`Пожалуйста, введите промпт`,promptTooLong:`Промпт превышает максимальную длину в {{max}} символов`},errorBoundary:{title:`Что-то пошло не так`,description:`Произошла непредвиденная ошибка. Попробуйте обновить страницу.`,tryAgain:`Обновить страницу`,goHome:`На главную`,errorDetails:`Детали ошибки (Разработка)`},documents:{title:`Документы`,upload:`Загрузить документ`,uploading:`Загрузка...`,noDocuments:`Документы не загружены`,uploadHint:`Загрузите документы для использования в разговорах`,delete:`Удалить`,deleteConfirm:`Вы уверены, что хотите удалить этот документ?`,deleteSuccess:`Документ удалён`,deleteFailed:`Не удалось удалить документ`,uploadSuccess:`Документ успешно загружен`,uploadFailed:`Не удалось загрузить документ`,types:`Поддерживаются: PDF, TXT, MD, DOCX`,unsupportedFileType:`Поддерживаются только файлы PDF и TXT`,fileSizeTooLarge:`Размер файла должен быть менее 10 МБ`,uploadSuccessWithName:`Документ "{{name}}" успешно загружен`,removeSuccess:`Документ успешно удалён`,removeFailed:`Не удалось удалить документ`,removeError:`Произошла ошибка при удалении документа`,clickToUpload:`Нажмите для загрузки`,orDragAndDrop:`или перетащите`,fileTypesAndSize:`Файлы PDF или TXT до 10 МБ`,uploadedDocuments:`Загруженные документы`,removeDocument:`Удалить документ`},ttsButton:{speak:`Озвучить`,stop:`Стоп`,speaking:`Озвучивание...`,generateFailed:`Не удалось сгенерировать речь`,playbackFailed:`Ошибка воспроизведения аудио`,stopSpeaking:`Остановить озвучивание`,generatingSpeech:`Генерация речи...`,readAloud:`Читать вслух`},artifacts:{title:`Артефакты`,code:`Код`,preview:`Предпросмотр`,copy:`Копировать код`,copied:`Скопировано!`,download:`Скачать`,expand:`Развернуть`,collapse:`Свернуть`,openInNewTab:`Открыть в новой вкладке`,invalidSvg:`Недопустимое содержимое SVG`,invalidJson:`Недопустимое содержимое JSON`,previewMode:`Режим предпросмотра`,codeMode:`Режим кода`,copyContent:`Копировать содержимое`,openInPanel:`Открыть в панели`,openInNewWindow:`Открыть в новом окне`,created:`Создано`,closePanelEsc:`Закрыть панель (Esc)`,copyButton:`Копировать`,open:`Открыть`,dragEdgeToResize:`Перетащите край для изменения размера`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Версия {{current}} из {{total}}`,previousVersion:`Предыдущая версия`,nextVersion:`Следующая версия`},personaImportExport:{title:`Импорт и экспорт персон`,description:`Экспортируйте персоны для обмена или импортируйте персоны от других`,exportPersonas:`Экспорт персон`,importPersonas:`Импорт персон`,noPersonasToExport:`Нет персон для экспорта`,personasAvailable:`Доступно {{count}} персона`,personasAvailable_plural:`Доступно {{count}} персон`,exportAll:`Экспортировать всё`,uploadJsonFile:`Загрузить JSON-файл`,pasteJsonLabel:`Вставить данные JSON`,pasteJsonPlaceholder:`Вставьте данные персоны в формате JSON...`,importing:`Импорт...`,importButton:`Импортировать персону(ы)`,expectedFormat:`Ожидаемый формат JSON:`,exportSuccess:`Персона "{{name}}" успешно экспортирована`,exportFailed:`Не удалось экспортировать персону`,exportAllSuccess:`Все {{count}} персон успешно экспортированы`,exportAllFailed:`Не удалось экспортировать персоны`,pasteJsonData:`Пожалуйста, вставьте данные персоны в формате JSON`,importMultipleSuccess:`Успешно импортировано {{count}} персон`,importMultipleFailed:`Не удалось импортировать {{count}} персон`,importNoneFailed:`Не удалось импортировать ни одну персону`,importSuccess:`Персона успешно импортирована`,importFailed:`Не удалось импортировать персону`},generationStats:{details:`Подробности`,promptTokens:`Токены промпта:`,generatedTokens:`Сгенерированные токены:`,totalTokens:`Всего токенов:`,speed:`Скорость:`,promptEval:`Оценка промпта:`,generation:`Генерация:`,modelLoad:`Загрузка модели:`,totalTime:`Общее время:`,generatedAt:`Сгенерировано в:`},userMenu:{loggedOut:`Вы вышли из системы`,pictureUpdated:`Фото профиля обновлено`,failedUpdateAvatar:`Не удалось обновить аватар`,failedUpdatePicture:`Не удалось обновить фото профиля`,noEmail:`Email не указан`,changePicture:`Изменить фото`,settings:`Настройки`,userManagement:`Управление пользователями`,signOut:`Выйти`,changeProfilePicture:`Изменить фото профиля`},pluginManager:{title:`Менеджер плагинов`,upload:`Загрузить`,addJson:`Добавить JSON`,browseHF:`Обзор HF Hub`,confirmDelete:`Вы уверены, что хотите удалить этот плагин?`,uploading:`Загрузка плагина...`,pasteJson:`Вставьте JSON плагина сюда...`,installPlugin:`Установить плагин`,loading:`Загрузка плагинов...`,noPlugins:`Нет установленных плагинов`,noPluginsDescription:`Загрузите файл плагина или добавьте плагин из JSON.`,active:`Активен`,id:`ID`,endpoint:`Эндпоинт`,activate:`Активировать`,deactivate:`Деактивировать`,activePlugin:`Активный плагин`,activePluginDescription:`Все запросы чата будут направляться через этот плагин`,variables:{title:`Переменные`,save:`Сохранить`,saving:`Сохранение...`,saved:`Переменные сохранены`,saveFailed:`Не удалось сохранить переменные`,resetDefaults:`Сбросить по умолчанию`,reset:`Переменные сброшены`,sensitiveSet:`Значение задано (введите новое для изменения)`,resetFailed:`Не удалось сбросить переменные`,showValue:`Показать значение {{label}}`,hideValue:`Скрыть значение {{label}}`,connection:`Подключение`,advanced:`Расширенные параметры`,inherited:`Использовать значение по умолчанию`,inheritedValue:`Использовать значение по умолчанию ({{value}})`,enabled:`Включено`,disabled:`Отключено`,required:`Требуется указать значение`,fullApiEndpoint:`Полный URL конечной точки API`,endpointHelp:`Введите полный URL запроса, включая путь операции (например, /v1/chat/completions), а не только базовый URL провайдера.`,invalidUrl:`Введите действительный полный URL конечной точки API, например https://provider.example/v1/chat/completions`,insecureUrl:`Конечные точки API должны использовать HTTP или HTTPS.`,httpWarning:`HTTP не шифрует учетные данные или трафик. Используйте его только в доверенной сети.`,invalidBaseUrl:`Базовые URL не могут содержать строку запроса или фрагмент.`,invalidApiPath:`Должен начинаться с / и не содержать URL, запрос, фрагмент или сегмент ..`,tooLong:`Значение слишком длинное`}},huggingface:{title:`Браузер моделей HuggingFace`,subtitle:`Просматривайте и выбирайте модели из Hub`,searchPlaceholder:`Поиск моделей...`,filters:`Фильтры`,task:`Задача`,sortBy:`Сортировать по`,noModels:`Модели не найдены`,adjustSearch:`Попробуйте изменить поисковый запрос или фильтры`,gated:`Ограниченный`,selected:`Выбрано`,select:`Выбрать`,refresh:`Обновить`,modelsFound:`моделей найдено`},demoMode:{title:`Демо-режим`,github:`GitHub`},personaBackground:{label:`Фоновое изображение`,uploadBackgroundImage:`Загрузить фоновое изображение`,dragAndDrop:`Перетащите изображение или нажмите для выбора`,chooseImage:`Выбрать изображение`,uploading:`Загрузка...`,enterImageUrl:`Или введите URL изображения`,supportedFormats:`Поддерживает: JPG, PNG, GIF, WebP (макс. 5МБ). Широкие альбомные изображения подходят лучше.`,customBackground:`Пользовательское фоновое изображение`,clickToChange:`Нажмите для изменения или удаления`,removed:`Фон удален`,uploaded:`Фон успешно загружен`,invalidFile:`Пожалуйста, выберите действительный файл изображения`,fileTooLarge:`Размер фонового изображения должен быть менее 5МБ`,readFailed:`Не удалось прочитать файл изображения`,uploadFailed:`Не удалось загрузить фоновое изображение`},modelSelector:{searchInstalled:`Поиск установленных моделей...`,searchOllama:`Поиск в библиотеке Ollama...`,searchHuggingFace:`Поиск на HuggingFace...`,selectModel:`Выбрать модель`,personas:`Персоны`,ollamaModels:`Модели Ollama`,pluginModels:`Модели плагинов`,actions:`Действия`,installed:`Установлено`,use:`Использовать`,pull:`Загрузить`,pullRestricted:`Установка моделей в этом экземпляре доступна только администраторам.`,adminOnlyPull:`Только администраторы`,legacyProvider:`провайдер не записан`,providerNotRecorded:`Провайдер не записан`,providerUnavailable:`провайдер недоступен`,reselectProvider:`заново выберите провайдера, чтобы закрепить модель`,unavailable:`недоступно`,unavailableSelections:`Недоступные варианты`,agentModels:`Агенты`},libreClaw:{title:`Агенты`,subtitle:`Запуск локального агента, утверждения, расписания, память, инструменты и использование.`,dashboard:`Панель управления`,connection:{disconnectedTitle:`Демон Libre Claw не подключен`,disconnectedDescription:`Запустите его локально с <command>libre-claw start</command> или установите <env>LIBRE_CLAW_BASE_URL</env> во внутренней среде.`},status:{connected:`Подключено`,disconnected:`Отключено`,activeRuns:`{{count}} активен`,activeRuns_plural:`{{count}} активен`},states:{queued:`В очереди`,running:`Выполняется`,blocked:`Заблокировано`,done:`Готово`,failed:`Не удалось`,cancelled:`Отменено`},startRun:{title:`Запустить выполнение агента`,placeholder:`Попросите Libre Claw проверить репозиторий, исправить ошибку, выполнить проверку, запланировать отчет...`,chatRun:`Бег в чате`,goalMode:`Режим цели`,providerOverride:`Переопределение поставщика`,modelOverride:`Переопределение модели`,run:`Запустить`},modelRoute:{title:`Модельный маршрут`,providerPlaceholder:`поставщик`,modelPlaceholder:`модель`,persistGlobal:`Сохранять глобальную конфигурацию Libre Claw`,saveModel:`Сохранить модель`,theme:`Тема Libre Claw`,saveTheme:`Сохранить тему`},runs:{title:`Запуски`,empty:`Запусков Libre Claw пока нет.`},timeline:{title:`Хронология выполнения`,empty:`Выберите запуск, чтобы просмотреть его события.`,streaming:`Потоковая передача...`,assistantResponse:`Ответ Ассистента`,resultOk:`ок`,resultError:`ошибка`,labels:{userMessage:`Сообщение пользователя`,toolCall:`Вызов инструмента`,toolResult:`Результат инструмента`,approvalRequest:`Запрос на одобрение`,approvalResponse:`Ответ на одобрение`,runStarted:`Запуск начат`,runFinished:`Запуск завершен`,usage:`Использование`,error:`Ошибка`}},approvals:{needed:`Требуется одобрение`,allowOnce:`Разрешить один раз`,alwaysAllowTool:`Всегда разрешать инструмент`,deny:`Отклонить`,toolApprovalRequested:`Требуется одобрение инструмента`},automations:{title:`Автоматизация`,namePlaceholder:`Имя`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Подсказка автоматизации`,create:`Создать`,empty:`Никакой запланированной автоматизации Libre Claw.`,runNow:`Запустить сейчас`,pause:`Пауза`,resume:`Возобновить`,routes:{report:`Отчет`,telegram:`Telegram`},status:{active:`Активный`,paused:`Приостановлено`}},usageFallback:{title:`Использование и резервный вариант`,usage:`Использование`,fallbackRoute:`Резервный маршрут`,noUsage:`Записей об использовании пока нет.`},metrics:{provider:`Поставщик`,model:`Модель`,input:`Ввод`,output:`Выход`,cached:`Кэшированный`,reasoning:`Рассуждение`,cost:`Стоимость`,tool:`Инструмент`,resolution:`Разрешение`,state:`Состояние`,stopReason:`Причина остановки`,tokens:`{{formatted}} жетон`,tokens_plural:`{{formatted}} жетоны`},fallbacks:{tool:`инструмент`,unknown:`неизвестно`,resolved:`решено`,unknownError:`Неизвестная ошибка`},toasts:{loadStatusFailed:`Не удалось загрузить статус Libre Claw.`,enterTask:`Введите задачу на Libre Claw`,runStarted:`Запуск Libre Claw начат`,startRunFailed:`Не удалось запустить Libre Claw`,runCancelled:`Запуск отменен`,cancelRunFailed:`Не удалось отменить запуск`,approved:`Утверждено`,denied:`Отказано`,resolvePermissionFailed:`Не удалось разрешить разрешение`,providerModelRequired:`Требуется поставщик и модель.`,modelUpdated:`Модель Libre Claw обновлена`,updateModelFailed:`Не удалось обновить модель`,themeUpdated:`Тема Libre Claw обновлена`,updateThemeFailed:`Не удалось обновить тему`,automationRequired:`Укажите название автоматизации, расписание и подсказку.`,automationCreated:`Автоматизация создана`,createAutomationFailed:`Не удалось создать автоматизацию`,automationUpdated:`Автоматизация обновлена`,updateAutomationFailed:`Не удалось обновить автоматизацию`}},work:JSON.parse(`{"title":"Работа","subtitle":"Изолированные рабочие пространства моделей","tasks":{"title":"Задачи","subtitle":"Постоянные локальные рабочие пространства","new":"Новая задача","emptyTitle":"Пока нет рабочих задач","empty":"После отправки первого сообщения ваши рабочие задачи появятся здесь.","untitled":"Задача без названия","actions":"Действия с задачей","delete":"Удалить задачу","deleteNamed":"Удалить «{{title}}»","deleteConfirm":"Удалить «{{title}}» и её рабочее пространство навсегда?","close":"Закрыть список задач","open":"Открыть список задач","rename":"Название задачи","loading":"Загрузка задачи…","notFound":"Эта рабочая задача недоступна","back":"Начать новую задачу","status":"Статус: {{status}}"},"landing":{"title":"Начать новую рабочую задачу","description":"Предоставьте локальной модели или модели настроенного провайдера постоянное изолированное рабочее пространство. Она сможет просматривать файлы, запускать инструменты и продолжить с места остановки, когда вы вернётесь.","isolated":"Изоляция","isolatedBody":"У каждой задачи собственный контейнер и собственные файлы.","durable":"Сохранность","durableBody":"Вернитесь к разговору и рабочему пространству позже.","controlled":"Контроль","controlledBody":"Среда выполнения и файлы задачи остаются изолированными от хоста."},"composer":{"placeholder":"Опишите, что вы хотите создать или изменить…","model":"Рабочая модель","noModels":"Нет моделей, совместимых с режимом «Работа»","cancel":"Остановить","send":"Запустить","hint":"Каждая задача хранит собственные файлы и историю. Проверяйте результаты модели перед использованием.","remoteTitle":"Удалённый провайдер","remoteHint":"Разговор и результаты инструментов отправляются в настроенный сервис. Один автономный запуск может несколько раз обратиться к провайдеру, что может повлечь расходы. Файлы рабочего пространства остаются локальными, если только инструмент не возвращает их содержимое.","remoteDismiss":"Скрыть","remoteDismissLabel":"Скрыть уведомление об удалённом провайдере","remoteDismissFailed":"Не удалось сохранить настройку удалённого провайдера.","noModelSelected":"Не выбрана модель, совместимая с режимом «Работа»."},"conversation":{"ready":"Рабочее пространство готово","empty":"Продолжите задачу ниже. Этот разговор и его файлы остаются привязанными к данному рабочему пространству.","loadOlder":"Загрузить предыдущие сообщения"},"status":{"preparing":"Подготовка изолированного рабочего пространства…","running":"Работа в локальном рабочем пространстве…"},"statusLabels":{"idle":"Ожидание","thinking":"Думает","complete":"Завершено","needsInput":"Требуется ввод","error":"Ошибка"},"live":{"connecting":"Подключение к обновлениям в реальном времени…","reconnecting":"Повторное подключение к обновлениям в реальном времени…","unavailable":"Обновления в реальном времени недоступны","newActivity":"Новая активность","skillsLoaded":"Навыки рабочего пространства · {{count}}"},"runtime":{"unavailable":"Среда выполнения недоступна","ready":"Среда выполнения готова","readyOllama":"Docker готов","readyPlugin":"Docker и плагин готовы","readyHybrid":"Docker и модели готовы","reason":"Требуется Docker и доступный провайдер модели Ollama или плагина."},"workspace":{"label":"Режимы рабочего пространства","files":"Файлы","activity":"Активность","preview":"Предпросмотр","resize":"Изменить размеры разговора и рабочего пространства","resizeHint":"Перетащите, чтобы изменить размер. Для точной настройки используйте клавиши со стрелками. Дважды щёлкните или нажмите Enter, чтобы сбросить.","splitSize":"Разговор {{conversation}}%, рабочее пространство {{workspace}}%","terminal":"Терминал","git":"Git"},"files":{"discard":"Отменить несохранённые изменения файла?","leaveWithDraft":"Покинуть этот файл? Несохранённое изменение останется в браузере как черновик.","up":"Родительская папка","back":"Назад к файлам","empty":"В этой папке пока нет файлов.","select":"Выберите файл, чтобы просмотреть и изменить его.","editorLabel":"Редактор файла: {{path}}","format":"Форматировать","formatted":"Код отформатирован.","formatFailed":"Не удалось отформатировать этот файл.","formatShortcut":"Форматировать (Shift+Alt+F)","formatTooLarge":"Форматирование доступно только для файлов до 100 000 символов и 4 000 строк.","formatUnsupported":"Форматирование недоступно для этого типа файлов.","saveShortcut":"Сохранить (⌘/Ctrl+S)","highlightPaused":"Для больших файлов подсветка в реальном времени приостановлена, чтобы редактор работал быстро.","plainTextLarge":"Обычный текст · большой файл","changes":"Изменения","changesSince":"Что изменилось с последнего хода","diffLabel":"Изменения с последнего хода: {{path}}","diffFolded":"{{count}} строк без изменений"},"activity":{"empty":"Здесь появятся команды, операции с файлами и результаты инструментов.","toolActivity":"Активность инструментов","details":"Подробности","kinds":{"message":"Сообщение","toolCall":"Вызов инструмента","toolResult":"Результат инструмента","error":"Ошибка"}},"preview":{"command":"Необязательная команда запуска","start":"Запустить предпросмотр","stop":"Остановить предпросмотр","open":"Открыть","starting":"Запуск предпросмотра…","frameTitle":"Предпросмотр рабочего пространства","failed":"Не удалось запустить предпросмотр. Проверьте Активность и попробуйте другую команду.","empty":"Запустите приложение в этом рабочем пространстве, чтобы просмотреть его здесь."},"mobile":{"surface":"Область задачи","conversation":"Разговор","workspace":"Рабочее пространство"},"toasts":{"runFailed":"Не удалось запустить рабочую задачу.","updateFailed":"Не удалось обновить эту задачу.","renameFailed":"Не удалось переименовать эту задачу.","cancelled":"Запуск рабочей задачи остановлен.","cancelFailed":"Не удалось остановить запуск рабочей задачи.","deleteFailed":"Не удалось удалить эту рабочую задачу.","saveFailed":"Не удалось сохранить этот файл.","saved":"Файл сохранён.","previewFailed":"Не удалось запустить предпросмотр.","previewStopFailed":"Не удалось остановить предпросмотр."},"terminal":{"connecting":"Открывается оболочка в песочнице…","closed":"Сеанс терминала завершён.","failed":"Не удалось запустить сеанс терминала.","reconnect":"Переподключиться","unavailable":"Интерактивный терминал недоступен в этой установке.","blockedByRun":"Модель использует этот контейнер. Терминал откроется после завершения хода.","taskRunning":"Выполняется ход модели"},"policy":{"label":"Политика среды","default":"По умолчанию (глобальные лимиты)"},"git":{"actionFailed":"Действие Git не выполнено.","blockedByPreview":"Остановите предпросмотр перед изменением состояния Git.","blockedByRun":"Действия записи Git разблокируются после завершения хода модели.","branchCreated":"Создана {{name}}.","branchSwitched":"Переключено на {{name}}.","clean":"Рабочее дерево чистое.","commit":"Закоммитить подготовленные изменения","commitMessage":"Сообщение коммита","committed":"Коммит создан.","detached":"отсоединённый HEAD","diff":"Предпросмотр диффа","diffFailed":"Не удалось загрузить этот дифф.","history":"Локальная история","initialize":"Инициализировать Git","initializeDescription":"Создайте локальный репозиторий для статуса, диффов, веток и коммитов. Удалённые учётные данные не подключаются.","initialized":"Репозиторий Git инициализирован.","loadFailed":"Не удалось загрузить статус Git.","localOnly":"Только локальный Git. Push, pull и pull request требуют отдельного доверенного брокера учётных данных.","newBranch":"Новая локальная ветка","noCommits":"Коммитов пока нет.","noDiff":"Текстового диффа пока нет. Неотслеживаемые файлы появятся после подготовки.","notInitialized":"Git не инициализирован","selectChange":"Выберите изменённый файл, чтобы посмотреть его дифф.","selectPath":"Выбрать {{path}}","stageAll":"Подготовить всё","stageSelected":"Подготовить {{count}}","staged":"Изменения подготовлены.","switchBranch":"Переключить локальную ветку","changes":"Изменения","createBranch":"Создать","filterFiles":"Фильтровать изменённые файлы","noFilterMatches":"Нет изменённых файлов, соответствующих этому фильтру.","allChanges":"Все изменения","diffTruncated":"Этот diff усечён.","binaryFile":"Двоичный файл, текстовый diff недоступен."},"hostWorkspace":{"hint":"Оставьте пустым для изолированного пространства или укажите задаче папку на этой машине.","label":"Папка рабочего пространства (необязательно)","warning":"Задача может напрямую читать и записывать эту папку. Оставьте пустым для изолированного пространства."}}`),usageAnalytics:{eyebrow:`Администрирование`,title:`Использование провайдера`,description:`Отслеживайте исходящие API-вызовы и потребление моделей во всех включенных плагинах на этом экземпляре.`,days:`{{count}} дней`,refresh:`Обновить статистику использования`,loadFailed:`Не удалось загрузить статистику использования провайдера.`,metrics:{calls:`Вызовы`,tokens:`Токены`},cards:{calls:`API-вызовы`,callsDetail:`Среди {{count}} активных пользователей`,tokens:`Заявленные токены`,tokensDetail:`Использование зафиксировано в {{count}} вызовах`,success:`Успешность`,successDetail:`{{count}} неудачных вызовов`,latency:`Средняя задержка`,latencyDetail:`Общее время провайдера`},activity:{title:`Потребление с течением времени`,callsDescription:`Ежедневные исходящие запросы к включенным плагинам`,tokensDescription:`Ежедневные итоги токенов, сообщенные провайдерами`,chartLabel:`Ежедневный график {{metric}} провайдера`},models:{title:`Потребление по моделям`,description:`Модели с наибольшим трафиком за этот период.`,model:`Модель`,success:`Успех`,latency:`Задержка`},providers:{title:`Трафик включенных плагинов`},capabilities:{title:`Распределение возможностей`,characters:`{{count}} символов`,images:`{{count}} изображений`,jobs:`{{count}} видео-задач`,inputs:`{{count}} входных данных`,reportedTokens:`{{count}} сообщенных токенов`},empty:{title:`Вызовов провайдеров пока нет`,description:`Вызовы появятся здесь после того, как включенный плагин обработает запросы чата, Work, встраивания, изображения, речи, звука или видео.`},privacyNote:`Использование измеряется на сервере на границе исходящего плагина. Libre WebUI хранит провайдера, модель, время, статус и сообщенные счетчики — никогда не подсказки, ответы, конечные точки, учетные данные или тела ошибок провайдера. Итоги токенов включают только вызовы, где провайдер вернул метаданные использования.`,heatmap:{title:`Год активности`,description:`Ежедневные вызовы провайдеров за последний год, окрашенные по самой используемой модели каждого дня.`,calls:`вызовов`,noCalls:`Нет вызовов`,other:`Другие модели`,less:`Меньше`,more:`Больше`,yearTotal:`{{formatted}} вызовов за последний год`}},systemPage:{eyebrow:`Администрирование`,title:`Система`,description:`Мониторинг машины и среды выполнения, на которой размещен этот экземпляр Libre WebUI.`,updated:`Обновлено {{date}}`,refresh:`Обновить системную информацию`,loadFailed:`Не удалось загрузить системную информацию.`,cards:{uptime:`Время работы хоста`,uptimeDetail:`Работает с {{date}}`,memory:`Использовано памяти`,memoryDetail:`{{used}} из {{total}}`,freeSpace:`Свободное место`,freeSpaceDetail:`{{label}} · {{total}} всего`,containers:`Запущенные контейнеры`,containersDetail:`{{total}} контейнер(ов), известных Docker`,dockerUnavailable:`Docker недоступен`,unavailable:`Недоступно`},host:{title:`Хост и среда выполнения`,description:`Операционная система, процессор и сведения о процессе Libre WebUI.`,container:`Среда выполнения контейнеров`,native:`Локальная среда выполнения`,hostname:`Имя хоста`,operatingSystem:`Операционная система`,processor:`Процессор`,logicalCpus:`логических CPU`,loadAverage:`Средняя нагрузка · 1 / 5 / 15 мин`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Процесс`,workingDirectory:`Рабочий каталог`},memory:{title:`Память`,description:`Системная память, видимая средой выполнения, и использование памяти процессом приложения.`,usedOf:`{{used}} использовано из {{total}}`,free:`{{value}} свободной`,processRss:`RSS процесса`,heapUsed:`V8 heap использовано`,heapTotal:`V8 heap всего`,external:`Внешняя память`},storage:{title:`Хранилище`,description:`Доступное пространство для файловой системы среды выполнения и постоянных данных приложения.`,used:`{{value}} использовано`,free:`{{value}} свободной`,empty:`Информация о файловой системе недоступна в этой среде выполнения.`},docker:{title:`Docker`,description:`Статус Docker Engine только для чтения и сокращённый список контейнеров.`,connected:`Подключено`,unavailable:`Недоступно`,unavailableDetail:`Диагностика Docker Engine недоступна.`,socketStatus:`Локальный сокет: {{status}}`,mounted:`смонтирован`,notMounted:`не смонтирован`,running:`Запущенные`,stopped:`Остановленные`,paused:`Приостановленные`,total:`Всего`,version:`Версия`,host:`Хост`,architecture:`Архитектура`,cpus:`CPU`,memory:`Память`,container:`Контейнер`,image:`Образ`,state:`Состояние`,created:`Создан`,empty:`Docker подключен, и в данный момент нет ни одного контейнера в списке.`},network:{title:`Сеть`,description:`Видимые во время выполнения интерфейсы, адреса и счетчики трафика Linux.`,internal:`внутренний`,empty:`Среде выполнения приложения не видно ни одного сетевого интерфейса.`},securityNote:`Эта страница доступна только администраторам. Сервер возвращает только эксплуатационные сводки: он не раскрывает переменные среды, учетные данные, метки Docker, точки монтирования, команды контейнера или данные проверки. Когда Libre WebUI работает в контейнере, сведения о CPU и памяти на уровне хоста берутся из Docker Engine, если доступен его локальный сокет; остальные значения описывают среду выполнения приложения.`,work:{title:`Work`,description:`Песочницы всех пользователей`,access:`Доступ`,accessAdmins:`Только администраторы`,accessAllUsers:`Все пользователи`,runtimeAvailable:`Доступно`,runtimeUnavailable:`Недоступно`,activeRuntimes:`Активные среды`,pendingCleanups:`Ожидающие очистки`,orphans:`Осиротевшие контейнеры`,owner:`Владелец`,task:`Задача`,state:`Состояние`,preview:`Предпросмотр`,terminals:`Терминалы`,updated:`Обновлено`,stateRunning:`Выполняется`,stateStopped:`Остановлено`,stateStarting:`Запускается`,stateUnknown:`Неизвестно`,noTasks:`Задач Work пока нет.`}},mediaGeneration:{title:`Генерация медиа`,description:`Создавайте видео, звук, музыку или речь с помощью активированного провайдера медиа.`,image:`Изображение`,video:`Видео`,audio:`Аудио`,sound:`Звук`,speech:`Речь`,model:`Модель`,voice:`Голос или ID голоса`,resolution:`Разрешение`,aspectRatio:`Соотношение сторон`,duration:`Длительность`,providerDefault:`По умолчанию у провайдера`,generateAudio:`Генерировать аудио вместе с видео, если поддерживается`,prompt:`Запрос`,text:`Текст для озвучивания`,videoPlaceholder:`Опишите сцену, движение, камеру и освещение...`,audioPlaceholder:`Введите текст, который должен озвучить голос...`,soundPlaceholder:`Опишите звук, музыку, атмосферу или желаемый голосовой ответ...`,generate:`Сгенерировать`,generating:`Генерация… это может занять несколько минут`,success:`Медиа сгенерировано и сохранено в Imagine`,failed:`Не удалось сгенерировать медиа`,loadFailed:`Не удалось загрузить провайдеров медиа`,noModels:`Нет доступных моделей {{kind}}. Сначала активируйте совместимый провайдер и сохраните его учетные данные.`},mediaGallery:{itemCount:`{{count}} элементов`,empty:`Сгенерированных медиа пока нет`,emptyHint:`Сгенерируйте изображение, видео или голосовой клип, и они появятся здесь.`,filters:{all:`Все`,image:`Изображения`,video:`Видео`,audio:`Аудио`}},whatsNew:{title:`Что нового`,releaseNotes:`Примечания к выпуску`,cta:`Хорошо, поехали`},notes:{title:`Заметки`,new:`Новая заметка`,untitled:`Без названия`,empty:`Заметок пока нет`,selectOrCreate:`Выберите заметку или создайте новую`,contentPlaceholder:`Пишите в Markdown…`,saved:`Сохранено`,saveFailed:`Не удалось сохранить заметку`,createFailed:`Не удалось создать заметку`,deleteConfirm:`Удалить эту заметку?`,deleteFailed:`Не удалось удалить заметку`},home:{active:`активно`,continue:`Продолжить`,start:`Начать`,explore:`Обзор`},palette:{empty:`Совпадений нет.`,placeholder:`Поиск по чатам, Work, действиям…`,toggleTheme:`Переключить тему`,actions:`Действия`,chats:`Чаты`,search:`Поиск`,settings:`Настройки`,work:`Работа`},tabs:{actions:`Действия вкладки`,close:`Закрыть вкладку`,closeAll:`Закрыть все вкладки`,closeOthers:`Закрыть другие вкладки`,closeRight:`Закрыть вкладки справа`,home:`Главная`,label:`Открытые вкладки`,new:`Новая вкладка`,newWork:`Новый Work`,chat:`Чат`,newChat:`Новый чат`,work:`Работа`}};export{e as default};
|
|
@@ -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.`,enterBoth:`Ange både användarnamn och lösenord`,githubSuccess:`GitHub-inloggningen lyckades!`,githubFailed:`GitHub-autentiseringen misslyckades`,githubVerifyFailed:`Kunde inte verifiera GitHub-autentiseringen`,approvalPending:`Ditt konto väntar på administratörsgodkännande.`,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!`,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`,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`},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.`}}},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`,fillAllFields:`Fyll i alla fält`,note:`Detta blir det primära administratörskontot för din Libre WebUI-instans`,approvalUnexpected:`Den initiala administratören kunde inte aktiveras. Försök igen.`},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`,webSearchOn:`Webbsökning på — svar använder live-resultat`,webSearchOff:`Sök på webben för det här meddelandet`},session:{new:`Ny chatt`,work:`Arbete`,chat:`Chatt`,private:`Privat`,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`,incognito:`Inkognitochatt`,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`}},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`}},sidebar:{navigation:{chat:`Chatt`,models:`Modeller`,personas:`Personas`,imagine:`Skapa bild`,settings:`Inställningar`,userManagement:`Användarhantering`,signOut:`Logga ut`,agents:`Agenter`,work:`Arbete`,exploreLabel:`Utforska`,usageAnalytics:`Leverantörsanvändning`,system:`System`,notes:`Anteckningar`},toggleSize:`Växla sidofältets storlek`,expandSidebar:`Expandera sidofältet`},user:{menu:{changePicture:`Ändra bild`,settings:`Inställningar`,userManagement:`Användarhantering`,logout:`Logga ut`,usageAnalytics:`Leverantörsanvändning`,system:`System`},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"},"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","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"},"persona":"Persona","updatingModel":"Uppdaterar {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} av {{total}} modeller","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."},"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","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","apiKeyEnvAlternative":"Alternativt, ställ in","environmentVariable":"miljövariabel","apiKeyConfigured":"API-nyckel konfigurerad","apiKeyPlaceholder":"Ange din API-nyckel...","saveApiKey":"Spara API-nyckel","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","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.","apiKeyDescription":"Lagra en personlig API-nyckel för {{name}}.","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"},"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.","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","advancedSettings":"Avancerade genereringsinställningar","advancedSettingsDescription":"Sampling, token-gränser, kontext, straff och stoppsekvenser"},"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."}},"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":"Strömma meningar","streamSentencesDescription":"Spela upp ljud mening för mening istället för att vänta på hela meddelandet. Rekommenderas för lokal TTS för att undvika timeout vid långa meddelanden.","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","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 all din data inklusive inställningar, sessioner och dokument.","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","skipDuplicates":"Hoppa över dubbletter","overwrite":"Skriv över befintliga","importResults":"Importresultat","preferences":"Inställningar","imported":"Importerade","failed":"Misslyckades","sessions":"Sessioner","importedLabel":"importerade","skipped":"hoppades över","documents":"Dokument","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","ollama":"Ollama","ollamaDescription":"Läs mer om Ollama","documentation":"Dokumentation","reportIssue":"Rapportera problem","reportIssueDescription":"Felrapporter och funktionsförfrågningar","gitlab":"GitLab-spegel","gitlabDescription":"Självhostat GitLab-förråd","documentationDescription":"Guider, handledningar och API-referens"},"version":"Version {{version}}"},"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-10.","maxResultsInvalid":"Resultat per sökning måste vara mellan 1 och 10.","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"}}`),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`,running:`Aktiva modeller`,local:`Lokala modeller`,advanced:`Avancerade åtgärder`,huggingface:`HuggingFace Hub`},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`},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`}},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`}}},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`,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`},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`},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.`}},chatHistory:{label:`Konversationshistorik`,jumpToTurn:`Gå till tur {{index}} av {{total}}`},chatMessage:{you:`Du`,assistant:`Assistent`,system:`System`,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`},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`,generatingSpeech:`Genererar tal...`,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`,sensitiveSet:`Värde är satt (ange nytt för att ändra)`,resetFailed:`Det gick inte att återställa variabler`,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`},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`},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.`}},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`,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.`}},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`,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`,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`}},whatsNew:{title:`Nyheter`,releaseNotes:`Versionsinformation`,cta:`Okej, nu kör vi`},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`},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};
|