libre-webui 0.26.0 → 0.28.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 +57 -29
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +7 -0
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/persistence/postgresAutomationWorkTargetMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresAutomationWorkTargetMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresAutomationWorkTargetMigration.js +44 -0
- package/backend/dist/persistence/postgresAutomationWorkTargetMigration.js.map +1 -0
- package/backend/dist/persistence/postgresMfaPushRecoveryMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresMfaPushRecoveryMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js +107 -0
- package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js.map +1 -0
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +8 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresResourceRepositories.js +179 -4
- package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresSecurityRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresSecurityRepositories.js +154 -0
- package/backend/dist/persistence/postgresSecurityRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresWorkComputerMigration.d.ts +8 -0
- package/backend/dist/persistence/postgresWorkComputerMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresWorkComputerMigration.js +37 -0
- package/backend/dist/persistence/postgresWorkComputerMigration.js.map +1 -0
- package/backend/dist/persistence/postgresWorkTakeoverMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresWorkTakeoverMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresWorkTakeoverMigration.js +38 -0
- package/backend/dist/persistence/postgresWorkTakeoverMigration.js.map +1 -0
- package/backend/dist/persistence/resourceTypes.d.ts +64 -0
- package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
- package/backend/dist/persistence/resourceTypes.js.map +1 -1
- package/backend/dist/persistence/securityTypes.d.ts +60 -0
- package/backend/dist/persistence/securityTypes.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.d.ts +4 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +267 -0
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.js +151 -7
- package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteSecurityRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteSecurityRepositories.js +140 -0
- package/backend/dist/persistence/sqliteSecurityRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +45 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.d.ts +2 -0
- package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.js +2 -0
- package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.js +152 -2
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +7 -3
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -1
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +8 -4
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -1
- package/backend/dist/platform/workPersistence/types.d.ts +2 -0
- package/backend/dist/platform/workPersistence/types.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/types.js.map +1 -1
- package/backend/dist/routes/auth.d.ts.map +1 -1
- package/backend/dist/routes/auth.js +427 -5
- package/backend/dist/routes/auth.js.map +1 -1
- package/backend/dist/routes/automations.d.ts.map +1 -1
- package/backend/dist/routes/automations.js +5 -0
- package/backend/dist/routes/automations.js.map +1 -1
- package/backend/dist/routes/documents.d.ts.map +1 -1
- package/backend/dist/routes/documents.js +4 -0
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/push.d.ts +3 -0
- package/backend/dist/routes/push.d.ts.map +1 -0
- package/backend/dist/routes/push.js +105 -0
- package/backend/dist/routes/push.js.map +1 -0
- package/backend/dist/routes/recovery.d.ts +3 -0
- package/backend/dist/routes/recovery.d.ts.map +1 -0
- package/backend/dist/routes/recovery.js +83 -0
- package/backend/dist/routes/recovery.js.map +1 -0
- package/backend/dist/routes/users.d.ts.map +1 -1
- package/backend/dist/routes/users.js +35 -0
- 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 +205 -1
- package/backend/dist/routes/work.js.map +1 -1
- package/backend/dist/services/authService.d.ts +8 -0
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +29 -0
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
- package/backend/dist/services/automationSchedulerService.js +31 -0
- package/backend/dist/services/automationSchedulerService.js.map +1 -1
- package/backend/dist/services/automationService.d.ts +4 -1
- package/backend/dist/services/automationService.d.ts.map +1 -1
- package/backend/dist/services/automationService.js +27 -0
- package/backend/dist/services/automationService.js.map +1 -1
- package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
- package/backend/dist/services/dataArchiveService.js +3 -0
- package/backend/dist/services/dataArchiveService.js.map +1 -1
- package/backend/dist/services/documentMediaExtractionService.d.ts +40 -0
- package/backend/dist/services/documentMediaExtractionService.d.ts.map +1 -0
- package/backend/dist/services/documentMediaExtractionService.js +157 -0
- package/backend/dist/services/documentMediaExtractionService.js.map +1 -0
- package/backend/dist/services/documentService.d.ts +6 -0
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +58 -4
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/encryptionService.d.ts +6 -0
- package/backend/dist/services/encryptionService.d.ts.map +1 -1
- package/backend/dist/services/encryptionService.js +12 -0
- package/backend/dist/services/encryptionService.js.map +1 -1
- package/backend/dist/services/mfaService.d.ts +64 -0
- package/backend/dist/services/mfaService.d.ts.map +1 -0
- package/backend/dist/services/mfaService.js +262 -0
- package/backend/dist/services/mfaService.js.map +1 -0
- package/backend/dist/services/notificationService.d.ts +5 -0
- package/backend/dist/services/notificationService.d.ts.map +1 -1
- package/backend/dist/services/notificationService.js +33 -1
- package/backend/dist/services/notificationService.js.map +1 -1
- package/backend/dist/services/preferencesService.d.ts +1 -1
- package/backend/dist/services/preferencesService.d.ts.map +1 -1
- package/backend/dist/services/preferencesService.js +1 -0
- package/backend/dist/services/preferencesService.js.map +1 -1
- package/backend/dist/services/recoveryDrillService.d.ts +57 -0
- package/backend/dist/services/recoveryDrillService.d.ts.map +1 -0
- package/backend/dist/services/recoveryDrillService.js +363 -0
- package/backend/dist/services/recoveryDrillService.js.map +1 -0
- package/backend/dist/services/webPushService.d.ts +71 -0
- package/backend/dist/services/webPushService.d.ts.map +1 -0
- package/backend/dist/services/webPushService.js +328 -0
- package/backend/dist/services/webPushService.js.map +1 -0
- package/backend/dist/services/webauthnService.d.ts +58 -0
- package/backend/dist/services/webauthnService.d.ts.map +1 -0
- package/backend/dist/services/webauthnService.js +301 -0
- package/backend/dist/services/webauthnService.js.map +1 -0
- package/backend/dist/services/websocketTicketService.d.ts +1 -1
- package/backend/dist/services/websocketTicketService.d.ts.map +1 -1
- package/backend/dist/services/websocketTicketService.js +3 -1
- package/backend/dist/services/websocketTicketService.js.map +1 -1
- package/backend/dist/services/workAgentGuidance.d.ts +14 -0
- package/backend/dist/services/workAgentGuidance.d.ts.map +1 -1
- package/backend/dist/services/workAgentGuidance.js +38 -2
- package/backend/dist/services/workAgentGuidance.js.map +1 -1
- package/backend/dist/services/workAgentService.d.ts +9 -0
- package/backend/dist/services/workAgentService.d.ts.map +1 -1
- package/backend/dist/services/workAgentService.js +503 -13
- package/backend/dist/services/workAgentService.js.map +1 -1
- package/backend/dist/services/workComputerSetupService.d.ts +33 -0
- package/backend/dist/services/workComputerSetupService.d.ts.map +1 -0
- package/backend/dist/services/workComputerSetupService.js +164 -0
- package/backend/dist/services/workComputerSetupService.js.map +1 -0
- package/backend/dist/services/workComputerTeachService.d.ts +105 -0
- package/backend/dist/services/workComputerTeachService.d.ts.map +1 -0
- package/backend/dist/services/workComputerTeachService.js +513 -0
- package/backend/dist/services/workComputerTeachService.js.map +1 -0
- package/backend/dist/services/workKubernetesDriver.d.ts +8 -0
- package/backend/dist/services/workKubernetesDriver.d.ts.map +1 -1
- package/backend/dist/services/workKubernetesDriver.js +22 -0
- package/backend/dist/services/workKubernetesDriver.js.map +1 -1
- package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
- package/backend/dist/services/workModelProviderService.js +102 -8
- package/backend/dist/services/workModelProviderService.js.map +1 -1
- package/backend/dist/services/workPolicyService.d.ts +8 -0
- package/backend/dist/services/workPolicyService.d.ts.map +1 -1
- package/backend/dist/services/workPolicyService.js +25 -0
- package/backend/dist/services/workPolicyService.js.map +1 -1
- package/backend/dist/services/workRuntimeDriver.d.ts +32 -0
- package/backend/dist/services/workRuntimeDriver.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeDriver.js +54 -8
- package/backend/dist/services/workRuntimeDriver.js.map +1 -1
- package/backend/dist/services/workRuntimeService.d.ts +212 -1
- package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeService.js +1184 -9
- package/backend/dist/services/workRuntimeService.js.map +1 -1
- package/backend/dist/services/workRuntimeShared.d.ts +11 -1
- package/backend/dist/services/workRuntimeShared.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeShared.js +24 -1
- package/backend/dist/services/workRuntimeShared.js.map +1 -1
- package/backend/dist/services/workScreenControlService.d.ts +60 -0
- package/backend/dist/services/workScreenControlService.d.ts.map +1 -0
- package/backend/dist/services/workScreenControlService.js +201 -0
- package/backend/dist/services/workScreenControlService.js.map +1 -0
- package/backend/dist/services/workTaskService.d.ts +11 -0
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js +31 -0
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/types/index.d.ts +10 -2
- 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 +13 -0
- package/backend/dist/types/work.d.ts.map +1 -1
- package/backend/dist/utils/documentExtraction.d.ts +31 -3
- package/backend/dist/utils/documentExtraction.d.ts.map +1 -1
- package/backend/dist/utils/documentExtraction.js +106 -0
- package/backend/dist/utils/documentExtraction.js.map +1 -1
- package/backend/dist/utils/toolEgress.d.ts +2 -1
- package/backend/dist/utils/toolEgress.d.ts.map +1 -1
- package/backend/dist/utils/toolEgress.js +14 -2
- package/backend/dist/utils/toolEgress.js.map +1 -1
- package/backend/dist/utils/totp.d.ts +19 -0
- package/backend/dist/utils/totp.d.ts.map +1 -0
- package/backend/dist/utils/totp.js +117 -0
- package/backend/dist/utils/totp.js.map +1 -0
- package/backend/dist/utils/webauthn.d.ts +47 -0
- package/backend/dist/utils/webauthn.d.ts.map +1 -0
- package/backend/dist/utils/webauthn.js +323 -0
- package/backend/dist/utils/webauthn.js.map +1 -0
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +9 -0
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/dist/workScreenServer.d.ts +12 -0
- package/backend/dist/workScreenServer.d.ts.map +1 -0
- package/backend/dist/workScreenServer.js +291 -0
- package/backend/dist/workScreenServer.js.map +1 -0
- package/backend/package.json +1 -1
- package/deploy/work-computer/Dockerfile +48 -0
- package/deploy/work-computer/README.md +93 -0
- package/deploy/work-computer/fonts/fonts.css +335 -0
- package/deploy/work-computer/fonts/v16-aFTR7PB1QTsUX8KYvumzEY2tbYf-Vlh3uA.woff2 +0 -0
- package/deploy/work-computer/fonts/v16-aFTR7PB1QTsUX8KYvumzEYOtbYf-Vlg.woff2 +0 -0
- package/deploy/work-computer/fonts/v16-aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2 +0 -0
- package/deploy/work-computer/fonts/v16-aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2 +0 -0
- package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggOxSvfedN62Zw.woff2 +0 -0
- package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggSxSvfedN62Zw.woff2 +0 -0
- package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggexSvfedN4.woff2 +0 -0
- package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggixSvfedN62Zw.woff2 +0 -0
- package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2 +0 -0
- package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggqxSvfedN62Zw.woff2 +0 -0
- package/deploy/work-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb54C_k3HqUtEw.woff2 +0 -0
- package/deploy/work-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb94C_k3HqUtEw.woff2 +0 -0
- package/deploy/work-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2 +0 -0
- package/deploy/work-computer/start-computer.sh +155 -0
- package/deploy/work-computer/start-page.html +251 -0
- package/deploy/work-computer/tint2rc +76 -0
- package/deploy/work-computer/wallpaper.png +0 -0
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-DGy6mo0B.js +33 -0
- package/frontend/dist/assets/index-DqLJKWF-.css +1 -0
- package/frontend/dist/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- package/frontend/dist/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
- package/frontend/dist/fonts/jetbrains-mono.css +24 -0
- package/frontend/dist/index.html +40 -18
- package/frontend/dist/js/ArtifactContainer-DvIMxleC.js +1 -0
- package/frontend/dist/js/{ArtifactDemoPage-D0JEIAbZ.js → ArtifactDemoPage-BqYskFqc.js} +1 -1
- package/frontend/dist/js/ArtifactSandboxFrame-9wuufHn6.js +111 -0
- package/frontend/dist/js/ArtifactSlideOutPanel-DXESMtPh.js +1 -0
- package/frontend/dist/js/AutomationsPage-DByxhIKj.js +1 -0
- package/frontend/dist/js/AvatarUpload-DnCGQ46o.js +1 -0
- package/frontend/dist/js/{Button-C0r3J9G_.js → Button-CpobxJ2P.js} +1 -1
- package/frontend/dist/js/CalendarPage-JywVP-9y.js +1 -0
- package/frontend/dist/js/ChannelsPage-B31rcARd.js +1 -0
- package/frontend/dist/js/ChatPage-CHXJY8m3.js +14 -0
- package/frontend/dist/js/{EvaluationsPage-Bm8FRoeX.js → EvaluationsPage-CcmB5wdF.js} +1 -1
- package/frontend/dist/js/FirstTimeSetup-DDU7SowM.js +1 -0
- package/frontend/dist/js/GalleryPage-XfX_7iCf.js +1 -0
- package/frontend/dist/js/HomePage-DAZAkoAV.js +1 -0
- package/frontend/dist/js/LibreClawPage-De0gZmbF.js +1 -0
- package/frontend/dist/js/Logo-yKM43xGa.js +1 -0
- package/frontend/dist/js/LogoMark-PmpKQOre.js +1 -0
- package/frontend/dist/js/{ModelManagerModals-DX9eT5r2.js → ModelManagerModals-hz2cZZ4a.js} +1 -1
- package/frontend/dist/js/ModelSelector-BoFehQy-.js +1 -0
- package/frontend/dist/js/NotesPage-BGPI3gG6.js +3 -0
- package/frontend/dist/js/OptimizedSyntaxHighlighter-DrejdNUm.js +1 -0
- package/frontend/dist/js/OptimizedSyntaxHighlighter-hNqZPLiB.js +1 -0
- package/frontend/dist/js/PasswordStrengthMeter-RwModpZ1.js +1 -0
- package/frontend/dist/js/PersonasPage-BkNRD2wO.js +13 -0
- package/frontend/dist/js/PluginUsagePage-Cqt7V2SQ.js +1 -0
- package/frontend/dist/js/RichMessageContent-B2QSyX-l.js +1 -0
- package/frontend/dist/js/RichMessageContent-CYEhT6uU.js +3 -0
- package/frontend/dist/js/SettingsModal-IbIvVyss.js +19 -0
- package/frontend/dist/js/{SettingsToggle-BIVyfGjl.js → SettingsToggle-3GxA96E0.js} +1 -1
- package/frontend/dist/js/ShareDialog-BoE4OVhV.js +1 -0
- package/frontend/dist/js/SystemPage-B5ecz5H3.js +1 -0
- package/frontend/dist/js/TurnstileWidget-DHU9IUM1.js +1 -0
- package/frontend/dist/js/UserManagementPage-C0VUfbMk.js +1 -0
- package/frontend/dist/js/WorkPage-EweYI5Dx.js +74 -0
- package/frontend/dist/js/api-Bbh2AHHN.js +1 -0
- package/frontend/dist/js/api-F0CnlVH8.js +14 -0
- package/frontend/dist/js/appNavigation-DqV69ohR.js +1 -0
- package/frontend/dist/js/appStore-SLLBamo2.js +2 -0
- package/frontend/dist/js/appVersion-46bF9UkF.js +1 -0
- package/frontend/dist/js/ar-C4yo7x5J.js +2 -0
- package/frontend/dist/js/artifactHtml-DDmfpcB0.js +41 -0
- package/frontend/dist/js/authStore-CcfL8T6T.js +1 -0
- package/frontend/dist/js/authStore-DlSQ1TcP.js +4 -0
- package/frontend/dist/js/axios-_ZpUYd3e.js +1 -0
- package/frontend/dist/js/bn-BeZ6d2qF.js +2 -0
- package/frontend/dist/js/chatStore-DI79tEJ-.js +3 -0
- package/frontend/dist/js/classPrivateMethodInitSpec-B31Q4d2M.js +1 -0
- package/frontend/dist/js/{config-8KdgjtEx.js → config-0QgGZCrI.js} +1 -1
- package/frontend/dist/js/cs-9K5LILI5.js +2 -0
- package/frontend/dist/js/da-BWbBhLK8.js +2 -0
- package/frontend/dist/js/de-BXD9t2uY.js +2 -0
- package/frontend/dist/js/es-Dv4wZKlU.js +2 -0
- package/frontend/dist/js/{estree-BU5-LV_1.js → estree-WDwviHUZ.js} +1 -1
- package/frontend/dist/js/evaluationsApi-wjf0nh5J.js +1 -0
- package/frontend/dist/js/fr-BkXGyEei.js +2 -0
- package/frontend/dist/js/hi-BS1ldbWk.js +2 -0
- package/frontend/dist/js/{html-DeoAy2bo.js → html-Cj0HNcRt.js} +1 -1
- package/frontend/dist/js/id-Cr1njx5M.js +2 -0
- package/frontend/dist/js/is-BqpNCtDd.js +2 -0
- package/frontend/dist/js/it-Dp-iwH27.js +2 -0
- package/frontend/dist/js/ja-_e4v_6Mn.js +2 -0
- package/frontend/dist/js/ko-CjXf2pIX.js +2 -0
- package/frontend/dist/js/{logger-DSXjF4ye.js → logger-CpCQz3Vi.js} +1 -1
- package/frontend/dist/js/{markdown-DOLsYkBY.js → markdown-DTahdtRF.js} +1 -1
- package/frontend/dist/js/{messageCodeStyles-DhVgizF-.js → messageCodeStyles-COJFoq4P.js} +2 -2
- package/frontend/dist/js/ms-xpn-zACj.js +2 -0
- package/frontend/dist/js/nl-Baf0a2X0.js +2 -0
- package/frontend/dist/js/pl-BEOTrcUv.js +2 -0
- package/frontend/dist/js/pt-B5FUaihM.js +2 -0
- package/frontend/dist/js/rfb-bJaPz33m.js +5 -0
- package/frontend/dist/js/ru-BjzgMmkJ.js +2 -0
- package/frontend/dist/js/{standalone-BO5pzI8_.js → standalone-C04jT26m.js} +1 -1
- package/frontend/dist/js/sv-DDX_gP1z.js +2 -0
- package/frontend/dist/js/{syntax-highlight-DcR9Vhb7.js → syntax-highlight-P2zo9o06.js} +1 -1
- package/frontend/dist/js/teamEventStream-CgUkgjFC.js +8 -0
- package/frontend/dist/js/th-BXr3KovE.js +2 -0
- package/frontend/dist/js/tr-CdqxHEM8.js +2 -0
- package/frontend/dist/js/ttsBatching-BfhNT3c5.js +2 -0
- package/frontend/dist/js/{typescript-6GJ8APmn.js → typescript-FtGI7Y5P.js} +1 -1
- package/frontend/dist/js/ui-DFa2W4QC.js +2 -0
- package/frontend/dist/js/ui-vendor-CRZXLK0Q.js +177 -0
- package/frontend/dist/js/uk-CotKDP2Q.js +2 -0
- package/frontend/dist/js/useChat-BawGm7ua.js +10 -0
- package/frontend/dist/js/useQuery-BboI5V5G.js +1 -0
- package/frontend/dist/js/{useTranslation-5b5UhAc9.js → useTranslation-D7uLySn1.js} +1 -1
- package/frontend/dist/js/{utils-BGrdX9ie.js → utils-sD-qFh8D.js} +1 -1
- package/frontend/dist/js/utils-vendor-DTLgmsuc.js +9 -0
- package/frontend/dist/js/vi-F2NC1HaJ.js +2 -0
- package/frontend/dist/js/webauthnClient-CPSq528Q.js +1 -0
- package/frontend/dist/js/workApi-8mBuh_-J.js +6 -0
- package/frontend/dist/js/workApi-DJtLOslf.js +1 -0
- package/frontend/dist/js/workStatus-CcO9Fg41.js +1 -0
- package/frontend/dist/js/zh-DZ-kpEEA.js +2 -0
- package/frontend/dist/manifest.webmanifest +32 -0
- package/frontend/dist/sw.js +125 -0
- package/package.json +4 -2
- package/frontend/dist/assets/index-BPsH9FII.js +0 -80
- package/frontend/dist/assets/index-BtXF0Oxa.css +0 -1
- package/frontend/dist/js/ArtifactContainer-CIoFoMv8.js +0 -1
- package/frontend/dist/js/ArtifactSandboxFrame-REazyIrx.js +0 -151
- package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +0 -1
- package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +0 -1
- package/frontend/dist/js/CalendarPage-DLjasZOd.js +0 -1
- package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +0 -1
- package/frontend/dist/js/ChatPage-BAgBHUES.js +0 -16
- package/frontend/dist/js/FirstTimeSetup-BxJapNul.js +0 -1
- package/frontend/dist/js/GalleryPage-DHz9DkK7.js +0 -1
- package/frontend/dist/js/HomePage-BqNy-FWX.js +0 -1
- package/frontend/dist/js/LibreClawPage-BDzDILjY.js +0 -1
- package/frontend/dist/js/ModelSelector-ol8mK2ja.js +0 -1
- package/frontend/dist/js/NotesPage-DzHEx2O4.js +0 -3
- package/frontend/dist/js/OptimizedSyntaxHighlighter-CZNPwN0i.js +0 -1
- package/frontend/dist/js/PersonasPage-M_WKH2a9.js +0 -13
- package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +0 -1
- package/frontend/dist/js/RichMessageContent-BqgafH4p.js +0 -3
- package/frontend/dist/js/SettingsModal-R9EDadAV.js +0 -19
- package/frontend/dist/js/SystemPage-aOkrSuY7.js +0 -1
- package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +0 -1
- package/frontend/dist/js/WorkPage-DxZISerQ.js +0 -6
- package/frontend/dist/js/api-6bSMtSNh.js +0 -14
- package/frontend/dist/js/appStore-CdObhQBb.js +0 -2
- package/frontend/dist/js/ar-DT_VLBO3.js +0 -2
- package/frontend/dist/js/authStore-DbqqrfZv.js +0 -4
- package/frontend/dist/js/bn-BrvEqhGA.js +0 -2
- package/frontend/dist/js/chatStore-DbZPJNsu.js +0 -3
- package/frontend/dist/js/cs-BthnM_YI.js +0 -2
- package/frontend/dist/js/da-DCth-6_j.js +0 -2
- package/frontend/dist/js/de-BBWt0gJ_.js +0 -2
- package/frontend/dist/js/es-DuslOPqM.js +0 -2
- package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +0 -1
- package/frontend/dist/js/fr-DZAeg46S.js +0 -2
- package/frontend/dist/js/hi-ijDSiY77.js +0 -2
- package/frontend/dist/js/id-BS6qS0oq.js +0 -2
- package/frontend/dist/js/is-CO2PMDte.js +0 -2
- package/frontend/dist/js/it-ChhxT4hs.js +0 -2
- package/frontend/dist/js/ja-cyeqUeJN.js +0 -2
- package/frontend/dist/js/ko-CfqHTLXj.js +0 -2
- package/frontend/dist/js/ms-DZ5pACe1.js +0 -2
- package/frontend/dist/js/nl-BsRsnOVp.js +0 -2
- package/frontend/dist/js/pl-DXSTAW4M.js +0 -2
- package/frontend/dist/js/pt-DmDx0JxB.js +0 -2
- package/frontend/dist/js/ru-d2g8EWfY.js +0 -2
- package/frontend/dist/js/sv-CIhYUTVQ.js +0 -2
- package/frontend/dist/js/th-B3wSxanB.js +0 -2
- package/frontend/dist/js/tr-R4UGgPOY.js +0 -2
- package/frontend/dist/js/ui-CV0LYmkM.js +0 -2
- package/frontend/dist/js/ui-vendor-CWjIBW-z.js +0 -177
- package/frontend/dist/js/uk-BzUF4Vkt.js +0 -2
- package/frontend/dist/js/utils-vendor-9bQ62WeD.js +0 -9
- package/frontend/dist/js/vi-CKc6Fg4h.js +0 -2
- package/frontend/dist/js/workApi-BruWTlHM.js +0 -6
- package/frontend/dist/js/zh-CXL-kDe8.js +0 -2
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/* Latin faces, every locale. Generated by scripts/fetch-fonts.mjs — do not edit by hand.
|
|
2
|
+
Self-hosted so no page load contacts a third-party font host. */
|
|
3
|
+
/* latin-ext */
|
|
4
|
+
@font-face {
|
|
5
|
+
font-family: 'DM Mono';
|
|
6
|
+
font-style: normal;
|
|
7
|
+
font-weight: 400;
|
|
8
|
+
font-display: swap;
|
|
9
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v16-aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2) format('woff2');
|
|
10
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
11
|
+
}
|
|
12
|
+
/* latin */
|
|
13
|
+
@font-face {
|
|
14
|
+
font-family: 'DM Mono';
|
|
15
|
+
font-style: normal;
|
|
16
|
+
font-weight: 400;
|
|
17
|
+
font-display: swap;
|
|
18
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v16-aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2) format('woff2');
|
|
19
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
20
|
+
}
|
|
21
|
+
/* latin-ext */
|
|
22
|
+
@font-face {
|
|
23
|
+
font-family: 'DM Mono';
|
|
24
|
+
font-style: normal;
|
|
25
|
+
font-weight: 500;
|
|
26
|
+
font-display: swap;
|
|
27
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v16-aFTR7PB1QTsUX8KYvumzEY2tbYf-Vlh3uA.woff2) format('woff2');
|
|
28
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
29
|
+
}
|
|
30
|
+
/* latin */
|
|
31
|
+
@font-face {
|
|
32
|
+
font-family: 'DM Mono';
|
|
33
|
+
font-style: normal;
|
|
34
|
+
font-weight: 500;
|
|
35
|
+
font-display: swap;
|
|
36
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v16-aFTR7PB1QTsUX8KYvumzEYOtbYf-Vlg.woff2) format('woff2');
|
|
37
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
38
|
+
}
|
|
39
|
+
/* cyrillic-ext */
|
|
40
|
+
@font-face {
|
|
41
|
+
font-family: 'Manrope';
|
|
42
|
+
font-style: normal;
|
|
43
|
+
font-weight: 400;
|
|
44
|
+
font-display: swap;
|
|
45
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggqxSvfedN62Zw.woff2) format('woff2');
|
|
46
|
+
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
47
|
+
}
|
|
48
|
+
/* cyrillic */
|
|
49
|
+
@font-face {
|
|
50
|
+
font-family: 'Manrope';
|
|
51
|
+
font-style: normal;
|
|
52
|
+
font-weight: 400;
|
|
53
|
+
font-display: swap;
|
|
54
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggOxSvfedN62Zw.woff2) format('woff2');
|
|
55
|
+
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
56
|
+
}
|
|
57
|
+
/* greek */
|
|
58
|
+
@font-face {
|
|
59
|
+
font-family: 'Manrope';
|
|
60
|
+
font-style: normal;
|
|
61
|
+
font-weight: 400;
|
|
62
|
+
font-display: swap;
|
|
63
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggSxSvfedN62Zw.woff2) format('woff2');
|
|
64
|
+
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
|
65
|
+
}
|
|
66
|
+
/* vietnamese */
|
|
67
|
+
@font-face {
|
|
68
|
+
font-family: 'Manrope';
|
|
69
|
+
font-style: normal;
|
|
70
|
+
font-weight: 400;
|
|
71
|
+
font-display: swap;
|
|
72
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggixSvfedN62Zw.woff2) format('woff2');
|
|
73
|
+
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
74
|
+
}
|
|
75
|
+
/* latin-ext */
|
|
76
|
+
@font-face {
|
|
77
|
+
font-family: 'Manrope';
|
|
78
|
+
font-style: normal;
|
|
79
|
+
font-weight: 400;
|
|
80
|
+
font-display: swap;
|
|
81
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2) format('woff2');
|
|
82
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
83
|
+
}
|
|
84
|
+
/* latin */
|
|
85
|
+
@font-face {
|
|
86
|
+
font-family: 'Manrope';
|
|
87
|
+
font-style: normal;
|
|
88
|
+
font-weight: 400;
|
|
89
|
+
font-display: swap;
|
|
90
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggexSvfedN4.woff2) format('woff2');
|
|
91
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
92
|
+
}
|
|
93
|
+
/* cyrillic-ext */
|
|
94
|
+
@font-face {
|
|
95
|
+
font-family: 'Manrope';
|
|
96
|
+
font-style: normal;
|
|
97
|
+
font-weight: 500;
|
|
98
|
+
font-display: swap;
|
|
99
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggqxSvfedN62Zw.woff2) format('woff2');
|
|
100
|
+
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
101
|
+
}
|
|
102
|
+
/* cyrillic */
|
|
103
|
+
@font-face {
|
|
104
|
+
font-family: 'Manrope';
|
|
105
|
+
font-style: normal;
|
|
106
|
+
font-weight: 500;
|
|
107
|
+
font-display: swap;
|
|
108
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggOxSvfedN62Zw.woff2) format('woff2');
|
|
109
|
+
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
110
|
+
}
|
|
111
|
+
/* greek */
|
|
112
|
+
@font-face {
|
|
113
|
+
font-family: 'Manrope';
|
|
114
|
+
font-style: normal;
|
|
115
|
+
font-weight: 500;
|
|
116
|
+
font-display: swap;
|
|
117
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggSxSvfedN62Zw.woff2) format('woff2');
|
|
118
|
+
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
|
119
|
+
}
|
|
120
|
+
/* vietnamese */
|
|
121
|
+
@font-face {
|
|
122
|
+
font-family: 'Manrope';
|
|
123
|
+
font-style: normal;
|
|
124
|
+
font-weight: 500;
|
|
125
|
+
font-display: swap;
|
|
126
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggixSvfedN62Zw.woff2) format('woff2');
|
|
127
|
+
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
128
|
+
}
|
|
129
|
+
/* latin-ext */
|
|
130
|
+
@font-face {
|
|
131
|
+
font-family: 'Manrope';
|
|
132
|
+
font-style: normal;
|
|
133
|
+
font-weight: 500;
|
|
134
|
+
font-display: swap;
|
|
135
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2) format('woff2');
|
|
136
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
137
|
+
}
|
|
138
|
+
/* latin */
|
|
139
|
+
@font-face {
|
|
140
|
+
font-family: 'Manrope';
|
|
141
|
+
font-style: normal;
|
|
142
|
+
font-weight: 500;
|
|
143
|
+
font-display: swap;
|
|
144
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggexSvfedN4.woff2) format('woff2');
|
|
145
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
146
|
+
}
|
|
147
|
+
/* cyrillic-ext */
|
|
148
|
+
@font-face {
|
|
149
|
+
font-family: 'Manrope';
|
|
150
|
+
font-style: normal;
|
|
151
|
+
font-weight: 600;
|
|
152
|
+
font-display: swap;
|
|
153
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggqxSvfedN62Zw.woff2) format('woff2');
|
|
154
|
+
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
155
|
+
}
|
|
156
|
+
/* cyrillic */
|
|
157
|
+
@font-face {
|
|
158
|
+
font-family: 'Manrope';
|
|
159
|
+
font-style: normal;
|
|
160
|
+
font-weight: 600;
|
|
161
|
+
font-display: swap;
|
|
162
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggOxSvfedN62Zw.woff2) format('woff2');
|
|
163
|
+
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
164
|
+
}
|
|
165
|
+
/* greek */
|
|
166
|
+
@font-face {
|
|
167
|
+
font-family: 'Manrope';
|
|
168
|
+
font-style: normal;
|
|
169
|
+
font-weight: 600;
|
|
170
|
+
font-display: swap;
|
|
171
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggSxSvfedN62Zw.woff2) format('woff2');
|
|
172
|
+
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
|
173
|
+
}
|
|
174
|
+
/* vietnamese */
|
|
175
|
+
@font-face {
|
|
176
|
+
font-family: 'Manrope';
|
|
177
|
+
font-style: normal;
|
|
178
|
+
font-weight: 600;
|
|
179
|
+
font-display: swap;
|
|
180
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggixSvfedN62Zw.woff2) format('woff2');
|
|
181
|
+
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
182
|
+
}
|
|
183
|
+
/* latin-ext */
|
|
184
|
+
@font-face {
|
|
185
|
+
font-family: 'Manrope';
|
|
186
|
+
font-style: normal;
|
|
187
|
+
font-weight: 600;
|
|
188
|
+
font-display: swap;
|
|
189
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2) format('woff2');
|
|
190
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
191
|
+
}
|
|
192
|
+
/* latin */
|
|
193
|
+
@font-face {
|
|
194
|
+
font-family: 'Manrope';
|
|
195
|
+
font-style: normal;
|
|
196
|
+
font-weight: 600;
|
|
197
|
+
font-display: swap;
|
|
198
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggexSvfedN4.woff2) format('woff2');
|
|
199
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
200
|
+
}
|
|
201
|
+
/* cyrillic-ext */
|
|
202
|
+
@font-face {
|
|
203
|
+
font-family: 'Manrope';
|
|
204
|
+
font-style: normal;
|
|
205
|
+
font-weight: 700;
|
|
206
|
+
font-display: swap;
|
|
207
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggqxSvfedN62Zw.woff2) format('woff2');
|
|
208
|
+
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
209
|
+
}
|
|
210
|
+
/* cyrillic */
|
|
211
|
+
@font-face {
|
|
212
|
+
font-family: 'Manrope';
|
|
213
|
+
font-style: normal;
|
|
214
|
+
font-weight: 700;
|
|
215
|
+
font-display: swap;
|
|
216
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggOxSvfedN62Zw.woff2) format('woff2');
|
|
217
|
+
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
218
|
+
}
|
|
219
|
+
/* greek */
|
|
220
|
+
@font-face {
|
|
221
|
+
font-family: 'Manrope';
|
|
222
|
+
font-style: normal;
|
|
223
|
+
font-weight: 700;
|
|
224
|
+
font-display: swap;
|
|
225
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggSxSvfedN62Zw.woff2) format('woff2');
|
|
226
|
+
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
|
227
|
+
}
|
|
228
|
+
/* vietnamese */
|
|
229
|
+
@font-face {
|
|
230
|
+
font-family: 'Manrope';
|
|
231
|
+
font-style: normal;
|
|
232
|
+
font-weight: 700;
|
|
233
|
+
font-display: swap;
|
|
234
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggixSvfedN62Zw.woff2) format('woff2');
|
|
235
|
+
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
236
|
+
}
|
|
237
|
+
/* latin-ext */
|
|
238
|
+
@font-face {
|
|
239
|
+
font-family: 'Manrope';
|
|
240
|
+
font-style: normal;
|
|
241
|
+
font-weight: 700;
|
|
242
|
+
font-display: swap;
|
|
243
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2) format('woff2');
|
|
244
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
245
|
+
}
|
|
246
|
+
/* latin */
|
|
247
|
+
@font-face {
|
|
248
|
+
font-family: 'Manrope';
|
|
249
|
+
font-style: normal;
|
|
250
|
+
font-weight: 700;
|
|
251
|
+
font-display: swap;
|
|
252
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v20-xn7gYHE41ni1AdIRggexSvfedN4.woff2) format('woff2');
|
|
253
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
254
|
+
}
|
|
255
|
+
/* vietnamese */
|
|
256
|
+
@font-face {
|
|
257
|
+
font-family: 'Space Grotesk';
|
|
258
|
+
font-style: normal;
|
|
259
|
+
font-weight: 400;
|
|
260
|
+
font-display: swap;
|
|
261
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb54C_k3HqUtEw.woff2) format('woff2');
|
|
262
|
+
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
263
|
+
}
|
|
264
|
+
/* latin-ext */
|
|
265
|
+
@font-face {
|
|
266
|
+
font-family: 'Space Grotesk';
|
|
267
|
+
font-style: normal;
|
|
268
|
+
font-weight: 400;
|
|
269
|
+
font-display: swap;
|
|
270
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb94C_k3HqUtEw.woff2) format('woff2');
|
|
271
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
272
|
+
}
|
|
273
|
+
/* latin */
|
|
274
|
+
@font-face {
|
|
275
|
+
font-family: 'Space Grotesk';
|
|
276
|
+
font-style: normal;
|
|
277
|
+
font-weight: 400;
|
|
278
|
+
font-display: swap;
|
|
279
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2) format('woff2');
|
|
280
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
281
|
+
}
|
|
282
|
+
/* vietnamese */
|
|
283
|
+
@font-face {
|
|
284
|
+
font-family: 'Space Grotesk';
|
|
285
|
+
font-style: normal;
|
|
286
|
+
font-weight: 500;
|
|
287
|
+
font-display: swap;
|
|
288
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb54C_k3HqUtEw.woff2) format('woff2');
|
|
289
|
+
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
290
|
+
}
|
|
291
|
+
/* latin-ext */
|
|
292
|
+
@font-face {
|
|
293
|
+
font-family: 'Space Grotesk';
|
|
294
|
+
font-style: normal;
|
|
295
|
+
font-weight: 500;
|
|
296
|
+
font-display: swap;
|
|
297
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb94C_k3HqUtEw.woff2) format('woff2');
|
|
298
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
299
|
+
}
|
|
300
|
+
/* latin */
|
|
301
|
+
@font-face {
|
|
302
|
+
font-family: 'Space Grotesk';
|
|
303
|
+
font-style: normal;
|
|
304
|
+
font-weight: 500;
|
|
305
|
+
font-display: swap;
|
|
306
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2) format('woff2');
|
|
307
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
308
|
+
}
|
|
309
|
+
/* vietnamese */
|
|
310
|
+
@font-face {
|
|
311
|
+
font-family: 'Space Grotesk';
|
|
312
|
+
font-style: normal;
|
|
313
|
+
font-weight: 600;
|
|
314
|
+
font-display: swap;
|
|
315
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb54C_k3HqUtEw.woff2) format('woff2');
|
|
316
|
+
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
317
|
+
}
|
|
318
|
+
/* latin-ext */
|
|
319
|
+
@font-face {
|
|
320
|
+
font-family: 'Space Grotesk';
|
|
321
|
+
font-style: normal;
|
|
322
|
+
font-weight: 600;
|
|
323
|
+
font-display: swap;
|
|
324
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb94C_k3HqUtEw.woff2) format('woff2');
|
|
325
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
326
|
+
}
|
|
327
|
+
/* latin */
|
|
328
|
+
@font-face {
|
|
329
|
+
font-family: 'Space Grotesk';
|
|
330
|
+
font-style: normal;
|
|
331
|
+
font-weight: 600;
|
|
332
|
+
font-display: swap;
|
|
333
|
+
src: url(file:///usr/local/share/libre-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2) format('woff2');
|
|
334
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
335
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Libre Work Computer — GUI session bootstrap.
|
|
3
|
+
#
|
|
4
|
+
# Starts a virtual display, a minimal window manager, Chromium, and a
|
|
5
|
+
# localhost-only VNC server bridged to a WebSocket. Idempotent: safe to
|
|
6
|
+
# invoke again on a container that already has a session (exits 0).
|
|
7
|
+
#
|
|
8
|
+
# Everything binds to loopback inside the container; the backend reaches
|
|
9
|
+
# websockify over the Docker network and re-authenticates every viewer.
|
|
10
|
+
set -eu
|
|
11
|
+
|
|
12
|
+
DISPLAY_NUM="${LIBRE_COMPUTER_DISPLAY:-1}"
|
|
13
|
+
SCREEN_GEOMETRY="${LIBRE_COMPUTER_GEOMETRY:-1280x800x24}"
|
|
14
|
+
VNC_PORT="${LIBRE_COMPUTER_VNC_PORT:-5900}"
|
|
15
|
+
WS_PORT="${LIBRE_COMPUTER_WS_PORT:-6080}"
|
|
16
|
+
AUDIO_WS_PORT="${LIBRE_COMPUTER_AUDIO_WS_PORT:-6081}"
|
|
17
|
+
AUDIO_TCP_PORT="${LIBRE_COMPUTER_AUDIO_TCP_PORT:-4713}"
|
|
18
|
+
AUDIO_RATE=44100
|
|
19
|
+
AUDIO_CHANNELS=2
|
|
20
|
+
STATE_DIR="${LIBRE_COMPUTER_STATE_DIR:-/tmp/libre-computer}"
|
|
21
|
+
PROFILE_DIR="${LIBRE_COMPUTER_PROFILE_DIR:-/workspace/.browser-profile}"
|
|
22
|
+
|
|
23
|
+
mkdir -p "$STATE_DIR" "$PROFILE_DIR"
|
|
24
|
+
|
|
25
|
+
if [ -f "$STATE_DIR/websockify.pid" ] \
|
|
26
|
+
&& kill -0 "$(cat "$STATE_DIR/websockify.pid")" 2>/dev/null; then
|
|
27
|
+
echo "computer session already running"
|
|
28
|
+
exit 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
export DISPLAY=":${DISPLAY_NUM}"
|
|
32
|
+
|
|
33
|
+
Xvfb "$DISPLAY" -screen 0 "$SCREEN_GEOMETRY" -nolisten tcp &
|
|
34
|
+
echo $! > "$STATE_DIR/xvfb.pid"
|
|
35
|
+
|
|
36
|
+
# Wait for the display socket before starting clients.
|
|
37
|
+
tries=0
|
|
38
|
+
while [ ! -e "/tmp/.X11-unix/X${DISPLAY_NUM}" ]; do
|
|
39
|
+
tries=$((tries + 1))
|
|
40
|
+
[ "$tries" -gt 50 ] && { echo "Xvfb did not come up" >&2; exit 1; }
|
|
41
|
+
sleep 0.1
|
|
42
|
+
done
|
|
43
|
+
|
|
44
|
+
# Openbox has no bar of its own; tint2 provides the dock (launchers,
|
|
45
|
+
# running apps, clock) bottom-center over the wallpaper.
|
|
46
|
+
openbox >/dev/null 2>&1 &
|
|
47
|
+
echo $! > "$STATE_DIR/openbox.pid"
|
|
48
|
+
|
|
49
|
+
WALLPAPER="/usr/local/share/libre-computer/wallpaper.png"
|
|
50
|
+
if [ -f "$WALLPAPER" ]; then
|
|
51
|
+
sleep 0.3
|
|
52
|
+
display -window root "$WALLPAPER" >/dev/null 2>&1 &
|
|
53
|
+
echo $! > "$STATE_DIR/wallpaper.pid"
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" \
|
|
57
|
+
tint2 -c /usr/local/share/libre-computer/tint2rc >/dev/null 2>&1 &
|
|
58
|
+
echo $! > "$STATE_DIR/tint2.pid"
|
|
59
|
+
|
|
60
|
+
# Audio: PulseAudio with a null sink is the container's "sound card".
|
|
61
|
+
# Chromium plays into it; the sink's monitor is captured as raw PCM and
|
|
62
|
+
# served, one capture per connection, over a second websockify bridge.
|
|
63
|
+
export XDG_RUNTIME_DIR="$STATE_DIR/runtime"
|
|
64
|
+
mkdir -p "$XDG_RUNTIME_DIR"
|
|
65
|
+
chmod 700 "$XDG_RUNTIME_DIR"
|
|
66
|
+
pulseaudio --daemonize=yes --exit-idle-time=-1 --log-target=file:"$STATE_DIR/pulseaudio.log" 2>/dev/null || true
|
|
67
|
+
for _ in 1 2 3 4 5 6 7 8 9 10; do
|
|
68
|
+
pactl info >/dev/null 2>&1 && break
|
|
69
|
+
sleep 0.2
|
|
70
|
+
done
|
|
71
|
+
pactl load-module module-null-sink sink_name=libre \
|
|
72
|
+
sink_properties=device.description=LibreOutput >/dev/null 2>&1 || true
|
|
73
|
+
pactl set-default-sink libre >/dev/null 2>&1 || true
|
|
74
|
+
|
|
75
|
+
socat "TCP-LISTEN:${AUDIO_TCP_PORT},bind=127.0.0.1,reuseaddr,fork" \
|
|
76
|
+
EXEC:"parec -d libre.monitor --format=s16le --rate=${AUDIO_RATE} --channels=${AUDIO_CHANNELS} --raw" \
|
|
77
|
+
>/dev/null 2>&1 &
|
|
78
|
+
echo $! > "$STATE_DIR/audio-capture.pid"
|
|
79
|
+
|
|
80
|
+
websockify --daemon "0.0.0.0:${AUDIO_WS_PORT}" "127.0.0.1:${AUDIO_TCP_PORT}" \
|
|
81
|
+
>/dev/null 2>&1
|
|
82
|
+
sleep 0.3
|
|
83
|
+
pgrep -f "websockify.*${AUDIO_WS_PORT}" | head -1 > "$STATE_DIR/audio-ws.pid"
|
|
84
|
+
|
|
85
|
+
# A container killed mid-session leaves Chromium's profile singleton lock
|
|
86
|
+
# behind; without clearing it the browser silently refuses to start and the
|
|
87
|
+
# desktop comes up empty.
|
|
88
|
+
rm -f "$PROFILE_DIR/SingletonLock" "$PROFILE_DIR/SingletonSocket" \
|
|
89
|
+
"$PROFILE_DIR/SingletonCookie" 2>/dev/null || true
|
|
90
|
+
|
|
91
|
+
# The DevTools port serves semantic observation signals (active-tab URL,
|
|
92
|
+
# focused element, page focus) to the agent's observe/act scripts. It binds
|
|
93
|
+
# to the container's loopback only — the same trust domain as the DISPLAY
|
|
94
|
+
# the agent already fully controls with xdotool.
|
|
95
|
+
chromium \
|
|
96
|
+
--no-sandbox \
|
|
97
|
+
--test-type \
|
|
98
|
+
--remote-debugging-port=9222 \
|
|
99
|
+
--hide-crash-restore-bubble \
|
|
100
|
+
--autoplay-policy=no-user-gesture-required \
|
|
101
|
+
--disable-dev-shm-usage \
|
|
102
|
+
--disable-gpu \
|
|
103
|
+
--no-first-run \
|
|
104
|
+
--no-default-browser-check \
|
|
105
|
+
--password-store=basic \
|
|
106
|
+
--user-data-dir="$PROFILE_DIR" \
|
|
107
|
+
--start-maximized \
|
|
108
|
+
"file:///usr/local/share/libre-computer/start-page.html" >/dev/null 2>&1 &
|
|
109
|
+
echo $! > "$STATE_DIR/chromium.pid"
|
|
110
|
+
|
|
111
|
+
# --start-maximized is unreliable under a bare WM; assert it once the
|
|
112
|
+
# window exists so the browser fills the screen above the dock.
|
|
113
|
+
(
|
|
114
|
+
for _ in $(seq 1 60); do
|
|
115
|
+
found=""
|
|
116
|
+
# Chromium also maps tiny phantom windows; maximize every real one.
|
|
117
|
+
for wid in $(xdotool search --class chromium 2>/dev/null); do
|
|
118
|
+
width="$(xdotool getwindowgeometry --shell "$wid" 2>/dev/null \
|
|
119
|
+
| sed -n 's/^WIDTH=//p')"
|
|
120
|
+
if [ "${width:-0}" -gt 200 ]; then
|
|
121
|
+
xdotool windowstate --add MAXIMIZED_VERT "$wid" 2>/dev/null || true
|
|
122
|
+
xdotool windowstate --add MAXIMIZED_HORZ "$wid" 2>/dev/null || true
|
|
123
|
+
found=1
|
|
124
|
+
fi
|
|
125
|
+
done
|
|
126
|
+
[ -n "$found" ] && break
|
|
127
|
+
sleep 0.2
|
|
128
|
+
done
|
|
129
|
+
) &
|
|
130
|
+
|
|
131
|
+
# One VNC server, two privilege levels: the first password in the passwd
|
|
132
|
+
# file grants full control (handed out by the backend only to the current
|
|
133
|
+
# takeover-lease holder), passwords after __BEGIN_VIEWONLY__ only watch.
|
|
134
|
+
# -localhost keeps raw VNC off the network; websockify is the only
|
|
135
|
+
# reachable surface and the backend authenticates every connection.
|
|
136
|
+
PASSWD_FILE="$STATE_DIR/passwd"
|
|
137
|
+
if [ ! -s "$PASSWD_FILE" ]; then
|
|
138
|
+
umask 077
|
|
139
|
+
random_password() {
|
|
140
|
+
head -c 48 /dev/urandom | base64 | tr -dc 'a-zA-Z0-9' | cut -c1-8
|
|
141
|
+
}
|
|
142
|
+
printf '%s\n__BEGIN_VIEWONLY__\n%s\n' \
|
|
143
|
+
"$(random_password)" "$(random_password)" > "$PASSWD_FILE"
|
|
144
|
+
fi
|
|
145
|
+
x11vnc -display "$DISPLAY" -rfbport "$VNC_PORT" -localhost \
|
|
146
|
+
-passwdfile "$PASSWD_FILE" \
|
|
147
|
+
-shared -forever -quiet -bg -o "$STATE_DIR/x11vnc.log"
|
|
148
|
+
|
|
149
|
+
websockify --daemon "0.0.0.0:${WS_PORT}" "127.0.0.1:${VNC_PORT}" \
|
|
150
|
+
>/dev/null 2>&1
|
|
151
|
+
# websockify --daemon writes no pidfile by default; record the listener.
|
|
152
|
+
sleep 0.3
|
|
153
|
+
pgrep -f "websockify.*${WS_PORT}" | head -1 > "$STATE_DIR/websockify.pid"
|
|
154
|
+
|
|
155
|
+
echo "computer session ready on ws port ${WS_PORT}"
|