libre-webui 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -22
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +26 -4
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/middleware/auth.d.ts +7 -0
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +26 -0
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/middleware/index.d.ts +20 -0
- package/backend/dist/middleware/index.d.ts.map +1 -1
- package/backend/dist/middleware/index.js +105 -2
- package/backend/dist/middleware/index.js.map +1 -1
- package/backend/dist/models/personaModel.d.ts.map +1 -1
- package/backend/dist/models/personaModel.js +2 -0
- package/backend/dist/models/personaModel.js.map +1 -1
- package/backend/dist/observability/otel.d.ts +40 -0
- package/backend/dist/observability/otel.d.ts.map +1 -0
- package/backend/dist/observability/otel.js +337 -0
- package/backend/dist/observability/otel.js.map +1 -0
- package/backend/dist/observability/requestContext.d.ts +14 -0
- package/backend/dist/observability/requestContext.d.ts.map +1 -0
- package/backend/dist/observability/requestContext.js +21 -0
- package/backend/dist/observability/requestContext.js.map +1 -0
- package/backend/dist/persistence/chatGenerationTypes.d.ts +9 -0
- package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -1
- package/backend/dist/persistence/extensionTypes.d.ts +13 -0
- package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
- package/backend/dist/persistence/extensionTypes.js.map +1 -1
- package/backend/dist/persistence/index.d.ts +1 -1
- package/backend/dist/persistence/index.d.ts.map +1 -1
- package/backend/dist/persistence/index.js.map +1 -1
- package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.js +164 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.js.map +1 -0
- package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresExtensionRepositories.js +46 -2
- package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts +10 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js +148 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js.map +1 -0
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +10 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresNotesV2Migration.d.ts +4 -0
- package/backend/dist/persistence/postgresNotesV2Migration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresNotesV2Migration.js +57 -0
- package/backend/dist/persistence/postgresNotesV2Migration.js.map +1 -0
- package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresResourceRepositories.js +1646 -11
- package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresSkillFilesMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.js +50 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.js.map +1 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts +10 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.js +161 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.js.map +1 -0
- package/backend/dist/persistence/resourceTypes.d.ts +541 -3
- package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
- package/backend/dist/persistence/resourceTypes.js.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.js +26 -4
- package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.d.ts +9 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +1196 -29
- 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 +1523 -134
- package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +257 -3
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.d.ts +8 -0
- package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.js +8 -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 +310 -3
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -1
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +4 -2
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -1
- package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -1
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js +4 -2
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -1
- package/backend/dist/platform/storage/pgVectorStore.d.ts +2 -1
- package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/pgVectorStore.js +51 -0
- package/backend/dist/platform/storage/pgVectorStore.js.map +1 -1
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts +8 -2
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +25 -4
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +2 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +35 -0
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -1
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +26 -3
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -1
- package/backend/dist/platform/storage/vectorStore.d.ts +14 -0
- package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/vectorStore.js.map +1 -1
- package/backend/dist/routes/access.d.ts.map +1 -1
- package/backend/dist/routes/access.js +84 -3
- package/backend/dist/routes/access.js.map +1 -1
- package/backend/dist/routes/calendar.d.ts.map +1 -1
- package/backend/dist/routes/calendar.js +125 -22
- package/backend/dist/routes/calendar.js.map +1 -1
- package/backend/dist/routes/channels.d.ts +3 -0
- package/backend/dist/routes/channels.d.ts.map +1 -0
- package/backend/dist/routes/channels.js +447 -0
- package/backend/dist/routes/channels.js.map +1 -0
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +195 -7
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/costs.d.ts +3 -0
- package/backend/dist/routes/costs.d.ts.map +1 -0
- package/backend/dist/routes/costs.js +191 -0
- package/backend/dist/routes/costs.js.map +1 -0
- package/backend/dist/routes/documents.d.ts.map +1 -1
- package/backend/dist/routes/documents.js +64 -21
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/evaluations.d.ts +3 -0
- package/backend/dist/routes/evaluations.d.ts.map +1 -0
- package/backend/dist/routes/evaluations.js +352 -0
- package/backend/dist/routes/evaluations.js.map +1 -0
- package/backend/dist/routes/imageGen.d.ts.map +1 -1
- package/backend/dist/routes/imageGen.js +2 -1
- package/backend/dist/routes/imageGen.js.map +1 -1
- package/backend/dist/routes/media.d.ts.map +1 -1
- package/backend/dist/routes/media.js +228 -7
- 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 +149 -36
- package/backend/dist/routes/notes.js.map +1 -1
- package/backend/dist/routes/notifications.d.ts +3 -0
- package/backend/dist/routes/notifications.d.ts.map +1 -0
- package/backend/dist/routes/notifications.js +213 -0
- package/backend/dist/routes/notifications.js.map +1 -0
- package/backend/dist/routes/openaiCompat.d.ts +3 -0
- package/backend/dist/routes/openaiCompat.d.ts.map +1 -0
- package/backend/dist/routes/openaiCompat.js +314 -0
- package/backend/dist/routes/openaiCompat.js.map +1 -0
- package/backend/dist/routes/personas.js +1 -1
- package/backend/dist/routes/personas.js.map +1 -1
- package/backend/dist/routes/prompts.d.ts +3 -0
- package/backend/dist/routes/prompts.d.ts.map +1 -0
- package/backend/dist/routes/prompts.js +173 -0
- package/backend/dist/routes/prompts.js.map +1 -0
- package/backend/dist/routes/search.d.ts.map +1 -1
- package/backend/dist/routes/search.js +29 -1
- package/backend/dist/routes/search.js.map +1 -1
- package/backend/dist/routes/skills.d.ts +3 -0
- package/backend/dist/routes/skills.d.ts.map +1 -0
- package/backend/dist/routes/skills.js +246 -0
- package/backend/dist/routes/skills.js.map +1 -0
- package/backend/dist/routes/stt.d.ts.map +1 -1
- package/backend/dist/routes/stt.js +2 -1
- package/backend/dist/routes/stt.js.map +1 -1
- package/backend/dist/routes/tools.d.ts +3 -0
- package/backend/dist/routes/tools.d.ts.map +1 -0
- package/backend/dist/routes/tools.js +359 -0
- package/backend/dist/routes/tools.js.map +1 -0
- package/backend/dist/routes/tts.d.ts.map +1 -1
- package/backend/dist/routes/tts.js +63 -8
- package/backend/dist/routes/tts.js.map +1 -1
- package/backend/dist/routes/voiceAccess.d.ts +3 -0
- package/backend/dist/routes/voiceAccess.d.ts.map +1 -0
- package/backend/dist/routes/voiceAccess.js +102 -0
- package/backend/dist/routes/voiceAccess.js.map +1 -0
- package/backend/dist/services/apiTokenService.d.ts +2 -2
- package/backend/dist/services/apiTokenService.d.ts.map +1 -1
- package/backend/dist/services/apiTokenService.js +7 -0
- package/backend/dist/services/apiTokenService.js.map +1 -1
- package/backend/dist/services/authorizationService.d.ts +8 -4
- package/backend/dist/services/authorizationService.d.ts.map +1 -1
- package/backend/dist/services/authorizationService.js +31 -1
- package/backend/dist/services/authorizationService.js.map +1 -1
- package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
- package/backend/dist/services/automationSchedulerService.js +33 -3
- 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 +25 -2
- package/backend/dist/services/automationService.js.map +1 -1
- package/backend/dist/services/builtinToolsService.d.ts +20 -0
- package/backend/dist/services/builtinToolsService.d.ts.map +1 -0
- package/backend/dist/services/builtinToolsService.js +661 -0
- package/backend/dist/services/builtinToolsService.js.map +1 -0
- package/backend/dist/services/calendarService.d.ts +74 -0
- package/backend/dist/services/calendarService.d.ts.map +1 -0
- package/backend/dist/services/calendarService.js +339 -0
- package/backend/dist/services/calendarService.js.map +1 -0
- package/backend/dist/services/channelService.d.ts +195 -0
- package/backend/dist/services/channelService.d.ts.map +1 -0
- package/backend/dist/services/channelService.js +1057 -0
- package/backend/dist/services/channelService.js.map +1 -0
- package/backend/dist/services/chatRequestService.d.ts.map +1 -1
- package/backend/dist/services/chatRequestService.js +29 -1
- package/backend/dist/services/chatRequestService.js.map +1 -1
- package/backend/dist/services/chatService.d.ts +61 -1
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +218 -1
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/chatToolRuntimeService.d.ts +55 -0
- package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -0
- package/backend/dist/services/chatToolRuntimeService.js +389 -0
- package/backend/dist/services/chatToolRuntimeService.js.map +1 -0
- package/backend/dist/services/costGovernanceService.d.ts +102 -0
- package/backend/dist/services/costGovernanceService.d.ts.map +1 -0
- package/backend/dist/services/costGovernanceService.js +463 -0
- package/backend/dist/services/costGovernanceService.js.map +1 -0
- package/backend/dist/services/dataArchiveService.d.ts +6 -0
- package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
- package/backend/dist/services/dataArchiveService.js +23 -4
- package/backend/dist/services/dataArchiveService.js.map +1 -1
- package/backend/dist/services/documentService.d.ts +58 -1
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +289 -84
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/durableChatGenerationService.d.ts +9 -0
- package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/durableChatGenerationService.js +152 -11
- package/backend/dist/services/durableChatGenerationService.js.map +1 -1
- package/backend/dist/services/evaluationService.d.ts +111 -0
- package/backend/dist/services/evaluationService.d.ts.map +1 -0
- package/backend/dist/services/evaluationService.js +403 -0
- package/backend/dist/services/evaluationService.js.map +1 -0
- package/backend/dist/services/galleryService.d.ts +6 -0
- package/backend/dist/services/galleryService.d.ts.map +1 -1
- package/backend/dist/services/galleryService.js +26 -0
- package/backend/dist/services/galleryService.js.map +1 -1
- package/backend/dist/services/mcpClientService.d.ts +29 -0
- package/backend/dist/services/mcpClientService.d.ts.map +1 -0
- package/backend/dist/services/mcpClientService.js +189 -0
- package/backend/dist/services/mcpClientService.js.map +1 -0
- package/backend/dist/services/noteService.d.ts +71 -0
- package/backend/dist/services/noteService.d.ts.map +1 -0
- package/backend/dist/services/noteService.js +397 -0
- package/backend/dist/services/noteService.js.map +1 -0
- package/backend/dist/services/notificationService.d.ts +55 -0
- package/backend/dist/services/notificationService.d.ts.map +1 -0
- package/backend/dist/services/notificationService.js +308 -0
- package/backend/dist/services/notificationService.js.map +1 -0
- package/backend/dist/services/openApiToolService.d.ts +38 -0
- package/backend/dist/services/openApiToolService.d.ts.map +1 -0
- package/backend/dist/services/openApiToolService.js +254 -0
- package/backend/dist/services/openApiToolService.js.map +1 -0
- package/backend/dist/services/personaService.d.ts +18 -2
- package/backend/dist/services/personaService.d.ts.map +1 -1
- package/backend/dist/services/personaService.js +113 -4
- package/backend/dist/services/personaService.js.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.d.ts +19 -0
- package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.js +121 -0
- package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts +7 -0
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +8 -2
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/promptService.d.ts +74 -0
- package/backend/dist/services/promptService.d.ts.map +1 -0
- package/backend/dist/services/promptService.js +513 -0
- package/backend/dist/services/promptService.js.map +1 -0
- package/backend/dist/services/resourceGrantService.d.ts.map +1 -1
- package/backend/dist/services/resourceGrantService.js +62 -17
- package/backend/dist/services/resourceGrantService.js.map +1 -1
- package/backend/dist/services/searchService.d.ts +29 -0
- package/backend/dist/services/searchService.d.ts.map +1 -0
- package/backend/dist/services/searchService.js +0 -0
- package/backend/dist/services/searchService.js.map +1 -0
- package/backend/dist/services/securityAuditService.d.ts.map +1 -1
- package/backend/dist/services/securityAuditService.js +2 -1
- package/backend/dist/services/securityAuditService.js.map +1 -1
- package/backend/dist/services/sharedResourceAccess.d.ts +25 -0
- package/backend/dist/services/sharedResourceAccess.d.ts.map +1 -0
- package/backend/dist/services/sharedResourceAccess.js +59 -0
- package/backend/dist/services/sharedResourceAccess.js.map +1 -0
- package/backend/dist/services/skillService.d.ts +137 -0
- package/backend/dist/services/skillService.d.ts.map +1 -0
- package/backend/dist/services/skillService.js +852 -0
- package/backend/dist/services/skillService.js.map +1 -0
- package/backend/dist/services/toolAccessService.d.ts +9 -0
- package/backend/dist/services/toolAccessService.d.ts.map +1 -0
- package/backend/dist/services/toolAccessService.js +60 -0
- package/backend/dist/services/toolAccessService.js.map +1 -0
- package/backend/dist/services/toolApprovalService.d.ts +34 -0
- package/backend/dist/services/toolApprovalService.d.ts.map +1 -0
- package/backend/dist/services/toolApprovalService.js +188 -0
- package/backend/dist/services/toolApprovalService.js.map +1 -0
- package/backend/dist/services/toolGatewayService.d.ts +53 -0
- package/backend/dist/services/toolGatewayService.d.ts.map +1 -0
- package/backend/dist/services/toolGatewayService.js +249 -0
- package/backend/dist/services/toolGatewayService.js.map +1 -0
- package/backend/dist/services/toolServerService.d.ts +57 -0
- package/backend/dist/services/toolServerService.d.ts.map +1 -0
- package/backend/dist/services/toolServerService.js +521 -0
- package/backend/dist/services/toolServerService.js.map +1 -0
- package/backend/dist/services/voiceAccessService.d.ts +10 -0
- package/backend/dist/services/voiceAccessService.d.ts.map +1 -0
- package/backend/dist/services/voiceAccessService.js +74 -0
- package/backend/dist/services/voiceAccessService.js.map +1 -0
- package/backend/dist/services/voiceProfileService.d.ts +20 -0
- package/backend/dist/services/voiceProfileService.d.ts.map +1 -1
- package/backend/dist/services/voiceProfileService.js +60 -0
- package/backend/dist/services/voiceProfileService.js.map +1 -1
- package/backend/dist/storage.d.ts +28 -1
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +100 -1
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/storageMappers.d.ts +2 -2
- package/backend/dist/storageMappers.d.ts.map +1 -1
- package/backend/dist/storageMappers.js.map +1 -1
- package/backend/dist/types/index.d.ts +197 -2
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/types/tools.d.ts +137 -0
- package/backend/dist/types/tools.d.ts.map +1 -0
- package/backend/dist/types/tools.js +25 -0
- package/backend/dist/types/tools.js.map +1 -0
- package/backend/dist/utils/chatDocumentContext.d.ts +26 -1
- package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
- package/backend/dist/utils/chatDocumentContext.js +87 -18
- package/backend/dist/utils/chatDocumentContext.js.map +1 -1
- package/backend/dist/utils/documentExtraction.d.ts +69 -0
- package/backend/dist/utils/documentExtraction.d.ts.map +1 -0
- package/backend/dist/utils/documentExtraction.js +545 -0
- package/backend/dist/utils/documentExtraction.js.map +1 -0
- package/backend/dist/utils/hybridRetrieval.d.ts +34 -0
- package/backend/dist/utils/hybridRetrieval.d.ts.map +1 -0
- package/backend/dist/utils/hybridRetrieval.js +119 -0
- package/backend/dist/utils/hybridRetrieval.js.map +1 -0
- package/backend/dist/utils/icsCalendar.d.ts +27 -0
- package/backend/dist/utils/icsCalendar.d.ts.map +1 -0
- package/backend/dist/utils/icsCalendar.js +313 -0
- package/backend/dist/utils/icsCalendar.js.map +1 -0
- package/backend/dist/utils/imageEditUpload.d.ts +29 -0
- package/backend/dist/utils/imageEditUpload.d.ts.map +1 -0
- package/backend/dist/utils/imageEditUpload.js +82 -0
- package/backend/dist/utils/imageEditUpload.js.map +1 -0
- package/backend/dist/utils/logRedaction.d.ts +2 -0
- package/backend/dist/utils/logRedaction.d.ts.map +1 -0
- package/backend/dist/utils/logRedaction.js +66 -0
- package/backend/dist/utils/logRedaction.js.map +1 -0
- package/backend/dist/utils/logger.d.ts +3 -0
- package/backend/dist/utils/logger.d.ts.map +1 -1
- package/backend/dist/utils/logger.js +63 -20
- package/backend/dist/utils/logger.js.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts +5 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.js +83 -0
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
- package/backend/dist/utils/resourceLimits.d.ts +61 -2
- package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
- package/backend/dist/utils/resourceLimits.js +59 -0
- package/backend/dist/utils/resourceLimits.js.map +1 -1
- package/backend/dist/utils/toolEgress.d.ts +22 -0
- package/backend/dist/utils/toolEgress.d.ts.map +1 -0
- package/backend/dist/utils/toolEgress.js +157 -0
- package/backend/dist/utils/toolEgress.js.map +1 -0
- package/backend/dist/utils/websocketMessages.d.ts +6 -0
- package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
- package/backend/dist/utils/websocketMessages.js +8 -0
- package/backend/dist/utils/websocketMessages.js.map +1 -1
- package/backend/dist/utils/zipArchive.d.ts +32 -0
- package/backend/dist/utils/zipArchive.d.ts.map +1 -0
- package/backend/dist/utils/zipArchive.js +171 -0
- package/backend/dist/utils/zipArchive.js.map +1 -0
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +142 -35
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/package.json +1 -1
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-BPsH9FII.js +80 -0
- package/frontend/dist/assets/index-BtXF0Oxa.css +1 -0
- package/frontend/dist/index.html +18 -18
- package/frontend/dist/js/{ArtifactContainer-CpUi6ekF.js → ArtifactContainer-CIoFoMv8.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-BeNs3gHp.js → ArtifactDemoPage-D0JEIAbZ.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-qsj_Y3LV.js → ArtifactSandboxFrame-REazyIrx.js} +2 -2
- package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +1 -0
- package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +1 -0
- package/frontend/dist/js/{Button-BPf_pOxH.js → Button-C0r3J9G_.js} +1 -1
- package/frontend/dist/js/CalendarPage-DLjasZOd.js +1 -0
- package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +1 -0
- package/frontend/dist/js/ChatPage-BAgBHUES.js +16 -0
- package/frontend/dist/js/EvaluationsPage-Bm8FRoeX.js +2 -0
- package/frontend/dist/js/{FirstTimeSetup-Df0YJni3.js → FirstTimeSetup-BxJapNul.js} +1 -1
- package/frontend/dist/js/GalleryPage-DHz9DkK7.js +1 -0
- package/frontend/dist/js/HomePage-BqNy-FWX.js +1 -0
- package/frontend/dist/js/LibreClawPage-BDzDILjY.js +1 -0
- package/frontend/dist/js/{ModelManagerModals-DcLGYN3l.js → ModelManagerModals-DX9eT5r2.js} +1 -1
- package/frontend/dist/js/ModelSelector-ol8mK2ja.js +1 -0
- package/frontend/dist/js/NotesPage-DzHEx2O4.js +3 -0
- package/frontend/dist/js/{OptimizedSyntaxHighlighter-Dz7D1LPB.js → OptimizedSyntaxHighlighter-CZNPwN0i.js} +1 -1
- package/frontend/dist/js/PersonasPage-M_WKH2a9.js +13 -0
- package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +1 -0
- package/frontend/dist/js/RichMessageContent-BqgafH4p.js +3 -0
- package/frontend/dist/js/SettingsModal-R9EDadAV.js +19 -0
- package/frontend/dist/js/{SettingsToggle-woG_WebF.js → SettingsToggle-BIVyfGjl.js} +1 -1
- package/frontend/dist/js/SystemPage-aOkrSuY7.js +1 -0
- package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +1 -0
- package/frontend/dist/js/WorkPage-DxZISerQ.js +6 -0
- package/frontend/dist/js/api-6bSMtSNh.js +14 -0
- package/frontend/dist/js/{appStore-0JnCUlEq.js → appStore-CdObhQBb.js} +2 -2
- package/frontend/dist/js/ar-DT_VLBO3.js +2 -0
- package/frontend/dist/js/{authStore-DbMdvNgJ.js → authStore-DbqqrfZv.js} +3 -3
- package/frontend/dist/js/{babel-BsYoxD-7.js → babel-DSqqk5kt.js} +1 -1
- package/frontend/dist/js/bn-BrvEqhGA.js +2 -0
- package/frontend/dist/js/chatStore-DbZPJNsu.js +3 -0
- package/frontend/dist/js/{config-DSOYQ9a3.js → config-8KdgjtEx.js} +1 -1
- package/frontend/dist/js/cs-BthnM_YI.js +2 -0
- package/frontend/dist/js/da-DCth-6_j.js +2 -0
- package/frontend/dist/js/de-BBWt0gJ_.js +2 -0
- package/frontend/dist/js/es-DuslOPqM.js +2 -0
- package/frontend/dist/js/{estree-BcnBcOAx.js → estree-BU5-LV_1.js} +3 -3
- package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +1 -0
- package/frontend/dist/js/fr-DZAeg46S.js +2 -0
- package/frontend/dist/js/hi-ijDSiY77.js +2 -0
- package/frontend/dist/js/{html-DkY55Jys.js → html-DeoAy2bo.js} +2 -2
- package/frontend/dist/js/id-BS6qS0oq.js +2 -0
- package/frontend/dist/js/is-CO2PMDte.js +2 -0
- package/frontend/dist/js/it-ChhxT4hs.js +2 -0
- package/frontend/dist/js/ja-cyeqUeJN.js +2 -0
- package/frontend/dist/js/ko-CfqHTLXj.js +2 -0
- package/frontend/dist/js/{markdown-IZSI9DXw.js → markdown-DOLsYkBY.js} +3 -3
- package/frontend/dist/js/markdown-core-BK7WVOb7.js +32 -0
- package/frontend/dist/js/{markdown-math-DK846gXU.js → markdown-math-e1ByS3KY.js} +5 -5
- package/frontend/dist/js/{messageCodeStyles-BFNR9Wv6.js → messageCodeStyles-DhVgizF-.js} +2 -2
- package/frontend/dist/js/ms-DZ5pACe1.js +2 -0
- package/frontend/dist/js/nl-BsRsnOVp.js +2 -0
- package/frontend/dist/js/pl-DXSTAW4M.js +2 -0
- package/frontend/dist/js/{postcss-BJ0okz7n.js → postcss-Bg15EcFE.js} +1 -1
- package/frontend/dist/js/pt-DmDx0JxB.js +2 -0
- package/frontend/dist/js/{react-vendor-C5yShNlM.js → react-vendor-BG_HPV6X.js} +1 -1
- package/frontend/dist/js/router-vendor-CbexJIsv.js +1 -0
- package/frontend/dist/js/ru-d2g8EWfY.js +2 -0
- package/frontend/dist/js/{standalone-Csw3jfJ_.js → standalone-BO5pzI8_.js} +3 -3
- package/frontend/dist/js/sv-CIhYUTVQ.js +2 -0
- package/frontend/dist/js/{syntax-highlight-3EEX6CGL.js → syntax-highlight-DcR9Vhb7.js} +3 -3
- package/frontend/dist/js/th-B3wSxanB.js +2 -0
- package/frontend/dist/js/tr-R4UGgPOY.js +2 -0
- package/frontend/dist/js/{typescript-CnF4UVx7.js → typescript-6GJ8APmn.js} +1 -1
- package/frontend/dist/js/ui-CV0LYmkM.js +2 -0
- package/frontend/dist/js/ui-vendor-CWjIBW-z.js +177 -0
- package/frontend/dist/js/uk-BzUF4Vkt.js +2 -0
- package/frontend/dist/js/{useTranslation-Bho4HCyg.js → useTranslation-5b5UhAc9.js} +1 -1
- package/frontend/dist/js/{utils-D9W1Lnkn.js → utils-BGrdX9ie.js} +1 -1
- package/frontend/dist/js/{utils-vendor-DWh39_3x.js → utils-vendor-9bQ62WeD.js} +1 -1
- package/frontend/dist/js/vi-CKc6Fg4h.js +2 -0
- package/frontend/dist/js/{workApi-C3uy9EDT.js → workApi-BruWTlHM.js} +3 -3
- package/frontend/dist/js/{yaml-DzT5hBSH.js → yaml-DUeWcOOH.js} +2 -2
- package/frontend/dist/js/zh-CXL-kDe8.js +2 -0
- package/package.json +2 -2
- package/plugins/openai.json +52 -9
- package/frontend/dist/assets/index-6o-Hc2wS.js +0 -41
- package/frontend/dist/assets/index-D-pM957b.css +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-CSFRluWA.js +0 -1
- package/frontend/dist/js/AutomationsPage-KUeWoZNv.js +0 -1
- package/frontend/dist/js/CalendarPage-D9I972w8.js +0 -1
- package/frontend/dist/js/ChatPage-CmBx4oAL.js +0 -16
- package/frontend/dist/js/GalleryPage-bLCrdJN_.js +0 -1
- package/frontend/dist/js/HomePage-Uc6PEg-U.js +0 -1
- package/frontend/dist/js/LibreClawPage-CG63DHg1.js +0 -1
- package/frontend/dist/js/ModelSelector-yxJC64rM.js +0 -1
- package/frontend/dist/js/ModelsPage-1R_TxgmJ.js +0 -2
- package/frontend/dist/js/NotesPage-L65j5HoW.js +0 -1
- package/frontend/dist/js/PersonasPage-CKeBpHIH.js +0 -13
- package/frontend/dist/js/PluginUsagePage-BX1SKMbW.js +0 -1
- package/frontend/dist/js/RichMessageContent-DiySVYGB.js +0 -3
- package/frontend/dist/js/SettingsModal-68SG1uZ2.js +0 -1
- package/frontend/dist/js/SystemPage-CytpZiQV.js +0 -1
- package/frontend/dist/js/UserManagementPage-BzJBvZiS.js +0 -1
- package/frontend/dist/js/WorkPage-C8gr0QJe.js +0 -6
- package/frontend/dist/js/api-BDtqBtqw.js +0 -14
- package/frontend/dist/js/ar-CSpi37Gr.js +0 -2
- package/frontend/dist/js/bn-CyH1BeDD.js +0 -2
- package/frontend/dist/js/chatStore-CHQ2uINS.js +0 -3
- package/frontend/dist/js/cs-Cv2NfRK5.js +0 -2
- package/frontend/dist/js/da-D6D6IvPK.js +0 -2
- package/frontend/dist/js/de-BNoJJTrT.js +0 -2
- package/frontend/dist/js/es-kzo9C7q_.js +0 -2
- package/frontend/dist/js/fr-CjHYvJRp.js +0 -2
- package/frontend/dist/js/hi-BU98AdCQ.js +0 -2
- package/frontend/dist/js/id-CpdedejX.js +0 -2
- package/frontend/dist/js/is-Cp5dDWBH.js +0 -2
- package/frontend/dist/js/it-CuH_cK4U.js +0 -2
- package/frontend/dist/js/ja-BWXXXiHn.js +0 -2
- package/frontend/dist/js/ko-DQgv2M1t.js +0 -2
- package/frontend/dist/js/markdown-core-BmPPZiuD.js +0 -31
- package/frontend/dist/js/ms-DCcRoIcX.js +0 -2
- package/frontend/dist/js/nl-CbKR1_EU.js +0 -2
- package/frontend/dist/js/pl-CRyJZccn.js +0 -2
- package/frontend/dist/js/pt-BXYmHFGH.js +0 -2
- package/frontend/dist/js/router-vendor-DGFGM3EP.js +0 -1
- package/frontend/dist/js/ru-M9SyZG4b.js +0 -2
- package/frontend/dist/js/sv-DJ486LTU.js +0 -2
- package/frontend/dist/js/th-Ch7gKtZv.js +0 -2
- package/frontend/dist/js/tr-ClehWhSC.js +0 -2
- package/frontend/dist/js/ui-CC-K19wO.js +0 -2
- package/frontend/dist/js/ui-vendor-B1UgO3vd.js +0 -177
- package/frontend/dist/js/uk-BqAd5zHF.js +0 -2
- package/frontend/dist/js/vi-D9gjlDVB.js +0 -2
- package/frontend/dist/js/zh-DKTyHkiR.js +0 -2
|
@@ -745,6 +745,274 @@ const PERSONAL_AUTOMATIONS_REQUIRED_SCHEMA = {
|
|
|
745
745
|
'created_at',
|
|
746
746
|
],
|
|
747
747
|
};
|
|
748
|
+
const AGENT_FOUNDATION_REQUIRED_SCHEMA = {
|
|
749
|
+
personas: ['bindings'],
|
|
750
|
+
tool_servers: [
|
|
751
|
+
'id',
|
|
752
|
+
'user_id',
|
|
753
|
+
'name',
|
|
754
|
+
'description',
|
|
755
|
+
'kind',
|
|
756
|
+
'base_url',
|
|
757
|
+
'spec',
|
|
758
|
+
'spec_digest',
|
|
759
|
+
'spec_revision',
|
|
760
|
+
'auth_mode',
|
|
761
|
+
'auth_header',
|
|
762
|
+
'access_mode',
|
|
763
|
+
'enabled',
|
|
764
|
+
'timeout_ms',
|
|
765
|
+
'max_response_bytes',
|
|
766
|
+
'created_at',
|
|
767
|
+
'updated_at',
|
|
768
|
+
],
|
|
769
|
+
tool_server_tools: [
|
|
770
|
+
'id',
|
|
771
|
+
'server_id',
|
|
772
|
+
'name',
|
|
773
|
+
'description',
|
|
774
|
+
'params_schema',
|
|
775
|
+
'detail',
|
|
776
|
+
'side_effect',
|
|
777
|
+
'enabled',
|
|
778
|
+
'created_at',
|
|
779
|
+
'updated_at',
|
|
780
|
+
],
|
|
781
|
+
tool_server_credentials: [
|
|
782
|
+
'id',
|
|
783
|
+
'server_id',
|
|
784
|
+
'user_id',
|
|
785
|
+
'secret',
|
|
786
|
+
'created_at',
|
|
787
|
+
'updated_at',
|
|
788
|
+
],
|
|
789
|
+
tool_approvals: [
|
|
790
|
+
'id',
|
|
791
|
+
'user_id',
|
|
792
|
+
'session_id',
|
|
793
|
+
'server_id',
|
|
794
|
+
'tool_name',
|
|
795
|
+
'call_id',
|
|
796
|
+
'arguments_digest',
|
|
797
|
+
'scope',
|
|
798
|
+
'status',
|
|
799
|
+
'created_at',
|
|
800
|
+
'resolved_at',
|
|
801
|
+
'expires_at',
|
|
802
|
+
],
|
|
803
|
+
prompts: [
|
|
804
|
+
'id',
|
|
805
|
+
'user_id',
|
|
806
|
+
'slug',
|
|
807
|
+
'title',
|
|
808
|
+
'description',
|
|
809
|
+
'content',
|
|
810
|
+
'variables',
|
|
811
|
+
'tags',
|
|
812
|
+
'version',
|
|
813
|
+
'created_at',
|
|
814
|
+
'updated_at',
|
|
815
|
+
],
|
|
816
|
+
prompt_versions: [
|
|
817
|
+
'id',
|
|
818
|
+
'prompt_id',
|
|
819
|
+
'version',
|
|
820
|
+
'content',
|
|
821
|
+
'variables',
|
|
822
|
+
'created_at',
|
|
823
|
+
],
|
|
824
|
+
skills: [
|
|
825
|
+
'id',
|
|
826
|
+
'user_id',
|
|
827
|
+
'slug',
|
|
828
|
+
'name',
|
|
829
|
+
'description',
|
|
830
|
+
'instructions',
|
|
831
|
+
'enabled',
|
|
832
|
+
'version',
|
|
833
|
+
'created_at',
|
|
834
|
+
'updated_at',
|
|
835
|
+
],
|
|
836
|
+
skill_versions: ['id', 'skill_id', 'version', 'instructions', 'created_at'],
|
|
837
|
+
};
|
|
838
|
+
const SKILL_FILES_REQUIRED_SCHEMA = {
|
|
839
|
+
skill_files: [
|
|
840
|
+
'id',
|
|
841
|
+
'skill_id',
|
|
842
|
+
'path',
|
|
843
|
+
'content',
|
|
844
|
+
'size',
|
|
845
|
+
'created_at',
|
|
846
|
+
'updated_at',
|
|
847
|
+
],
|
|
848
|
+
};
|
|
849
|
+
const NOTES_V2_REQUIRED_SCHEMA = {
|
|
850
|
+
notes: ['pinned'],
|
|
851
|
+
note_revisions: ['id', 'note_id', 'title', 'content', 'created_at'],
|
|
852
|
+
note_attachments: [
|
|
853
|
+
'id',
|
|
854
|
+
'note_id',
|
|
855
|
+
'blob_id',
|
|
856
|
+
'filename',
|
|
857
|
+
'content_type',
|
|
858
|
+
'size',
|
|
859
|
+
'created_at',
|
|
860
|
+
],
|
|
861
|
+
};
|
|
862
|
+
const TEAM_COLLABORATION_REQUIRED_SCHEMA = {
|
|
863
|
+
calendar_events: [
|
|
864
|
+
'calendar_id',
|
|
865
|
+
'reminder_minutes',
|
|
866
|
+
'last_reminded_occurrence',
|
|
867
|
+
],
|
|
868
|
+
calendars: ['id', 'user_id', 'name', 'color', 'created_at', 'updated_at'],
|
|
869
|
+
channels: [
|
|
870
|
+
'id',
|
|
871
|
+
'type',
|
|
872
|
+
'name',
|
|
873
|
+
'description',
|
|
874
|
+
'dm_key',
|
|
875
|
+
'created_by',
|
|
876
|
+
'created_at',
|
|
877
|
+
'updated_at',
|
|
878
|
+
'archived_at',
|
|
879
|
+
],
|
|
880
|
+
channel_members: [
|
|
881
|
+
'channel_id',
|
|
882
|
+
'user_id',
|
|
883
|
+
'role',
|
|
884
|
+
'joined_at',
|
|
885
|
+
'last_read_at',
|
|
886
|
+
],
|
|
887
|
+
channel_messages: [
|
|
888
|
+
'id',
|
|
889
|
+
'channel_id',
|
|
890
|
+
'user_id',
|
|
891
|
+
'parent_id',
|
|
892
|
+
'author_kind',
|
|
893
|
+
'model',
|
|
894
|
+
'content',
|
|
895
|
+
'metadata',
|
|
896
|
+
'created_at',
|
|
897
|
+
'updated_at',
|
|
898
|
+
'edited_at',
|
|
899
|
+
'deleted_at',
|
|
900
|
+
'pinned_at',
|
|
901
|
+
'pinned_by',
|
|
902
|
+
],
|
|
903
|
+
channel_reactions: ['id', 'message_id', 'user_id', 'emoji', 'created_at'],
|
|
904
|
+
channel_attachments: [
|
|
905
|
+
'id',
|
|
906
|
+
'message_id',
|
|
907
|
+
'channel_id',
|
|
908
|
+
'blob_id',
|
|
909
|
+
'filename',
|
|
910
|
+
'content_type',
|
|
911
|
+
'size',
|
|
912
|
+
'created_by',
|
|
913
|
+
'created_at',
|
|
914
|
+
],
|
|
915
|
+
notifications: [
|
|
916
|
+
'id',
|
|
917
|
+
'user_id',
|
|
918
|
+
'type',
|
|
919
|
+
'title',
|
|
920
|
+
'body',
|
|
921
|
+
'href',
|
|
922
|
+
'source_key',
|
|
923
|
+
'created_at',
|
|
924
|
+
'read_at',
|
|
925
|
+
],
|
|
926
|
+
webhook_targets: [
|
|
927
|
+
'id',
|
|
928
|
+
'name',
|
|
929
|
+
'url',
|
|
930
|
+
'secret',
|
|
931
|
+
'events',
|
|
932
|
+
'enabled',
|
|
933
|
+
'created_by',
|
|
934
|
+
'created_at',
|
|
935
|
+
'updated_at',
|
|
936
|
+
],
|
|
937
|
+
};
|
|
938
|
+
const MEDIA_ENTERPRISE_OPS_REQUIRED_SCHEMA = {
|
|
939
|
+
voice_profiles: [
|
|
940
|
+
'consent_expires_at',
|
|
941
|
+
'revoked_at',
|
|
942
|
+
'transfer_count',
|
|
943
|
+
'last_transfer_at',
|
|
944
|
+
],
|
|
945
|
+
model_tariffs: [
|
|
946
|
+
'id',
|
|
947
|
+
'plugin_id',
|
|
948
|
+
'model',
|
|
949
|
+
'input_per_million',
|
|
950
|
+
'output_per_million',
|
|
951
|
+
'unit_price',
|
|
952
|
+
'currency',
|
|
953
|
+
'effective_from',
|
|
954
|
+
'created_by',
|
|
955
|
+
'created_at',
|
|
956
|
+
],
|
|
957
|
+
usage_budgets: [
|
|
958
|
+
'id',
|
|
959
|
+
'name',
|
|
960
|
+
'principal_type',
|
|
961
|
+
'principal_id',
|
|
962
|
+
'period',
|
|
963
|
+
'amount_usd',
|
|
964
|
+
'mode',
|
|
965
|
+
'created_by',
|
|
966
|
+
'created_at',
|
|
967
|
+
'updated_at',
|
|
968
|
+
],
|
|
969
|
+
message_feedback: [
|
|
970
|
+
'id',
|
|
971
|
+
'user_id',
|
|
972
|
+
'session_id',
|
|
973
|
+
'message_id',
|
|
974
|
+
'rating',
|
|
975
|
+
'tags',
|
|
976
|
+
'comment',
|
|
977
|
+
'model',
|
|
978
|
+
'plugin_id',
|
|
979
|
+
'snapshot',
|
|
980
|
+
'created_at',
|
|
981
|
+
'updated_at',
|
|
982
|
+
],
|
|
983
|
+
arena_votes: [
|
|
984
|
+
'id',
|
|
985
|
+
'user_id',
|
|
986
|
+
'compare_group',
|
|
987
|
+
'model_a',
|
|
988
|
+
'model_b',
|
|
989
|
+
'winner',
|
|
990
|
+
'created_at',
|
|
991
|
+
],
|
|
992
|
+
eval_sets: [
|
|
993
|
+
'id',
|
|
994
|
+
'user_id',
|
|
995
|
+
'name',
|
|
996
|
+
'description',
|
|
997
|
+
'items',
|
|
998
|
+
'created_at',
|
|
999
|
+
'updated_at',
|
|
1000
|
+
],
|
|
1001
|
+
eval_runs: [
|
|
1002
|
+
'id',
|
|
1003
|
+
'set_id',
|
|
1004
|
+
'user_id',
|
|
1005
|
+
'label',
|
|
1006
|
+
'plugin_id',
|
|
1007
|
+
'model',
|
|
1008
|
+
'status',
|
|
1009
|
+
'results',
|
|
1010
|
+
'error',
|
|
1011
|
+
'created_at',
|
|
1012
|
+
'updated_at',
|
|
1013
|
+
'completed_at',
|
|
1014
|
+
],
|
|
1015
|
+
};
|
|
748
1016
|
export const IDENTITY_EMAIL_LOOKUP_SCHEMA_SQL = `
|
|
749
1017
|
ALTER TABLE users ADD COLUMN email_lookup TEXT;
|
|
750
1018
|
CREATE UNIQUE INDEX idx_users_email_lookup
|
|
@@ -976,46 +1244,473 @@ export const PERSONAL_AUTOMATIONS_SCHEMA_SQL = `
|
|
|
976
1244
|
id TEXT PRIMARY KEY,
|
|
977
1245
|
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
978
1246
|
name TEXT NOT NULL,
|
|
979
|
-
instructions TEXT NOT NULL,
|
|
980
|
-
triggers TEXT NOT NULL,
|
|
981
|
-
provider TEXT,
|
|
982
|
-
model TEXT,
|
|
983
|
-
notify TEXT NOT NULL CHECK (notify IN ('app', 'off')),
|
|
984
|
-
status TEXT NOT NULL CHECK (status IN ('active', 'paused')),
|
|
985
|
-
next_run_at INTEGER,
|
|
986
|
-
last_run_at INTEGER,
|
|
1247
|
+
instructions TEXT NOT NULL,
|
|
1248
|
+
triggers TEXT NOT NULL,
|
|
1249
|
+
provider TEXT,
|
|
1250
|
+
model TEXT,
|
|
1251
|
+
notify TEXT NOT NULL CHECK (notify IN ('app', 'off')),
|
|
1252
|
+
status TEXT NOT NULL CHECK (status IN ('active', 'paused')),
|
|
1253
|
+
next_run_at INTEGER,
|
|
1254
|
+
last_run_at INTEGER,
|
|
1255
|
+
created_at INTEGER NOT NULL,
|
|
1256
|
+
updated_at INTEGER NOT NULL
|
|
1257
|
+
);
|
|
1258
|
+
|
|
1259
|
+
CREATE INDEX IF NOT EXISTS idx_automations_owner
|
|
1260
|
+
ON automations(user_id, updated_at);
|
|
1261
|
+
|
|
1262
|
+
CREATE INDEX IF NOT EXISTS idx_automations_due
|
|
1263
|
+
ON automations(status, next_run_at);
|
|
1264
|
+
|
|
1265
|
+
CREATE TABLE IF NOT EXISTS automation_runs (
|
|
1266
|
+
id TEXT PRIMARY KEY,
|
|
1267
|
+
automation_id TEXT NOT NULL REFERENCES automations(id) ON DELETE CASCADE,
|
|
1268
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1269
|
+
scheduled_for INTEGER NOT NULL,
|
|
1270
|
+
started_at INTEGER,
|
|
1271
|
+
finished_at INTEGER,
|
|
1272
|
+
status TEXT NOT NULL
|
|
1273
|
+
CHECK (status IN ('queued', 'running', 'succeeded', 'failed')),
|
|
1274
|
+
session_id TEXT,
|
|
1275
|
+
assistant_message_id TEXT,
|
|
1276
|
+
error TEXT,
|
|
1277
|
+
seen_at INTEGER,
|
|
1278
|
+
created_at INTEGER NOT NULL
|
|
1279
|
+
);
|
|
1280
|
+
|
|
1281
|
+
CREATE INDEX IF NOT EXISTS idx_automation_runs_automation
|
|
1282
|
+
ON automation_runs(automation_id, scheduled_for);
|
|
1283
|
+
|
|
1284
|
+
CREATE INDEX IF NOT EXISTS idx_automation_runs_owner_time
|
|
1285
|
+
ON automation_runs(user_id, scheduled_for);
|
|
1286
|
+
`;
|
|
1287
|
+
export const AGENT_FOUNDATION_TABLES_SQL = `
|
|
1288
|
+
CREATE TABLE IF NOT EXISTS tool_servers (
|
|
1289
|
+
id TEXT PRIMARY KEY,
|
|
1290
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1291
|
+
name TEXT NOT NULL,
|
|
1292
|
+
description TEXT,
|
|
1293
|
+
kind TEXT NOT NULL CHECK (kind IN ('openapi', 'mcp')),
|
|
1294
|
+
base_url TEXT NOT NULL,
|
|
1295
|
+
spec TEXT,
|
|
1296
|
+
spec_digest TEXT,
|
|
1297
|
+
spec_revision INTEGER NOT NULL DEFAULT 1,
|
|
1298
|
+
auth_mode TEXT NOT NULL CHECK (auth_mode IN ('none', 'bearer', 'header')),
|
|
1299
|
+
auth_header TEXT,
|
|
1300
|
+
access_mode TEXT NOT NULL
|
|
1301
|
+
CHECK (access_mode IN ('admins-only', 'all-users', 'granted')),
|
|
1302
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
1303
|
+
timeout_ms INTEGER NOT NULL,
|
|
1304
|
+
max_response_bytes INTEGER NOT NULL,
|
|
1305
|
+
created_at INTEGER NOT NULL,
|
|
1306
|
+
updated_at INTEGER NOT NULL
|
|
1307
|
+
);
|
|
1308
|
+
|
|
1309
|
+
CREATE INDEX IF NOT EXISTS idx_tool_servers_updated
|
|
1310
|
+
ON tool_servers(updated_at);
|
|
1311
|
+
|
|
1312
|
+
CREATE TABLE IF NOT EXISTS tool_server_tools (
|
|
1313
|
+
id TEXT PRIMARY KEY,
|
|
1314
|
+
server_id TEXT NOT NULL REFERENCES tool_servers(id) ON DELETE CASCADE,
|
|
1315
|
+
name TEXT NOT NULL,
|
|
1316
|
+
description TEXT,
|
|
1317
|
+
params_schema TEXT,
|
|
1318
|
+
detail TEXT,
|
|
1319
|
+
side_effect INTEGER NOT NULL DEFAULT 1,
|
|
1320
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
1321
|
+
created_at INTEGER NOT NULL,
|
|
1322
|
+
updated_at INTEGER NOT NULL,
|
|
1323
|
+
UNIQUE (server_id, name)
|
|
1324
|
+
);
|
|
1325
|
+
|
|
1326
|
+
CREATE TABLE IF NOT EXISTS tool_server_credentials (
|
|
1327
|
+
id TEXT PRIMARY KEY,
|
|
1328
|
+
server_id TEXT NOT NULL REFERENCES tool_servers(id) ON DELETE CASCADE,
|
|
1329
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1330
|
+
secret TEXT NOT NULL,
|
|
1331
|
+
created_at INTEGER NOT NULL,
|
|
1332
|
+
updated_at INTEGER NOT NULL,
|
|
1333
|
+
UNIQUE (server_id, user_id)
|
|
1334
|
+
);
|
|
1335
|
+
|
|
1336
|
+
CREATE TABLE IF NOT EXISTS tool_approvals (
|
|
1337
|
+
id TEXT PRIMARY KEY,
|
|
1338
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1339
|
+
session_id TEXT REFERENCES sessions(id) ON DELETE CASCADE,
|
|
1340
|
+
server_id TEXT REFERENCES tool_servers(id) ON DELETE CASCADE,
|
|
1341
|
+
tool_name TEXT NOT NULL,
|
|
1342
|
+
call_id TEXT,
|
|
1343
|
+
arguments_digest TEXT,
|
|
1344
|
+
scope TEXT NOT NULL CHECK (scope IN ('once', 'session', 'always')),
|
|
1345
|
+
status TEXT NOT NULL
|
|
1346
|
+
CHECK (status IN ('pending', 'approved', 'denied', 'expired')),
|
|
1347
|
+
created_at INTEGER NOT NULL,
|
|
1348
|
+
resolved_at INTEGER,
|
|
1349
|
+
expires_at INTEGER
|
|
1350
|
+
);
|
|
1351
|
+
|
|
1352
|
+
CREATE INDEX IF NOT EXISTS idx_tool_approvals_owner
|
|
1353
|
+
ON tool_approvals(user_id, status, created_at);
|
|
1354
|
+
|
|
1355
|
+
CREATE TABLE IF NOT EXISTS prompts (
|
|
1356
|
+
id TEXT PRIMARY KEY,
|
|
1357
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1358
|
+
slug TEXT NOT NULL,
|
|
1359
|
+
title TEXT NOT NULL,
|
|
1360
|
+
description TEXT,
|
|
1361
|
+
content TEXT NOT NULL,
|
|
1362
|
+
variables TEXT,
|
|
1363
|
+
tags TEXT,
|
|
1364
|
+
version INTEGER NOT NULL DEFAULT 1,
|
|
1365
|
+
created_at INTEGER NOT NULL,
|
|
1366
|
+
updated_at INTEGER NOT NULL,
|
|
1367
|
+
UNIQUE (user_id, slug)
|
|
1368
|
+
);
|
|
1369
|
+
|
|
1370
|
+
CREATE INDEX IF NOT EXISTS idx_prompts_owner
|
|
1371
|
+
ON prompts(user_id, updated_at);
|
|
1372
|
+
|
|
1373
|
+
CREATE TABLE IF NOT EXISTS prompt_versions (
|
|
1374
|
+
id TEXT PRIMARY KEY,
|
|
1375
|
+
prompt_id TEXT NOT NULL REFERENCES prompts(id) ON DELETE CASCADE,
|
|
1376
|
+
version INTEGER NOT NULL,
|
|
1377
|
+
content TEXT NOT NULL,
|
|
1378
|
+
variables TEXT,
|
|
1379
|
+
created_at INTEGER NOT NULL,
|
|
1380
|
+
UNIQUE (prompt_id, version)
|
|
1381
|
+
);
|
|
1382
|
+
|
|
1383
|
+
CREATE TABLE IF NOT EXISTS skills (
|
|
1384
|
+
id TEXT PRIMARY KEY,
|
|
1385
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1386
|
+
slug TEXT NOT NULL,
|
|
1387
|
+
name TEXT NOT NULL,
|
|
1388
|
+
description TEXT NOT NULL,
|
|
1389
|
+
instructions TEXT NOT NULL,
|
|
1390
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
1391
|
+
version INTEGER NOT NULL DEFAULT 1,
|
|
1392
|
+
created_at INTEGER NOT NULL,
|
|
1393
|
+
updated_at INTEGER NOT NULL,
|
|
1394
|
+
UNIQUE (user_id, slug)
|
|
1395
|
+
);
|
|
1396
|
+
|
|
1397
|
+
CREATE INDEX IF NOT EXISTS idx_skills_owner
|
|
1398
|
+
ON skills(user_id, updated_at);
|
|
1399
|
+
|
|
1400
|
+
CREATE TABLE IF NOT EXISTS skill_versions (
|
|
1401
|
+
id TEXT PRIMARY KEY,
|
|
1402
|
+
skill_id TEXT NOT NULL REFERENCES skills(id) ON DELETE CASCADE,
|
|
1403
|
+
version INTEGER NOT NULL,
|
|
1404
|
+
instructions TEXT NOT NULL,
|
|
1405
|
+
created_at INTEGER NOT NULL,
|
|
1406
|
+
UNIQUE (skill_id, version)
|
|
1407
|
+
);
|
|
1408
|
+
`;
|
|
1409
|
+
export const AGENT_FOUNDATION_SCHEMA_SQL = `
|
|
1410
|
+
ALTER TABLE personas ADD COLUMN bindings TEXT;
|
|
1411
|
+
${AGENT_FOUNDATION_TABLES_SQL}`;
|
|
1412
|
+
export const SKILL_FILES_SCHEMA_SQL = `
|
|
1413
|
+
CREATE TABLE IF NOT EXISTS skill_files (
|
|
1414
|
+
id TEXT PRIMARY KEY,
|
|
1415
|
+
skill_id TEXT NOT NULL REFERENCES skills(id) ON DELETE CASCADE,
|
|
1416
|
+
path TEXT NOT NULL,
|
|
1417
|
+
content TEXT NOT NULL,
|
|
1418
|
+
size INTEGER NOT NULL,
|
|
1419
|
+
created_at INTEGER NOT NULL,
|
|
1420
|
+
updated_at INTEGER NOT NULL,
|
|
1421
|
+
UNIQUE (skill_id, path)
|
|
1422
|
+
);
|
|
1423
|
+
|
|
1424
|
+
CREATE INDEX IF NOT EXISTS idx_skill_files_skill
|
|
1425
|
+
ON skill_files(skill_id);
|
|
1426
|
+
`;
|
|
1427
|
+
export const NOTES_V2_TABLES_SQL = `
|
|
1428
|
+
CREATE TABLE IF NOT EXISTS note_revisions (
|
|
1429
|
+
id TEXT PRIMARY KEY,
|
|
1430
|
+
note_id TEXT NOT NULL REFERENCES notes(id) ON DELETE CASCADE,
|
|
1431
|
+
title TEXT NOT NULL,
|
|
1432
|
+
content TEXT NOT NULL,
|
|
1433
|
+
created_at INTEGER NOT NULL
|
|
1434
|
+
);
|
|
1435
|
+
|
|
1436
|
+
CREATE INDEX IF NOT EXISTS idx_note_revisions_note
|
|
1437
|
+
ON note_revisions(note_id, created_at);
|
|
1438
|
+
|
|
1439
|
+
CREATE TABLE IF NOT EXISTS note_attachments (
|
|
1440
|
+
id TEXT PRIMARY KEY,
|
|
1441
|
+
note_id TEXT NOT NULL REFERENCES notes(id) ON DELETE CASCADE,
|
|
1442
|
+
blob_id TEXT NOT NULL,
|
|
1443
|
+
filename TEXT NOT NULL,
|
|
1444
|
+
content_type TEXT NOT NULL,
|
|
1445
|
+
size INTEGER NOT NULL,
|
|
1446
|
+
created_at INTEGER NOT NULL
|
|
1447
|
+
);
|
|
1448
|
+
|
|
1449
|
+
CREATE INDEX IF NOT EXISTS idx_note_attachments_note
|
|
1450
|
+
ON note_attachments(note_id);
|
|
1451
|
+
`;
|
|
1452
|
+
export const NOTES_V2_SCHEMA_SQL = `
|
|
1453
|
+
ALTER TABLE notes ADD COLUMN pinned INTEGER DEFAULT 0;
|
|
1454
|
+
|
|
1455
|
+
CREATE TABLE IF NOT EXISTS note_revisions (
|
|
1456
|
+
id TEXT PRIMARY KEY,
|
|
1457
|
+
note_id TEXT NOT NULL REFERENCES notes(id) ON DELETE CASCADE,
|
|
1458
|
+
title TEXT NOT NULL,
|
|
1459
|
+
content TEXT NOT NULL,
|
|
1460
|
+
created_at INTEGER NOT NULL
|
|
1461
|
+
);
|
|
1462
|
+
|
|
1463
|
+
CREATE INDEX IF NOT EXISTS idx_note_revisions_note
|
|
1464
|
+
ON note_revisions(note_id, created_at);
|
|
1465
|
+
|
|
1466
|
+
CREATE TABLE IF NOT EXISTS note_attachments (
|
|
1467
|
+
id TEXT PRIMARY KEY,
|
|
1468
|
+
note_id TEXT NOT NULL REFERENCES notes(id) ON DELETE CASCADE,
|
|
1469
|
+
blob_id TEXT NOT NULL,
|
|
1470
|
+
filename TEXT NOT NULL,
|
|
1471
|
+
content_type TEXT NOT NULL,
|
|
1472
|
+
size INTEGER NOT NULL,
|
|
1473
|
+
created_at INTEGER NOT NULL
|
|
1474
|
+
);
|
|
1475
|
+
|
|
1476
|
+
CREATE INDEX IF NOT EXISTS idx_note_attachments_note
|
|
1477
|
+
ON note_attachments(note_id);
|
|
1478
|
+
`;
|
|
1479
|
+
export const TEAM_COLLABORATION_TABLES_SQL = `
|
|
1480
|
+
CREATE INDEX IF NOT EXISTS idx_calendar_scoped_events
|
|
1481
|
+
ON calendar_events(calendar_id)
|
|
1482
|
+
WHERE calendar_id IS NOT NULL;
|
|
1483
|
+
|
|
1484
|
+
CREATE TABLE IF NOT EXISTS calendars (
|
|
1485
|
+
id TEXT PRIMARY KEY,
|
|
1486
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1487
|
+
name TEXT NOT NULL,
|
|
1488
|
+
color TEXT,
|
|
1489
|
+
created_at INTEGER NOT NULL,
|
|
1490
|
+
updated_at INTEGER NOT NULL
|
|
1491
|
+
);
|
|
1492
|
+
|
|
1493
|
+
CREATE INDEX IF NOT EXISTS idx_calendars_owner
|
|
1494
|
+
ON calendars(user_id, updated_at);
|
|
1495
|
+
|
|
1496
|
+
CREATE TABLE IF NOT EXISTS channels (
|
|
1497
|
+
id TEXT PRIMARY KEY,
|
|
1498
|
+
type TEXT NOT NULL CHECK (type IN ('public', 'private', 'dm')),
|
|
1499
|
+
name TEXT NOT NULL,
|
|
1500
|
+
description TEXT,
|
|
1501
|
+
dm_key TEXT,
|
|
1502
|
+
created_by TEXT,
|
|
1503
|
+
created_at INTEGER NOT NULL,
|
|
1504
|
+
updated_at INTEGER NOT NULL,
|
|
1505
|
+
archived_at INTEGER
|
|
1506
|
+
);
|
|
1507
|
+
|
|
1508
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_channels_dm_key
|
|
1509
|
+
ON channels(dm_key)
|
|
1510
|
+
WHERE dm_key IS NOT NULL;
|
|
1511
|
+
|
|
1512
|
+
CREATE TABLE IF NOT EXISTS channel_members (
|
|
1513
|
+
channel_id TEXT NOT NULL REFERENCES channels(id) ON DELETE CASCADE,
|
|
1514
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1515
|
+
role TEXT NOT NULL CHECK (role IN ('owner', 'member')),
|
|
1516
|
+
joined_at INTEGER NOT NULL,
|
|
1517
|
+
last_read_at INTEGER NOT NULL DEFAULT 0,
|
|
1518
|
+
PRIMARY KEY (channel_id, user_id)
|
|
1519
|
+
);
|
|
1520
|
+
|
|
1521
|
+
CREATE INDEX IF NOT EXISTS idx_channel_members_user
|
|
1522
|
+
ON channel_members(user_id);
|
|
1523
|
+
|
|
1524
|
+
CREATE TABLE IF NOT EXISTS channel_messages (
|
|
1525
|
+
id TEXT PRIMARY KEY,
|
|
1526
|
+
channel_id TEXT NOT NULL REFERENCES channels(id) ON DELETE CASCADE,
|
|
1527
|
+
user_id TEXT,
|
|
1528
|
+
parent_id TEXT,
|
|
1529
|
+
author_kind TEXT NOT NULL DEFAULT 'user' CHECK (author_kind IN ('user', 'model')),
|
|
1530
|
+
model TEXT,
|
|
1531
|
+
content TEXT NOT NULL,
|
|
1532
|
+
metadata TEXT,
|
|
1533
|
+
created_at INTEGER NOT NULL,
|
|
1534
|
+
updated_at INTEGER NOT NULL,
|
|
1535
|
+
edited_at INTEGER,
|
|
1536
|
+
deleted_at INTEGER,
|
|
1537
|
+
pinned_at INTEGER,
|
|
1538
|
+
pinned_by TEXT
|
|
1539
|
+
);
|
|
1540
|
+
|
|
1541
|
+
CREATE INDEX IF NOT EXISTS idx_channel_messages_timeline
|
|
1542
|
+
ON channel_messages(channel_id, created_at, id);
|
|
1543
|
+
|
|
1544
|
+
CREATE INDEX IF NOT EXISTS idx_channel_messages_thread
|
|
1545
|
+
ON channel_messages(parent_id)
|
|
1546
|
+
WHERE parent_id IS NOT NULL;
|
|
1547
|
+
|
|
1548
|
+
CREATE TABLE IF NOT EXISTS channel_reactions (
|
|
1549
|
+
id TEXT PRIMARY KEY,
|
|
1550
|
+
message_id TEXT NOT NULL REFERENCES channel_messages(id) ON DELETE CASCADE,
|
|
1551
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1552
|
+
emoji TEXT NOT NULL,
|
|
1553
|
+
created_at INTEGER NOT NULL,
|
|
1554
|
+
UNIQUE (message_id, user_id, emoji)
|
|
1555
|
+
);
|
|
1556
|
+
|
|
1557
|
+
CREATE TABLE IF NOT EXISTS channel_attachments (
|
|
1558
|
+
id TEXT PRIMARY KEY,
|
|
1559
|
+
message_id TEXT NOT NULL REFERENCES channel_messages(id) ON DELETE CASCADE,
|
|
1560
|
+
channel_id TEXT NOT NULL,
|
|
1561
|
+
blob_id TEXT NOT NULL,
|
|
1562
|
+
filename TEXT NOT NULL,
|
|
1563
|
+
content_type TEXT NOT NULL,
|
|
1564
|
+
size INTEGER NOT NULL,
|
|
1565
|
+
created_by TEXT,
|
|
1566
|
+
created_at INTEGER NOT NULL
|
|
1567
|
+
);
|
|
1568
|
+
|
|
1569
|
+
CREATE INDEX IF NOT EXISTS idx_channel_attachments_message
|
|
1570
|
+
ON channel_attachments(message_id);
|
|
1571
|
+
|
|
1572
|
+
CREATE TABLE IF NOT EXISTS notifications (
|
|
1573
|
+
id TEXT PRIMARY KEY,
|
|
1574
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1575
|
+
type TEXT NOT NULL,
|
|
1576
|
+
title TEXT NOT NULL,
|
|
1577
|
+
body TEXT,
|
|
1578
|
+
href TEXT,
|
|
1579
|
+
source_key TEXT,
|
|
1580
|
+
created_at INTEGER NOT NULL,
|
|
1581
|
+
read_at INTEGER
|
|
1582
|
+
);
|
|
1583
|
+
|
|
1584
|
+
CREATE INDEX IF NOT EXISTS idx_notifications_user
|
|
1585
|
+
ON notifications(user_id, created_at);
|
|
1586
|
+
|
|
1587
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_notifications_dedupe
|
|
1588
|
+
ON notifications(user_id, source_key)
|
|
1589
|
+
WHERE source_key IS NOT NULL;
|
|
1590
|
+
|
|
1591
|
+
CREATE TABLE IF NOT EXISTS webhook_targets (
|
|
1592
|
+
id TEXT PRIMARY KEY,
|
|
1593
|
+
name TEXT NOT NULL,
|
|
1594
|
+
url TEXT NOT NULL,
|
|
1595
|
+
secret TEXT,
|
|
1596
|
+
events TEXT NOT NULL,
|
|
1597
|
+
enabled INTEGER NOT NULL DEFAULT 1 CHECK (enabled IN (0, 1)),
|
|
1598
|
+
created_by TEXT,
|
|
1599
|
+
created_at INTEGER NOT NULL,
|
|
1600
|
+
updated_at INTEGER NOT NULL
|
|
1601
|
+
);
|
|
1602
|
+
`;
|
|
1603
|
+
export const TEAM_COLLABORATION_SCHEMA_SQL = `
|
|
1604
|
+
ALTER TABLE calendar_events ADD COLUMN calendar_id TEXT;
|
|
1605
|
+
ALTER TABLE calendar_events ADD COLUMN reminder_minutes INTEGER;
|
|
1606
|
+
ALTER TABLE calendar_events ADD COLUMN last_reminded_occurrence INTEGER;
|
|
1607
|
+
${TEAM_COLLABORATION_TABLES_SQL}`;
|
|
1608
|
+
export const MEDIA_ENTERPRISE_OPS_TABLES_SQL = `
|
|
1609
|
+
CREATE TABLE IF NOT EXISTS model_tariffs (
|
|
1610
|
+
id TEXT PRIMARY KEY,
|
|
1611
|
+
plugin_id TEXT NOT NULL,
|
|
1612
|
+
model TEXT,
|
|
1613
|
+
input_per_million REAL,
|
|
1614
|
+
output_per_million REAL,
|
|
1615
|
+
unit_price REAL,
|
|
1616
|
+
currency TEXT NOT NULL DEFAULT 'USD',
|
|
1617
|
+
effective_from INTEGER NOT NULL,
|
|
1618
|
+
created_by TEXT,
|
|
1619
|
+
created_at INTEGER NOT NULL
|
|
1620
|
+
);
|
|
1621
|
+
|
|
1622
|
+
CREATE INDEX IF NOT EXISTS idx_model_tariffs_lookup
|
|
1623
|
+
ON model_tariffs(plugin_id, model, effective_from);
|
|
1624
|
+
|
|
1625
|
+
CREATE TABLE IF NOT EXISTS usage_budgets (
|
|
1626
|
+
id TEXT PRIMARY KEY,
|
|
1627
|
+
name TEXT NOT NULL,
|
|
1628
|
+
principal_type TEXT NOT NULL CHECK (principal_type IN ('instance', 'user', 'group')),
|
|
1629
|
+
principal_id TEXT,
|
|
1630
|
+
period TEXT NOT NULL CHECK (period IN ('daily', 'weekly', 'monthly')),
|
|
1631
|
+
amount_usd REAL NOT NULL,
|
|
1632
|
+
mode TEXT NOT NULL CHECK (mode IN ('observe', 'soft', 'hard')),
|
|
1633
|
+
created_by TEXT,
|
|
1634
|
+
created_at INTEGER NOT NULL,
|
|
1635
|
+
updated_at INTEGER NOT NULL
|
|
1636
|
+
);
|
|
1637
|
+
|
|
1638
|
+
CREATE INDEX IF NOT EXISTS idx_usage_budgets_principal
|
|
1639
|
+
ON usage_budgets(principal_type, principal_id);
|
|
1640
|
+
|
|
1641
|
+
CREATE TABLE IF NOT EXISTS message_feedback (
|
|
1642
|
+
id TEXT PRIMARY KEY,
|
|
1643
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1644
|
+
session_id TEXT NOT NULL,
|
|
1645
|
+
message_id TEXT NOT NULL,
|
|
1646
|
+
rating INTEGER NOT NULL CHECK (rating IN (-1, 1)),
|
|
1647
|
+
tags TEXT,
|
|
1648
|
+
comment TEXT,
|
|
1649
|
+
model TEXT,
|
|
1650
|
+
plugin_id TEXT,
|
|
1651
|
+
snapshot TEXT,
|
|
1652
|
+
created_at INTEGER NOT NULL,
|
|
1653
|
+
updated_at INTEGER NOT NULL,
|
|
1654
|
+
UNIQUE (user_id, message_id)
|
|
1655
|
+
);
|
|
1656
|
+
|
|
1657
|
+
CREATE INDEX IF NOT EXISTS idx_message_feedback_owner
|
|
1658
|
+
ON message_feedback(user_id, created_at);
|
|
1659
|
+
|
|
1660
|
+
CREATE TABLE IF NOT EXISTS arena_votes (
|
|
1661
|
+
id TEXT PRIMARY KEY,
|
|
1662
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1663
|
+
compare_group TEXT NOT NULL,
|
|
1664
|
+
model_a TEXT NOT NULL,
|
|
1665
|
+
model_b TEXT NOT NULL,
|
|
1666
|
+
winner TEXT NOT NULL CHECK (winner IN ('a', 'b', 'tie', 'both-bad')),
|
|
1667
|
+
created_at INTEGER NOT NULL,
|
|
1668
|
+
UNIQUE (user_id, compare_group)
|
|
1669
|
+
);
|
|
1670
|
+
|
|
1671
|
+
CREATE INDEX IF NOT EXISTS idx_arena_votes_order
|
|
1672
|
+
ON arena_votes(created_at, id);
|
|
1673
|
+
|
|
1674
|
+
CREATE TABLE IF NOT EXISTS eval_sets (
|
|
1675
|
+
id TEXT PRIMARY KEY,
|
|
1676
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1677
|
+
name TEXT NOT NULL,
|
|
1678
|
+
description TEXT,
|
|
1679
|
+
items TEXT NOT NULL,
|
|
987
1680
|
created_at INTEGER NOT NULL,
|
|
988
1681
|
updated_at INTEGER NOT NULL
|
|
989
1682
|
);
|
|
990
1683
|
|
|
991
|
-
CREATE INDEX IF NOT EXISTS
|
|
992
|
-
ON
|
|
993
|
-
|
|
994
|
-
CREATE INDEX IF NOT EXISTS idx_automations_due
|
|
995
|
-
ON automations(status, next_run_at);
|
|
1684
|
+
CREATE INDEX IF NOT EXISTS idx_eval_sets_owner
|
|
1685
|
+
ON eval_sets(user_id, updated_at);
|
|
996
1686
|
|
|
997
|
-
CREATE TABLE IF NOT EXISTS
|
|
1687
|
+
CREATE TABLE IF NOT EXISTS eval_runs (
|
|
998
1688
|
id TEXT PRIMARY KEY,
|
|
999
|
-
|
|
1689
|
+
set_id TEXT NOT NULL REFERENCES eval_sets(id) ON DELETE CASCADE,
|
|
1000
1690
|
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
status TEXT NOT NULL
|
|
1005
|
-
|
|
1006
|
-
session_id TEXT,
|
|
1007
|
-
assistant_message_id TEXT,
|
|
1691
|
+
label TEXT,
|
|
1692
|
+
plugin_id TEXT,
|
|
1693
|
+
model TEXT NOT NULL,
|
|
1694
|
+
status TEXT NOT NULL CHECK (status IN ('queued', 'running', 'completed', 'failed', 'cancelled')),
|
|
1695
|
+
results TEXT,
|
|
1008
1696
|
error TEXT,
|
|
1009
|
-
|
|
1010
|
-
|
|
1697
|
+
created_at INTEGER NOT NULL,
|
|
1698
|
+
updated_at INTEGER NOT NULL,
|
|
1699
|
+
completed_at INTEGER
|
|
1011
1700
|
);
|
|
1012
1701
|
|
|
1013
|
-
CREATE INDEX IF NOT EXISTS
|
|
1014
|
-
ON
|
|
1702
|
+
CREATE INDEX IF NOT EXISTS idx_eval_runs_owner
|
|
1703
|
+
ON eval_runs(user_id, created_at);
|
|
1015
1704
|
|
|
1016
|
-
CREATE INDEX IF NOT EXISTS
|
|
1017
|
-
ON
|
|
1705
|
+
CREATE INDEX IF NOT EXISTS idx_eval_runs_parent
|
|
1706
|
+
ON eval_runs(set_id);
|
|
1018
1707
|
`;
|
|
1708
|
+
export const MEDIA_ENTERPRISE_OPS_SCHEMA_SQL = `
|
|
1709
|
+
ALTER TABLE voice_profiles ADD COLUMN consent_expires_at INTEGER;
|
|
1710
|
+
ALTER TABLE voice_profiles ADD COLUMN revoked_at INTEGER;
|
|
1711
|
+
ALTER TABLE voice_profiles ADD COLUMN transfer_count INTEGER NOT NULL DEFAULT 0;
|
|
1712
|
+
ALTER TABLE voice_profiles ADD COLUMN last_transfer_at INTEGER;
|
|
1713
|
+
${MEDIA_ENTERPRISE_OPS_TABLES_SQL}`;
|
|
1019
1714
|
const REQUIRED_SCHEMA = {
|
|
1020
1715
|
...LEGACY_REQUIRED_SCHEMA,
|
|
1021
1716
|
users: [
|
|
@@ -1187,6 +1882,31 @@ const REQUIRED_PRIMARY_KEYS = {
|
|
|
1187
1882
|
calendar_events: ['id'],
|
|
1188
1883
|
automations: ['id'],
|
|
1189
1884
|
automation_runs: ['id'],
|
|
1885
|
+
tool_servers: ['id'],
|
|
1886
|
+
tool_server_tools: ['id'],
|
|
1887
|
+
tool_server_credentials: ['id'],
|
|
1888
|
+
tool_approvals: ['id'],
|
|
1889
|
+
prompts: ['id'],
|
|
1890
|
+
prompt_versions: ['id'],
|
|
1891
|
+
skills: ['id'],
|
|
1892
|
+
skill_versions: ['id'],
|
|
1893
|
+
skill_files: ['id'],
|
|
1894
|
+
note_revisions: ['id'],
|
|
1895
|
+
note_attachments: ['id'],
|
|
1896
|
+
calendars: ['id'],
|
|
1897
|
+
channels: ['id'],
|
|
1898
|
+
channel_members: ['channel_id', 'user_id'],
|
|
1899
|
+
channel_messages: ['id'],
|
|
1900
|
+
channel_reactions: ['id'],
|
|
1901
|
+
channel_attachments: ['id'],
|
|
1902
|
+
notifications: ['id'],
|
|
1903
|
+
webhook_targets: ['id'],
|
|
1904
|
+
model_tariffs: ['id'],
|
|
1905
|
+
usage_budgets: ['id'],
|
|
1906
|
+
message_feedback: ['id'],
|
|
1907
|
+
arena_votes: ['id'],
|
|
1908
|
+
eval_sets: ['id'],
|
|
1909
|
+
eval_runs: ['id'],
|
|
1190
1910
|
};
|
|
1191
1911
|
const REQUIRED_UNIQUE_KEYS = {
|
|
1192
1912
|
[MIGRATION_TABLE]: [['name']],
|
|
@@ -1206,6 +1926,15 @@ const REQUIRED_UNIQUE_KEYS = {
|
|
|
1206
1926
|
['resource_type', 'resource_id', 'principal_type', 'principal_id'],
|
|
1207
1927
|
],
|
|
1208
1928
|
api_tokens: [['token_hash']],
|
|
1929
|
+
tool_server_tools: [['server_id', 'name']],
|
|
1930
|
+
tool_server_credentials: [['server_id', 'user_id']],
|
|
1931
|
+
prompts: [['user_id', 'slug']],
|
|
1932
|
+
prompt_versions: [['prompt_id', 'version']],
|
|
1933
|
+
skills: [['user_id', 'slug']],
|
|
1934
|
+
skill_versions: [['skill_id', 'version']],
|
|
1935
|
+
skill_files: [['skill_id', 'path']],
|
|
1936
|
+
message_feedback: [['user_id', 'message_id']],
|
|
1937
|
+
arena_votes: [['user_id', 'compare_group']],
|
|
1209
1938
|
};
|
|
1210
1939
|
const REQUIRED_FOREIGN_KEYS = [
|
|
1211
1940
|
{
|
|
@@ -1376,6 +2105,181 @@ const REQUIRED_FOREIGN_KEYS = [
|
|
|
1376
2105
|
referencedColumns: ['id'],
|
|
1377
2106
|
onDelete: 'CASCADE',
|
|
1378
2107
|
},
|
|
2108
|
+
{
|
|
2109
|
+
table: 'tool_servers',
|
|
2110
|
+
columns: ['user_id'],
|
|
2111
|
+
referencedTable: 'users',
|
|
2112
|
+
referencedColumns: ['id'],
|
|
2113
|
+
onDelete: 'CASCADE',
|
|
2114
|
+
},
|
|
2115
|
+
{
|
|
2116
|
+
table: 'tool_server_tools',
|
|
2117
|
+
columns: ['server_id'],
|
|
2118
|
+
referencedTable: 'tool_servers',
|
|
2119
|
+
referencedColumns: ['id'],
|
|
2120
|
+
onDelete: 'CASCADE',
|
|
2121
|
+
},
|
|
2122
|
+
{
|
|
2123
|
+
table: 'tool_server_credentials',
|
|
2124
|
+
columns: ['server_id'],
|
|
2125
|
+
referencedTable: 'tool_servers',
|
|
2126
|
+
referencedColumns: ['id'],
|
|
2127
|
+
onDelete: 'CASCADE',
|
|
2128
|
+
},
|
|
2129
|
+
{
|
|
2130
|
+
table: 'tool_server_credentials',
|
|
2131
|
+
columns: ['user_id'],
|
|
2132
|
+
referencedTable: 'users',
|
|
2133
|
+
referencedColumns: ['id'],
|
|
2134
|
+
onDelete: 'CASCADE',
|
|
2135
|
+
},
|
|
2136
|
+
{
|
|
2137
|
+
table: 'tool_approvals',
|
|
2138
|
+
columns: ['user_id'],
|
|
2139
|
+
referencedTable: 'users',
|
|
2140
|
+
referencedColumns: ['id'],
|
|
2141
|
+
onDelete: 'CASCADE',
|
|
2142
|
+
},
|
|
2143
|
+
{
|
|
2144
|
+
table: 'tool_approvals',
|
|
2145
|
+
columns: ['session_id'],
|
|
2146
|
+
referencedTable: 'sessions',
|
|
2147
|
+
referencedColumns: ['id'],
|
|
2148
|
+
onDelete: 'CASCADE',
|
|
2149
|
+
},
|
|
2150
|
+
{
|
|
2151
|
+
table: 'prompts',
|
|
2152
|
+
columns: ['user_id'],
|
|
2153
|
+
referencedTable: 'users',
|
|
2154
|
+
referencedColumns: ['id'],
|
|
2155
|
+
onDelete: 'CASCADE',
|
|
2156
|
+
},
|
|
2157
|
+
{
|
|
2158
|
+
table: 'prompt_versions',
|
|
2159
|
+
columns: ['prompt_id'],
|
|
2160
|
+
referencedTable: 'prompts',
|
|
2161
|
+
referencedColumns: ['id'],
|
|
2162
|
+
onDelete: 'CASCADE',
|
|
2163
|
+
},
|
|
2164
|
+
{
|
|
2165
|
+
table: 'skills',
|
|
2166
|
+
columns: ['user_id'],
|
|
2167
|
+
referencedTable: 'users',
|
|
2168
|
+
referencedColumns: ['id'],
|
|
2169
|
+
onDelete: 'CASCADE',
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
table: 'skill_versions',
|
|
2173
|
+
columns: ['skill_id'],
|
|
2174
|
+
referencedTable: 'skills',
|
|
2175
|
+
referencedColumns: ['id'],
|
|
2176
|
+
onDelete: 'CASCADE',
|
|
2177
|
+
},
|
|
2178
|
+
{
|
|
2179
|
+
table: 'skill_files',
|
|
2180
|
+
columns: ['skill_id'],
|
|
2181
|
+
referencedTable: 'skills',
|
|
2182
|
+
referencedColumns: ['id'],
|
|
2183
|
+
onDelete: 'CASCADE',
|
|
2184
|
+
},
|
|
2185
|
+
{
|
|
2186
|
+
table: 'note_revisions',
|
|
2187
|
+
columns: ['note_id'],
|
|
2188
|
+
referencedTable: 'notes',
|
|
2189
|
+
referencedColumns: ['id'],
|
|
2190
|
+
onDelete: 'CASCADE',
|
|
2191
|
+
},
|
|
2192
|
+
{
|
|
2193
|
+
table: 'note_attachments',
|
|
2194
|
+
columns: ['note_id'],
|
|
2195
|
+
referencedTable: 'notes',
|
|
2196
|
+
referencedColumns: ['id'],
|
|
2197
|
+
onDelete: 'CASCADE',
|
|
2198
|
+
},
|
|
2199
|
+
{
|
|
2200
|
+
table: 'calendars',
|
|
2201
|
+
columns: ['user_id'],
|
|
2202
|
+
referencedTable: 'users',
|
|
2203
|
+
referencedColumns: ['id'],
|
|
2204
|
+
onDelete: 'CASCADE',
|
|
2205
|
+
},
|
|
2206
|
+
{
|
|
2207
|
+
table: 'channel_members',
|
|
2208
|
+
columns: ['channel_id'],
|
|
2209
|
+
referencedTable: 'channels',
|
|
2210
|
+
referencedColumns: ['id'],
|
|
2211
|
+
onDelete: 'CASCADE',
|
|
2212
|
+
},
|
|
2213
|
+
{
|
|
2214
|
+
table: 'channel_members',
|
|
2215
|
+
columns: ['user_id'],
|
|
2216
|
+
referencedTable: 'users',
|
|
2217
|
+
referencedColumns: ['id'],
|
|
2218
|
+
onDelete: 'CASCADE',
|
|
2219
|
+
},
|
|
2220
|
+
{
|
|
2221
|
+
table: 'channel_messages',
|
|
2222
|
+
columns: ['channel_id'],
|
|
2223
|
+
referencedTable: 'channels',
|
|
2224
|
+
referencedColumns: ['id'],
|
|
2225
|
+
onDelete: 'CASCADE',
|
|
2226
|
+
},
|
|
2227
|
+
{
|
|
2228
|
+
table: 'channel_reactions',
|
|
2229
|
+
columns: ['message_id'],
|
|
2230
|
+
referencedTable: 'channel_messages',
|
|
2231
|
+
referencedColumns: ['id'],
|
|
2232
|
+
onDelete: 'CASCADE',
|
|
2233
|
+
},
|
|
2234
|
+
{
|
|
2235
|
+
table: 'channel_attachments',
|
|
2236
|
+
columns: ['message_id'],
|
|
2237
|
+
referencedTable: 'channel_messages',
|
|
2238
|
+
referencedColumns: ['id'],
|
|
2239
|
+
onDelete: 'CASCADE',
|
|
2240
|
+
},
|
|
2241
|
+
{
|
|
2242
|
+
table: 'notifications',
|
|
2243
|
+
columns: ['user_id'],
|
|
2244
|
+
referencedTable: 'users',
|
|
2245
|
+
referencedColumns: ['id'],
|
|
2246
|
+
onDelete: 'CASCADE',
|
|
2247
|
+
},
|
|
2248
|
+
{
|
|
2249
|
+
table: 'message_feedback',
|
|
2250
|
+
columns: ['user_id'],
|
|
2251
|
+
referencedTable: 'users',
|
|
2252
|
+
referencedColumns: ['id'],
|
|
2253
|
+
onDelete: 'CASCADE',
|
|
2254
|
+
},
|
|
2255
|
+
{
|
|
2256
|
+
table: 'arena_votes',
|
|
2257
|
+
columns: ['user_id'],
|
|
2258
|
+
referencedTable: 'users',
|
|
2259
|
+
referencedColumns: ['id'],
|
|
2260
|
+
onDelete: 'CASCADE',
|
|
2261
|
+
},
|
|
2262
|
+
{
|
|
2263
|
+
table: 'eval_sets',
|
|
2264
|
+
columns: ['user_id'],
|
|
2265
|
+
referencedTable: 'users',
|
|
2266
|
+
referencedColumns: ['id'],
|
|
2267
|
+
onDelete: 'CASCADE',
|
|
2268
|
+
},
|
|
2269
|
+
{
|
|
2270
|
+
table: 'eval_runs',
|
|
2271
|
+
columns: ['user_id'],
|
|
2272
|
+
referencedTable: 'users',
|
|
2273
|
+
referencedColumns: ['id'],
|
|
2274
|
+
onDelete: 'CASCADE',
|
|
2275
|
+
},
|
|
2276
|
+
{
|
|
2277
|
+
table: 'eval_runs',
|
|
2278
|
+
columns: ['set_id'],
|
|
2279
|
+
referencedTable: 'eval_sets',
|
|
2280
|
+
referencedColumns: ['id'],
|
|
2281
|
+
onDelete: 'CASCADE',
|
|
2282
|
+
},
|
|
1379
2283
|
];
|
|
1380
2284
|
const REQUIRED_INDEXES = [
|
|
1381
2285
|
{
|
|
@@ -1598,6 +2502,126 @@ const REQUIRED_INDEXES = [
|
|
|
1598
2502
|
table: 'automation_runs',
|
|
1599
2503
|
columns: ['user_id', 'scheduled_for'],
|
|
1600
2504
|
},
|
|
2505
|
+
{
|
|
2506
|
+
name: 'idx_tool_servers_updated',
|
|
2507
|
+
table: 'tool_servers',
|
|
2508
|
+
columns: ['updated_at'],
|
|
2509
|
+
},
|
|
2510
|
+
{
|
|
2511
|
+
name: 'idx_tool_approvals_owner',
|
|
2512
|
+
table: 'tool_approvals',
|
|
2513
|
+
columns: ['user_id', 'status', 'created_at'],
|
|
2514
|
+
},
|
|
2515
|
+
{
|
|
2516
|
+
name: 'idx_prompts_owner',
|
|
2517
|
+
table: 'prompts',
|
|
2518
|
+
columns: ['user_id', 'updated_at'],
|
|
2519
|
+
},
|
|
2520
|
+
{
|
|
2521
|
+
name: 'idx_skills_owner',
|
|
2522
|
+
table: 'skills',
|
|
2523
|
+
columns: ['user_id', 'updated_at'],
|
|
2524
|
+
},
|
|
2525
|
+
{
|
|
2526
|
+
name: 'idx_skill_files_skill',
|
|
2527
|
+
table: 'skill_files',
|
|
2528
|
+
columns: ['skill_id'],
|
|
2529
|
+
},
|
|
2530
|
+
{
|
|
2531
|
+
name: 'idx_note_revisions_note',
|
|
2532
|
+
table: 'note_revisions',
|
|
2533
|
+
columns: ['note_id', 'created_at'],
|
|
2534
|
+
},
|
|
2535
|
+
{
|
|
2536
|
+
name: 'idx_note_attachments_note',
|
|
2537
|
+
table: 'note_attachments',
|
|
2538
|
+
columns: ['note_id'],
|
|
2539
|
+
},
|
|
2540
|
+
{
|
|
2541
|
+
name: 'idx_calendar_scoped_events',
|
|
2542
|
+
table: 'calendar_events',
|
|
2543
|
+
columns: ['calendar_id'],
|
|
2544
|
+
sqlFragment: 'WHERE calendar_id IS NOT NULL',
|
|
2545
|
+
},
|
|
2546
|
+
{
|
|
2547
|
+
name: 'idx_calendars_owner',
|
|
2548
|
+
table: 'calendars',
|
|
2549
|
+
columns: ['user_id', 'updated_at'],
|
|
2550
|
+
},
|
|
2551
|
+
{
|
|
2552
|
+
name: 'idx_channels_dm_key',
|
|
2553
|
+
table: 'channels',
|
|
2554
|
+
columns: ['dm_key'],
|
|
2555
|
+
unique: true,
|
|
2556
|
+
sqlFragment: 'WHERE dm_key IS NOT NULL',
|
|
2557
|
+
},
|
|
2558
|
+
{
|
|
2559
|
+
name: 'idx_channel_members_user',
|
|
2560
|
+
table: 'channel_members',
|
|
2561
|
+
columns: ['user_id'],
|
|
2562
|
+
},
|
|
2563
|
+
{
|
|
2564
|
+
name: 'idx_channel_messages_timeline',
|
|
2565
|
+
table: 'channel_messages',
|
|
2566
|
+
columns: ['channel_id', 'created_at', 'id'],
|
|
2567
|
+
},
|
|
2568
|
+
{
|
|
2569
|
+
name: 'idx_channel_messages_thread',
|
|
2570
|
+
table: 'channel_messages',
|
|
2571
|
+
columns: ['parent_id'],
|
|
2572
|
+
},
|
|
2573
|
+
{
|
|
2574
|
+
name: 'idx_channel_attachments_message',
|
|
2575
|
+
table: 'channel_attachments',
|
|
2576
|
+
columns: ['message_id'],
|
|
2577
|
+
},
|
|
2578
|
+
{
|
|
2579
|
+
name: 'idx_notifications_user',
|
|
2580
|
+
table: 'notifications',
|
|
2581
|
+
columns: ['user_id', 'created_at'],
|
|
2582
|
+
},
|
|
2583
|
+
{
|
|
2584
|
+
name: 'idx_notifications_dedupe',
|
|
2585
|
+
table: 'notifications',
|
|
2586
|
+
columns: ['user_id', 'source_key'],
|
|
2587
|
+
unique: true,
|
|
2588
|
+
sqlFragment: 'WHERE source_key IS NOT NULL',
|
|
2589
|
+
},
|
|
2590
|
+
{
|
|
2591
|
+
name: 'idx_model_tariffs_lookup',
|
|
2592
|
+
table: 'model_tariffs',
|
|
2593
|
+
columns: ['plugin_id', 'model', 'effective_from'],
|
|
2594
|
+
},
|
|
2595
|
+
{
|
|
2596
|
+
name: 'idx_usage_budgets_principal',
|
|
2597
|
+
table: 'usage_budgets',
|
|
2598
|
+
columns: ['principal_type', 'principal_id'],
|
|
2599
|
+
},
|
|
2600
|
+
{
|
|
2601
|
+
name: 'idx_message_feedback_owner',
|
|
2602
|
+
table: 'message_feedback',
|
|
2603
|
+
columns: ['user_id', 'created_at'],
|
|
2604
|
+
},
|
|
2605
|
+
{
|
|
2606
|
+
name: 'idx_arena_votes_order',
|
|
2607
|
+
table: 'arena_votes',
|
|
2608
|
+
columns: ['created_at', 'id'],
|
|
2609
|
+
},
|
|
2610
|
+
{
|
|
2611
|
+
name: 'idx_eval_sets_owner',
|
|
2612
|
+
table: 'eval_sets',
|
|
2613
|
+
columns: ['user_id', 'updated_at'],
|
|
2614
|
+
},
|
|
2615
|
+
{
|
|
2616
|
+
name: 'idx_eval_runs_owner',
|
|
2617
|
+
table: 'eval_runs',
|
|
2618
|
+
columns: ['user_id', 'created_at'],
|
|
2619
|
+
},
|
|
2620
|
+
{
|
|
2621
|
+
name: 'idx_eval_runs_parent',
|
|
2622
|
+
table: 'eval_runs',
|
|
2623
|
+
columns: ['set_id'],
|
|
2624
|
+
},
|
|
1601
2625
|
];
|
|
1602
2626
|
const REQUIRED_TABLE_SQL_FRAGMENTS = {
|
|
1603
2627
|
platform_vector_entries: ['CHECK(dimensions > 0)'],
|
|
@@ -1634,6 +2658,33 @@ const REQUIRED_TABLE_SQL_FRAGMENTS = {
|
|
|
1634
2658
|
"permission IN ('read', 'write', 'admin')",
|
|
1635
2659
|
],
|
|
1636
2660
|
security_audit_events: ["result IN ('success', 'denied', 'failure')"],
|
|
2661
|
+
tool_servers: [
|
|
2662
|
+
"kind IN ('openapi', 'mcp')",
|
|
2663
|
+
"auth_mode IN ('none', 'bearer', 'header')",
|
|
2664
|
+
"access_mode IN ('admins-only', 'all-users', 'granted')",
|
|
2665
|
+
],
|
|
2666
|
+
tool_approvals: [
|
|
2667
|
+
"scope IN ('once', 'session', 'always')",
|
|
2668
|
+
"status IN ('pending', 'approved', 'denied', 'expired')",
|
|
2669
|
+
],
|
|
2670
|
+
channels: ["type IN ('public', 'private', 'dm')"],
|
|
2671
|
+
channel_members: ["role IN ('owner', 'member')"],
|
|
2672
|
+
channel_messages: ["author_kind IN ('user', 'model')"],
|
|
2673
|
+
channel_reactions: ['UNIQUE (message_id, user_id, emoji)'],
|
|
2674
|
+
webhook_targets: ['enabled IN (0, 1)'],
|
|
2675
|
+
usage_budgets: [
|
|
2676
|
+
"principal_type IN ('instance', 'user', 'group')",
|
|
2677
|
+
"period IN ('daily', 'weekly', 'monthly')",
|
|
2678
|
+
"mode IN ('observe', 'soft', 'hard')",
|
|
2679
|
+
],
|
|
2680
|
+
message_feedback: ['rating IN (-1, 1)', 'UNIQUE (user_id, message_id)'],
|
|
2681
|
+
arena_votes: [
|
|
2682
|
+
"winner IN ('a', 'b', 'tie', 'both-bad')",
|
|
2683
|
+
'UNIQUE (user_id, compare_group)',
|
|
2684
|
+
],
|
|
2685
|
+
eval_runs: [
|
|
2686
|
+
"status IN ('queued', 'running', 'completed', 'failed', 'cancelled')",
|
|
2687
|
+
],
|
|
1637
2688
|
};
|
|
1638
2689
|
const quoteIdentifier = (identifier) => `"${identifier.replace(/"/g, '""')}"`;
|
|
1639
2690
|
const normalizeSql = (sql) => sql
|
|
@@ -1855,6 +2906,10 @@ const collectMissingSchema = (database) => [
|
|
|
1855
2906
|
...collectMissingResourceDeletionLifecycleSchema(database),
|
|
1856
2907
|
...collectMissingTrustFoundationSchema(database),
|
|
1857
2908
|
...collectMissingPersonalAutomationsSchema(database),
|
|
2909
|
+
...collectMissingAgentFoundationSchema(database),
|
|
2910
|
+
...collectMissingSkillFilesSchema(database),
|
|
2911
|
+
...collectMissingNotesV2Schema(database),
|
|
2912
|
+
...collectMissingTeamCollaborationSchema(database),
|
|
1858
2913
|
];
|
|
1859
2914
|
const collectMissingMigrationLedgerSchema = (database) => [
|
|
1860
2915
|
...collectMissingColumns(database, {
|
|
@@ -1866,7 +2921,8 @@ const collectMissingLegacySchema = (database) => [
|
|
|
1866
2921
|
...collectMissingColumns(database, LEGACY_REQUIRED_SCHEMA),
|
|
1867
2922
|
...collectMissingStructuralInvariants(database).filter(item => !item.includes('platform_') &&
|
|
1868
2923
|
!item.includes('idx_users_email_lookup') &&
|
|
1869
|
-
!item.includes('idx_voice_profiles_name_lookup')
|
|
2924
|
+
!item.includes('idx_voice_profiles_name_lookup') &&
|
|
2925
|
+
!item.includes('idx_calendar_scoped_events')),
|
|
1870
2926
|
];
|
|
1871
2927
|
const collectMissingIdentityEmailLookupSchema = (database) => [
|
|
1872
2928
|
...collectMissingColumns(database, IDENTITY_EMAIL_LOOKUP_REQUIRED_SCHEMA),
|
|
@@ -1921,6 +2977,38 @@ const collectMissingPersonalAutomationsSchema = (database) => [
|
|
|
1921
2977
|
item.includes('automations') ||
|
|
1922
2978
|
item.includes('automation_runs')),
|
|
1923
2979
|
];
|
|
2980
|
+
const collectMissingAgentFoundationSchema = (database) => [
|
|
2981
|
+
...collectMissingColumns(database, AGENT_FOUNDATION_REQUIRED_SCHEMA),
|
|
2982
|
+
...collectMissingStructuralInvariants(database).filter(item => item.includes('tool_server') ||
|
|
2983
|
+
item.includes('tool_approvals') ||
|
|
2984
|
+
item.includes('prompt') ||
|
|
2985
|
+
item.includes('skill')),
|
|
2986
|
+
];
|
|
2987
|
+
const collectMissingSkillFilesSchema = (database) => [
|
|
2988
|
+
...collectMissingColumns(database, SKILL_FILES_REQUIRED_SCHEMA),
|
|
2989
|
+
...collectMissingStructuralInvariants(database).filter(item => item.includes('skill_files')),
|
|
2990
|
+
];
|
|
2991
|
+
const collectMissingNotesV2Schema = (database) => [
|
|
2992
|
+
...collectMissingColumns(database, NOTES_V2_REQUIRED_SCHEMA),
|
|
2993
|
+
...collectMissingStructuralInvariants(database).filter(item => item.includes('note_revisions') || item.includes('note_attachments')),
|
|
2994
|
+
];
|
|
2995
|
+
const collectMissingTeamCollaborationSchema = (database) => [
|
|
2996
|
+
...collectMissingColumns(database, TEAM_COLLABORATION_REQUIRED_SCHEMA),
|
|
2997
|
+
...collectMissingStructuralInvariants(database).filter(item => item.includes('channel') ||
|
|
2998
|
+
item.includes('notifications') ||
|
|
2999
|
+
item.includes('webhook_targets') ||
|
|
3000
|
+
item.includes('calendars') ||
|
|
3001
|
+
item.includes('idx_calendar_scoped_events')),
|
|
3002
|
+
];
|
|
3003
|
+
const collectMissingMediaEnterpriseOpsSchema = (database) => [
|
|
3004
|
+
...collectMissingColumns(database, MEDIA_ENTERPRISE_OPS_REQUIRED_SCHEMA),
|
|
3005
|
+
...collectMissingStructuralInvariants(database).filter(item => item.includes('model_tariffs') ||
|
|
3006
|
+
item.includes('usage_budgets') ||
|
|
3007
|
+
item.includes('message_feedback') ||
|
|
3008
|
+
item.includes('arena_votes') ||
|
|
3009
|
+
item.includes('eval_sets') ||
|
|
3010
|
+
item.includes('eval_runs')),
|
|
3011
|
+
];
|
|
1924
3012
|
const collectMissingIdentityAccountRetirementSchema = (database) => {
|
|
1925
3013
|
const row = database
|
|
1926
3014
|
.prepare("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'users'")
|
|
@@ -1959,6 +3047,11 @@ function collectMissingSchemaAtVersion(database, version) {
|
|
|
1959
3047
|
: []),
|
|
1960
3048
|
...(version >= 14 ? collectMissingTrustFoundationSchema(database) : []),
|
|
1961
3049
|
...(version >= 15 ? collectMissingPersonalAutomationsSchema(database) : []),
|
|
3050
|
+
...(version >= 16 ? collectMissingAgentFoundationSchema(database) : []),
|
|
3051
|
+
...(version >= 17 ? collectMissingSkillFilesSchema(database) : []),
|
|
3052
|
+
...(version >= 18 ? collectMissingNotesV2Schema(database) : []),
|
|
3053
|
+
...(version >= 19 ? collectMissingTeamCollaborationSchema(database) : []),
|
|
3054
|
+
...(version >= 20 ? collectMissingMediaEnterpriseOpsSchema(database) : []),
|
|
1962
3055
|
];
|
|
1963
3056
|
}
|
|
1964
3057
|
const collectMissingLegacyBootstrapSchema = (database) => {
|
|
@@ -2009,6 +3102,11 @@ const DURABLE_EVENT_REPLAY_INDEX_MIGRATION_CHECKSUM = '7d6b769ceadd08791c77ac5c5
|
|
|
2009
3102
|
const TRUST_FOUNDATION_MIGRATION_CHECKSUM = 'c5a73245de3cd3e37db8877c8457c975d789f98c1c71ae1e4fc891ba09e8de5a';
|
|
2010
3103
|
const LEGACY_DURABLE_EVENT_REPLAY_INDEX_MIGRATION_CHECKSUM = 'DURABLE_EVENT_REPLAY_INDEX_CHECKSUM_TO_FREEZE';
|
|
2011
3104
|
const PERSONAL_AUTOMATIONS_MIGRATION_CHECKSUM = '5bfb4a1789480a3cacc09c5a4359a4e77b82b0edafa80f6d78cde73e57ddc70b';
|
|
3105
|
+
const AGENT_FOUNDATION_MIGRATION_CHECKSUM = '7e3a346fae66c073aac800aa45847999a4300b2f17eb3eaf9ed6351e891e2941';
|
|
3106
|
+
const SKILL_FILES_MIGRATION_CHECKSUM = '584e1f9bca79eb5974f997088636d74d7f2c1e5fd816fcd0f6cf74ec30aea161';
|
|
3107
|
+
const NOTES_V2_MIGRATION_CHECKSUM = '05a6758ab2b2a54f9097a5d5604a2bd57e085f1dd16816b5dc96d1eb7a41a399';
|
|
3108
|
+
const TEAM_COLLABORATION_MIGRATION_CHECKSUM = '1cf021c941cfd9207a82e794e58d7553ae24a35b3f8f8a84bb4a0e06d0d77443';
|
|
3109
|
+
const MEDIA_ENTERPRISE_OPS_MIGRATION_CHECKSUM = 'c6bc6d98518f7a279ad7109cfdfcd8a75fbf7e3e157c50bca98142b50ac0f38b';
|
|
2012
3110
|
const MIGRATIONS = [
|
|
2013
3111
|
{
|
|
2014
3112
|
version: 1,
|
|
@@ -2231,6 +3329,75 @@ const MIGRATIONS = [
|
|
|
2231
3329
|
}
|
|
2232
3330
|
},
|
|
2233
3331
|
},
|
|
3332
|
+
{
|
|
3333
|
+
version: 16,
|
|
3334
|
+
name: 'agent-foundation',
|
|
3335
|
+
checksum: AGENT_FOUNDATION_MIGRATION_CHECKSUM,
|
|
3336
|
+
apply(database) {
|
|
3337
|
+
addColumnIfMissing(database, 'personas', 'bindings', 'TEXT');
|
|
3338
|
+
database.exec(AGENT_FOUNDATION_TABLES_SQL);
|
|
3339
|
+
const missing = collectMissingAgentFoundationSchema(database);
|
|
3340
|
+
if (missing.length > 0) {
|
|
3341
|
+
throw new Error(`SQLite agent foundation schema is incomplete; missing ${missing.join(', ')}`);
|
|
3342
|
+
}
|
|
3343
|
+
},
|
|
3344
|
+
},
|
|
3345
|
+
{
|
|
3346
|
+
version: 17,
|
|
3347
|
+
name: 'skill-files',
|
|
3348
|
+
checksum: SKILL_FILES_MIGRATION_CHECKSUM,
|
|
3349
|
+
apply(database) {
|
|
3350
|
+
database.exec(SKILL_FILES_SCHEMA_SQL);
|
|
3351
|
+
const missing = collectMissingSkillFilesSchema(database);
|
|
3352
|
+
if (missing.length > 0) {
|
|
3353
|
+
throw new Error(`SQLite skill files schema is incomplete; missing ${missing.join(', ')}`);
|
|
3354
|
+
}
|
|
3355
|
+
},
|
|
3356
|
+
},
|
|
3357
|
+
{
|
|
3358
|
+
version: 18,
|
|
3359
|
+
name: 'notes-v2',
|
|
3360
|
+
checksum: NOTES_V2_MIGRATION_CHECKSUM,
|
|
3361
|
+
apply(database) {
|
|
3362
|
+
addColumnIfMissing(database, 'notes', 'pinned', 'INTEGER DEFAULT 0');
|
|
3363
|
+
database.exec(NOTES_V2_TABLES_SQL);
|
|
3364
|
+
const missing = collectMissingNotesV2Schema(database);
|
|
3365
|
+
if (missing.length > 0) {
|
|
3366
|
+
throw new Error(`SQLite notes v2 schema is incomplete; missing ${missing.join(', ')}`);
|
|
3367
|
+
}
|
|
3368
|
+
},
|
|
3369
|
+
},
|
|
3370
|
+
{
|
|
3371
|
+
version: 19,
|
|
3372
|
+
name: 'team-collaboration',
|
|
3373
|
+
checksum: TEAM_COLLABORATION_MIGRATION_CHECKSUM,
|
|
3374
|
+
apply(database) {
|
|
3375
|
+
addColumnIfMissing(database, 'calendar_events', 'calendar_id', 'TEXT');
|
|
3376
|
+
addColumnIfMissing(database, 'calendar_events', 'reminder_minutes', 'INTEGER');
|
|
3377
|
+
addColumnIfMissing(database, 'calendar_events', 'last_reminded_occurrence', 'INTEGER');
|
|
3378
|
+
database.exec(TEAM_COLLABORATION_TABLES_SQL);
|
|
3379
|
+
const missing = collectMissingTeamCollaborationSchema(database);
|
|
3380
|
+
if (missing.length > 0) {
|
|
3381
|
+
throw new Error(`SQLite team collaboration schema is incomplete; missing ${missing.join(', ')}`);
|
|
3382
|
+
}
|
|
3383
|
+
},
|
|
3384
|
+
},
|
|
3385
|
+
{
|
|
3386
|
+
version: 20,
|
|
3387
|
+
name: 'media-enterprise-ops',
|
|
3388
|
+
checksum: MEDIA_ENTERPRISE_OPS_MIGRATION_CHECKSUM,
|
|
3389
|
+
apply(database) {
|
|
3390
|
+
addColumnIfMissing(database, 'voice_profiles', 'consent_expires_at', 'INTEGER');
|
|
3391
|
+
addColumnIfMissing(database, 'voice_profiles', 'revoked_at', 'INTEGER');
|
|
3392
|
+
addColumnIfMissing(database, 'voice_profiles', 'transfer_count', 'INTEGER NOT NULL DEFAULT 0');
|
|
3393
|
+
addColumnIfMissing(database, 'voice_profiles', 'last_transfer_at', 'INTEGER');
|
|
3394
|
+
database.exec(MEDIA_ENTERPRISE_OPS_TABLES_SQL);
|
|
3395
|
+
const missing = collectMissingMediaEnterpriseOpsSchema(database);
|
|
3396
|
+
if (missing.length > 0) {
|
|
3397
|
+
throw new Error(`SQLite media enterprise ops schema is incomplete; missing ${missing.join(', ')}`);
|
|
3398
|
+
}
|
|
3399
|
+
},
|
|
3400
|
+
},
|
|
2234
3401
|
];
|
|
2235
3402
|
/**
|
|
2236
3403
|
* Whether a pending migration needs foreign-key enforcement suspended before
|