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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqliteMigrations.d.ts","sourceRoot":"","sources":["../../src/persistence/sqliteMigrations.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,+CAA+C,CAAC;AA2RvD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,4rEAwEtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,svHAqG1C,CAAC;
|
|
1
|
+
{"version":3,"file":"sqliteMigrations.d.ts","sourceRoot":"","sources":["../../src/persistence/sqliteMigrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1013,6 +1013,61 @@ const MEDIA_ENTERPRISE_OPS_REQUIRED_SCHEMA = {
|
|
|
1013
1013
|
'completed_at',
|
|
1014
1014
|
],
|
|
1015
1015
|
};
|
|
1016
|
+
const MFA_PUSH_RECOVERY_REQUIRED_SCHEMA = {
|
|
1017
|
+
user_mfa: [
|
|
1018
|
+
'user_id',
|
|
1019
|
+
'totp_secret',
|
|
1020
|
+
'activated_at',
|
|
1021
|
+
'last_used_step',
|
|
1022
|
+
'created_at',
|
|
1023
|
+
'updated_at',
|
|
1024
|
+
],
|
|
1025
|
+
mfa_recovery_codes: ['id', 'user_id', 'code_lookup', 'created_at', 'used_at'],
|
|
1026
|
+
webauthn_credentials: [
|
|
1027
|
+
'id',
|
|
1028
|
+
'user_id',
|
|
1029
|
+
'credential_lookup',
|
|
1030
|
+
'credential_data',
|
|
1031
|
+
'name',
|
|
1032
|
+
'sign_count',
|
|
1033
|
+
'created_at',
|
|
1034
|
+
'last_used_at',
|
|
1035
|
+
],
|
|
1036
|
+
push_subscriptions: [
|
|
1037
|
+
'id',
|
|
1038
|
+
'user_id',
|
|
1039
|
+
'session_id',
|
|
1040
|
+
'endpoint_lookup',
|
|
1041
|
+
'subscription',
|
|
1042
|
+
'user_agent',
|
|
1043
|
+
'created_at',
|
|
1044
|
+
'last_used_at',
|
|
1045
|
+
],
|
|
1046
|
+
recovery_drills: [
|
|
1047
|
+
'id',
|
|
1048
|
+
'status',
|
|
1049
|
+
'origin',
|
|
1050
|
+
'started_at',
|
|
1051
|
+
'finished_at',
|
|
1052
|
+
'snapshot_bytes',
|
|
1053
|
+
'rpo_seconds',
|
|
1054
|
+
'restore_ms',
|
|
1055
|
+
'error',
|
|
1056
|
+
'report',
|
|
1057
|
+
'created_by',
|
|
1058
|
+
'created_at',
|
|
1059
|
+
],
|
|
1060
|
+
};
|
|
1061
|
+
const AUTOMATION_WORK_TARGET_REQUIRED_SCHEMA = {
|
|
1062
|
+
automations: ['target', 'work_policy_id'],
|
|
1063
|
+
automation_runs: ['work_task_id'],
|
|
1064
|
+
};
|
|
1065
|
+
const WORK_COMPUTER_REQUIRED_SCHEMA = {
|
|
1066
|
+
work_policies: ['gui_enabled'],
|
|
1067
|
+
};
|
|
1068
|
+
const WORK_TAKEOVER_REQUIRED_SCHEMA = {
|
|
1069
|
+
work_policies: ['takeover_enabled'],
|
|
1070
|
+
};
|
|
1016
1071
|
export const IDENTITY_EMAIL_LOOKUP_SCHEMA_SQL = `
|
|
1017
1072
|
ALTER TABLE users ADD COLUMN email_lookup TEXT;
|
|
1018
1073
|
CREATE UNIQUE INDEX idx_users_email_lookup
|
|
@@ -1711,6 +1766,87 @@ export const MEDIA_ENTERPRISE_OPS_SCHEMA_SQL = `
|
|
|
1711
1766
|
ALTER TABLE voice_profiles ADD COLUMN transfer_count INTEGER NOT NULL DEFAULT 0;
|
|
1712
1767
|
ALTER TABLE voice_profiles ADD COLUMN last_transfer_at INTEGER;
|
|
1713
1768
|
${MEDIA_ENTERPRISE_OPS_TABLES_SQL}`;
|
|
1769
|
+
export const MFA_PUSH_RECOVERY_TABLES_SQL = `
|
|
1770
|
+
CREATE TABLE IF NOT EXISTS user_mfa (
|
|
1771
|
+
user_id TEXT PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
|
|
1772
|
+
totp_secret TEXT NOT NULL,
|
|
1773
|
+
activated_at INTEGER,
|
|
1774
|
+
last_used_step INTEGER,
|
|
1775
|
+
created_at INTEGER NOT NULL,
|
|
1776
|
+
updated_at INTEGER NOT NULL
|
|
1777
|
+
);
|
|
1778
|
+
|
|
1779
|
+
CREATE TABLE IF NOT EXISTS mfa_recovery_codes (
|
|
1780
|
+
id TEXT PRIMARY KEY,
|
|
1781
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1782
|
+
code_lookup TEXT NOT NULL UNIQUE,
|
|
1783
|
+
created_at INTEGER NOT NULL,
|
|
1784
|
+
used_at INTEGER
|
|
1785
|
+
);
|
|
1786
|
+
|
|
1787
|
+
CREATE INDEX IF NOT EXISTS idx_mfa_recovery_codes_user
|
|
1788
|
+
ON mfa_recovery_codes(user_id);
|
|
1789
|
+
|
|
1790
|
+
CREATE TABLE IF NOT EXISTS webauthn_credentials (
|
|
1791
|
+
id TEXT PRIMARY KEY,
|
|
1792
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1793
|
+
credential_lookup TEXT NOT NULL UNIQUE,
|
|
1794
|
+
credential_data TEXT NOT NULL,
|
|
1795
|
+
name TEXT,
|
|
1796
|
+
sign_count INTEGER NOT NULL DEFAULT 0,
|
|
1797
|
+
created_at INTEGER NOT NULL,
|
|
1798
|
+
last_used_at INTEGER
|
|
1799
|
+
);
|
|
1800
|
+
|
|
1801
|
+
CREATE INDEX IF NOT EXISTS idx_webauthn_credentials_user
|
|
1802
|
+
ON webauthn_credentials(user_id);
|
|
1803
|
+
|
|
1804
|
+
CREATE TABLE IF NOT EXISTS push_subscriptions (
|
|
1805
|
+
id TEXT PRIMARY KEY,
|
|
1806
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1807
|
+
session_id TEXT,
|
|
1808
|
+
endpoint_lookup TEXT NOT NULL UNIQUE,
|
|
1809
|
+
subscription TEXT NOT NULL,
|
|
1810
|
+
user_agent TEXT,
|
|
1811
|
+
created_at INTEGER NOT NULL,
|
|
1812
|
+
last_used_at INTEGER
|
|
1813
|
+
);
|
|
1814
|
+
|
|
1815
|
+
CREATE INDEX IF NOT EXISTS idx_push_subscriptions_user
|
|
1816
|
+
ON push_subscriptions(user_id);
|
|
1817
|
+
|
|
1818
|
+
CREATE TABLE IF NOT EXISTS recovery_drills (
|
|
1819
|
+
id TEXT PRIMARY KEY,
|
|
1820
|
+
status TEXT NOT NULL CHECK (status IN ('running', 'passed', 'failed')),
|
|
1821
|
+
origin TEXT NOT NULL CHECK (origin IN ('scheduled', 'manual')),
|
|
1822
|
+
started_at INTEGER NOT NULL,
|
|
1823
|
+
finished_at INTEGER,
|
|
1824
|
+
snapshot_bytes INTEGER,
|
|
1825
|
+
rpo_seconds INTEGER,
|
|
1826
|
+
restore_ms INTEGER,
|
|
1827
|
+
error TEXT,
|
|
1828
|
+
report TEXT,
|
|
1829
|
+
created_by TEXT,
|
|
1830
|
+
created_at INTEGER NOT NULL
|
|
1831
|
+
);
|
|
1832
|
+
|
|
1833
|
+
CREATE INDEX IF NOT EXISTS idx_recovery_drills_started
|
|
1834
|
+
ON recovery_drills(started_at);
|
|
1835
|
+
`;
|
|
1836
|
+
// No CHECK on target: SQLite cannot DROP a column referenced by an inline
|
|
1837
|
+
// CHECK, which would make the documented rollback impossible. The service
|
|
1838
|
+
// layer normalizes the value; PostgreSQL keeps a real constraint.
|
|
1839
|
+
export const AUTOMATION_WORK_TARGET_SCHEMA_SQL = `
|
|
1840
|
+
ALTER TABLE automations ADD COLUMN target TEXT NOT NULL DEFAULT 'chat';
|
|
1841
|
+
ALTER TABLE automations ADD COLUMN work_policy_id TEXT;
|
|
1842
|
+
ALTER TABLE automation_runs ADD COLUMN work_task_id TEXT;
|
|
1843
|
+
`;
|
|
1844
|
+
export const WORK_COMPUTER_SCHEMA_SQL = `
|
|
1845
|
+
ALTER TABLE work_policies ADD COLUMN gui_enabled INTEGER;
|
|
1846
|
+
`;
|
|
1847
|
+
export const WORK_TAKEOVER_SCHEMA_SQL = `
|
|
1848
|
+
ALTER TABLE work_policies ADD COLUMN takeover_enabled INTEGER;
|
|
1849
|
+
`;
|
|
1714
1850
|
const REQUIRED_SCHEMA = {
|
|
1715
1851
|
...LEGACY_REQUIRED_SCHEMA,
|
|
1716
1852
|
users: [
|
|
@@ -1907,6 +2043,11 @@ const REQUIRED_PRIMARY_KEYS = {
|
|
|
1907
2043
|
arena_votes: ['id'],
|
|
1908
2044
|
eval_sets: ['id'],
|
|
1909
2045
|
eval_runs: ['id'],
|
|
2046
|
+
user_mfa: ['user_id'],
|
|
2047
|
+
mfa_recovery_codes: ['id'],
|
|
2048
|
+
webauthn_credentials: ['id'],
|
|
2049
|
+
push_subscriptions: ['id'],
|
|
2050
|
+
recovery_drills: ['id'],
|
|
1910
2051
|
};
|
|
1911
2052
|
const REQUIRED_UNIQUE_KEYS = {
|
|
1912
2053
|
[MIGRATION_TABLE]: [['name']],
|
|
@@ -1935,6 +2076,9 @@ const REQUIRED_UNIQUE_KEYS = {
|
|
|
1935
2076
|
skill_files: [['skill_id', 'path']],
|
|
1936
2077
|
message_feedback: [['user_id', 'message_id']],
|
|
1937
2078
|
arena_votes: [['user_id', 'compare_group']],
|
|
2079
|
+
mfa_recovery_codes: [['code_lookup']],
|
|
2080
|
+
webauthn_credentials: [['credential_lookup']],
|
|
2081
|
+
push_subscriptions: [['endpoint_lookup']],
|
|
1938
2082
|
};
|
|
1939
2083
|
const REQUIRED_FOREIGN_KEYS = [
|
|
1940
2084
|
{
|
|
@@ -2280,6 +2424,34 @@ const REQUIRED_FOREIGN_KEYS = [
|
|
|
2280
2424
|
referencedColumns: ['id'],
|
|
2281
2425
|
onDelete: 'CASCADE',
|
|
2282
2426
|
},
|
|
2427
|
+
{
|
|
2428
|
+
table: 'user_mfa',
|
|
2429
|
+
columns: ['user_id'],
|
|
2430
|
+
referencedTable: 'users',
|
|
2431
|
+
referencedColumns: ['id'],
|
|
2432
|
+
onDelete: 'CASCADE',
|
|
2433
|
+
},
|
|
2434
|
+
{
|
|
2435
|
+
table: 'mfa_recovery_codes',
|
|
2436
|
+
columns: ['user_id'],
|
|
2437
|
+
referencedTable: 'users',
|
|
2438
|
+
referencedColumns: ['id'],
|
|
2439
|
+
onDelete: 'CASCADE',
|
|
2440
|
+
},
|
|
2441
|
+
{
|
|
2442
|
+
table: 'webauthn_credentials',
|
|
2443
|
+
columns: ['user_id'],
|
|
2444
|
+
referencedTable: 'users',
|
|
2445
|
+
referencedColumns: ['id'],
|
|
2446
|
+
onDelete: 'CASCADE',
|
|
2447
|
+
},
|
|
2448
|
+
{
|
|
2449
|
+
table: 'push_subscriptions',
|
|
2450
|
+
columns: ['user_id'],
|
|
2451
|
+
referencedTable: 'users',
|
|
2452
|
+
referencedColumns: ['id'],
|
|
2453
|
+
onDelete: 'CASCADE',
|
|
2454
|
+
},
|
|
2283
2455
|
];
|
|
2284
2456
|
const REQUIRED_INDEXES = [
|
|
2285
2457
|
{
|
|
@@ -2622,6 +2794,26 @@ const REQUIRED_INDEXES = [
|
|
|
2622
2794
|
table: 'eval_runs',
|
|
2623
2795
|
columns: ['set_id'],
|
|
2624
2796
|
},
|
|
2797
|
+
{
|
|
2798
|
+
name: 'idx_mfa_recovery_codes_user',
|
|
2799
|
+
table: 'mfa_recovery_codes',
|
|
2800
|
+
columns: ['user_id'],
|
|
2801
|
+
},
|
|
2802
|
+
{
|
|
2803
|
+
name: 'idx_webauthn_credentials_user',
|
|
2804
|
+
table: 'webauthn_credentials',
|
|
2805
|
+
columns: ['user_id'],
|
|
2806
|
+
},
|
|
2807
|
+
{
|
|
2808
|
+
name: 'idx_push_subscriptions_user',
|
|
2809
|
+
table: 'push_subscriptions',
|
|
2810
|
+
columns: ['user_id'],
|
|
2811
|
+
},
|
|
2812
|
+
{
|
|
2813
|
+
name: 'idx_recovery_drills_started',
|
|
2814
|
+
table: 'recovery_drills',
|
|
2815
|
+
columns: ['started_at'],
|
|
2816
|
+
},
|
|
2625
2817
|
];
|
|
2626
2818
|
const REQUIRED_TABLE_SQL_FRAGMENTS = {
|
|
2627
2819
|
platform_vector_entries: ['CHECK(dimensions > 0)'],
|
|
@@ -2685,6 +2877,10 @@ const REQUIRED_TABLE_SQL_FRAGMENTS = {
|
|
|
2685
2877
|
eval_runs: [
|
|
2686
2878
|
"status IN ('queued', 'running', 'completed', 'failed', 'cancelled')",
|
|
2687
2879
|
],
|
|
2880
|
+
recovery_drills: [
|
|
2881
|
+
"status IN ('running', 'passed', 'failed')",
|
|
2882
|
+
"origin IN ('scheduled', 'manual')",
|
|
2883
|
+
],
|
|
2688
2884
|
};
|
|
2689
2885
|
const quoteIdentifier = (identifier) => `"${identifier.replace(/"/g, '""')}"`;
|
|
2690
2886
|
const normalizeSql = (sql) => sql
|
|
@@ -3009,6 +3205,17 @@ const collectMissingMediaEnterpriseOpsSchema = (database) => [
|
|
|
3009
3205
|
item.includes('eval_sets') ||
|
|
3010
3206
|
item.includes('eval_runs')),
|
|
3011
3207
|
];
|
|
3208
|
+
const collectMissingMfaPushRecoverySchema = (database) => [
|
|
3209
|
+
...collectMissingColumns(database, MFA_PUSH_RECOVERY_REQUIRED_SCHEMA),
|
|
3210
|
+
...collectMissingStructuralInvariants(database).filter(item => item.includes('user_mfa') ||
|
|
3211
|
+
item.includes('mfa_recovery_codes') ||
|
|
3212
|
+
item.includes('webauthn_credentials') ||
|
|
3213
|
+
item.includes('push_subscriptions') ||
|
|
3214
|
+
item.includes('recovery_drills')),
|
|
3215
|
+
];
|
|
3216
|
+
const collectMissingAutomationWorkTargetSchema = (database) => collectMissingColumns(database, AUTOMATION_WORK_TARGET_REQUIRED_SCHEMA);
|
|
3217
|
+
const collectMissingWorkComputerSchema = (database) => collectMissingColumns(database, WORK_COMPUTER_REQUIRED_SCHEMA);
|
|
3218
|
+
const collectMissingWorkTakeoverSchema = (database) => collectMissingColumns(database, WORK_TAKEOVER_REQUIRED_SCHEMA);
|
|
3012
3219
|
const collectMissingIdentityAccountRetirementSchema = (database) => {
|
|
3013
3220
|
const row = database
|
|
3014
3221
|
.prepare("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'users'")
|
|
@@ -3052,6 +3259,12 @@ function collectMissingSchemaAtVersion(database, version) {
|
|
|
3052
3259
|
...(version >= 18 ? collectMissingNotesV2Schema(database) : []),
|
|
3053
3260
|
...(version >= 19 ? collectMissingTeamCollaborationSchema(database) : []),
|
|
3054
3261
|
...(version >= 20 ? collectMissingMediaEnterpriseOpsSchema(database) : []),
|
|
3262
|
+
...(version >= 21 ? collectMissingMfaPushRecoverySchema(database) : []),
|
|
3263
|
+
...(version >= 22
|
|
3264
|
+
? collectMissingAutomationWorkTargetSchema(database)
|
|
3265
|
+
: []),
|
|
3266
|
+
...(version >= 23 ? collectMissingWorkComputerSchema(database) : []),
|
|
3267
|
+
...(version >= 24 ? collectMissingWorkTakeoverSchema(database) : []),
|
|
3055
3268
|
];
|
|
3056
3269
|
}
|
|
3057
3270
|
const collectMissingLegacyBootstrapSchema = (database) => {
|
|
@@ -3107,6 +3320,10 @@ const SKILL_FILES_MIGRATION_CHECKSUM = '584e1f9bca79eb5974f997088636d74d7f2c1e5f
|
|
|
3107
3320
|
const NOTES_V2_MIGRATION_CHECKSUM = '05a6758ab2b2a54f9097a5d5604a2bd57e085f1dd16816b5dc96d1eb7a41a399';
|
|
3108
3321
|
const TEAM_COLLABORATION_MIGRATION_CHECKSUM = '1cf021c941cfd9207a82e794e58d7553ae24a35b3f8f8a84bb4a0e06d0d77443';
|
|
3109
3322
|
const MEDIA_ENTERPRISE_OPS_MIGRATION_CHECKSUM = 'c6bc6d98518f7a279ad7109cfdfcd8a75fbf7e3e157c50bca98142b50ac0f38b';
|
|
3323
|
+
const MFA_PUSH_RECOVERY_MIGRATION_CHECKSUM = '9b2cdc08d2316877af091587113c749aed4b224d6ee12e72626b830da5447005';
|
|
3324
|
+
const WORK_COMPUTER_MIGRATION_CHECKSUM = 'b86fa1e6cb13bd76129db93043007cf7dd6888b85bd0139dfc34dbe394069867';
|
|
3325
|
+
const AUTOMATION_WORK_TARGET_MIGRATION_CHECKSUM = 'e5fb43e9bf42ab206dce74bfd867d5001754983c7a3cef30b811c4d4da54d1a9';
|
|
3326
|
+
const WORK_TAKEOVER_MIGRATION_CHECKSUM = '739dc7f86890961573baba8fdf8859bccf1e9e5ba9625288183582fc6be5c1b0';
|
|
3110
3327
|
const MIGRATIONS = [
|
|
3111
3328
|
{
|
|
3112
3329
|
version: 1,
|
|
@@ -3398,6 +3615,56 @@ const MIGRATIONS = [
|
|
|
3398
3615
|
}
|
|
3399
3616
|
},
|
|
3400
3617
|
},
|
|
3618
|
+
{
|
|
3619
|
+
version: 21,
|
|
3620
|
+
name: 'mfa-push-recovery',
|
|
3621
|
+
checksum: MFA_PUSH_RECOVERY_MIGRATION_CHECKSUM,
|
|
3622
|
+
apply(database) {
|
|
3623
|
+
database.exec(MFA_PUSH_RECOVERY_TABLES_SQL);
|
|
3624
|
+
const missing = collectMissingMfaPushRecoverySchema(database);
|
|
3625
|
+
if (missing.length > 0) {
|
|
3626
|
+
throw new Error(`SQLite mfa/push/recovery schema is incomplete; missing ${missing.join(', ')}`);
|
|
3627
|
+
}
|
|
3628
|
+
},
|
|
3629
|
+
},
|
|
3630
|
+
{
|
|
3631
|
+
version: 22,
|
|
3632
|
+
name: 'automation-work-target',
|
|
3633
|
+
checksum: AUTOMATION_WORK_TARGET_MIGRATION_CHECKSUM,
|
|
3634
|
+
apply(database) {
|
|
3635
|
+
addColumnIfMissing(database, 'automations', 'target', "TEXT NOT NULL DEFAULT 'chat'");
|
|
3636
|
+
addColumnIfMissing(database, 'automations', 'work_policy_id', 'TEXT');
|
|
3637
|
+
addColumnIfMissing(database, 'automation_runs', 'work_task_id', 'TEXT');
|
|
3638
|
+
const missing = collectMissingAutomationWorkTargetSchema(database);
|
|
3639
|
+
if (missing.length > 0) {
|
|
3640
|
+
throw new Error(`SQLite automation work-target schema is incomplete; missing ${missing.join(', ')}`);
|
|
3641
|
+
}
|
|
3642
|
+
},
|
|
3643
|
+
},
|
|
3644
|
+
{
|
|
3645
|
+
version: 23,
|
|
3646
|
+
name: 'work-computer',
|
|
3647
|
+
checksum: WORK_COMPUTER_MIGRATION_CHECKSUM,
|
|
3648
|
+
apply(database) {
|
|
3649
|
+
addColumnIfMissing(database, 'work_policies', 'gui_enabled', 'INTEGER');
|
|
3650
|
+
const missing = collectMissingWorkComputerSchema(database);
|
|
3651
|
+
if (missing.length > 0) {
|
|
3652
|
+
throw new Error(`SQLite work computer schema is incomplete; missing ${missing.join(', ')}`);
|
|
3653
|
+
}
|
|
3654
|
+
},
|
|
3655
|
+
},
|
|
3656
|
+
{
|
|
3657
|
+
version: 24,
|
|
3658
|
+
name: 'work-takeover',
|
|
3659
|
+
checksum: WORK_TAKEOVER_MIGRATION_CHECKSUM,
|
|
3660
|
+
apply(database) {
|
|
3661
|
+
addColumnIfMissing(database, 'work_policies', 'takeover_enabled', 'INTEGER');
|
|
3662
|
+
const missing = collectMissingWorkTakeoverSchema(database);
|
|
3663
|
+
if (missing.length > 0) {
|
|
3664
|
+
throw new Error(`SQLite work takeover schema is incomplete; missing ${missing.join(', ')}`);
|
|
3665
|
+
}
|
|
3666
|
+
},
|
|
3667
|
+
},
|
|
3401
3668
|
];
|
|
3402
3669
|
/**
|
|
3403
3670
|
* Whether a pending migration needs foreign-key enforcement suspended before
|