UNPKG

manifest

Version:

Self-hosted Manifest LLM router with embedded server, SQLite database, and dashboard

201 lines 13.2 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DatabaseModule = void 0; const common_1 = require("@nestjs/common"); const typeorm_1 = require("@nestjs/typeorm"); const schedule_1 = require("@nestjs/schedule"); const config_1 = require("@nestjs/config"); const fs_1 = require("fs"); const path_1 = require("path"); const agent_message_entity_1 = require("../entities/agent-message.entity"); const llm_call_entity_1 = require("../entities/llm-call.entity"); const tool_execution_entity_1 = require("../entities/tool-execution.entity"); const token_usage_snapshot_entity_1 = require("../entities/token-usage-snapshot.entity"); const cost_snapshot_entity_1 = require("../entities/cost-snapshot.entity"); const agent_log_entity_1 = require("../entities/agent-log.entity"); const api_key_entity_1 = require("../entities/api-key.entity"); const tenant_entity_1 = require("../entities/tenant.entity"); const agent_entity_1 = require("../entities/agent.entity"); const agent_api_key_entity_1 = require("../entities/agent-api-key.entity"); const notification_rule_entity_1 = require("../entities/notification-rule.entity"); const notification_log_entity_1 = require("../entities/notification-log.entity"); const email_provider_config_entity_1 = require("../entities/email-provider-config.entity"); const user_provider_entity_1 = require("../entities/user-provider.entity"); const tier_assignment_entity_1 = require("../entities/tier-assignment.entity"); const custom_provider_entity_1 = require("../entities/custom-provider.entity"); const database_seeder_service_1 = require("./database-seeder.service"); const local_bootstrap_service_1 = require("./local-bootstrap.service"); const model_prices_module_1 = require("../model-prices/model-prices.module"); const _1771464895790_InitialSchema_1 = require("./migrations/1771464895790-InitialSchema"); const _1771500000000_HashApiKeys_1 = require("./migrations/1771500000000-HashApiKeys"); const _1771600000000_ModelPricingImprovements_1 = require("./migrations/1771600000000-ModelPricingImprovements"); const _1771700000000_EmailProviderConfigs_1 = require("./migrations/1771700000000-EmailProviderConfigs"); const _1771800000000_AddNotificationEmailAndOptionalDomain_1 = require("./migrations/1771800000000-AddNotificationEmailAndOptionalDomain"); const _1771600000000_AddModelCapabilities_1 = require("./migrations/1771600000000-AddModelCapabilities"); const _1771700000000_AddRoutingTables_1 = require("./migrations/1771700000000-AddRoutingTables"); const _1771800000000_AddQualityScore_1 = require("./migrations/1771800000000-AddQualityScore"); const _1771800100000_SeedQualityScores_1 = require("./migrations/1771800100000-SeedQualityScores"); const _1771900000000_EncryptApiKeys_1 = require("./migrations/1771900000000-EncryptApiKeys"); const _1772000000000_MakeApiKeyNullable_1 = require("./migrations/1772000000000-MakeApiKeyNullable"); const _1772100000000_AddRoutingTier_1 = require("./migrations/1772100000000-AddRoutingTier"); const _1772200000000_AddLimitAction_1 = require("./migrations/1772200000000-AddLimitAction"); const _1772300000000_AddRoutingReason_1 = require("./migrations/1772300000000-AddRoutingReason"); const _1772400000000_AddAgentDisplayName_1 = require("./migrations/1772400000000-AddAgentDisplayName"); const _1772500000000_PerAgentRouting_1 = require("./migrations/1772500000000-PerAgentRouting"); const _1772668898071_AddCustomProviders_1 = require("./migrations/1772668898071-AddCustomProviders"); const _1772682112419_NullablePricing_1 = require("./migrations/1772682112419-NullablePricing"); const _1772843035514_AddPerformanceIndexes_1 = require("./migrations/1772843035514-AddPerformanceIndexes"); const _1772900000000_AddProviderAuthType_1 = require("./migrations/1772900000000-AddProviderAuthType"); const _1772905146384_AddDashboardIndexes_1 = require("./migrations/1772905146384-AddDashboardIndexes"); const _1772905260464_AddFallbacks_1 = require("./migrations/1772905260464-AddFallbacks"); const _1772920000000_AddModelDisplayName_1 = require("./migrations/1772920000000-AddModelDisplayName"); const _1772940000000_DropRedundantIndexes_1 = require("./migrations/1772940000000-DropRedundantIndexes"); const _1772948502780_BackfillTenantId_1 = require("./migrations/1772948502780-BackfillTenantId"); const _1772960000000_DropUnusedIndexes_1 = require("./migrations/1772960000000-DropUnusedIndexes"); const _1772960000000_PurgeNonCuratedModels_1 = require("./migrations/1772960000000-PurgeNonCuratedModels"); const _1773000000000_ExpandProviderUniqueKey_1 = require("./migrations/1773000000000-ExpandProviderUniqueKey"); const _1773100000000_AddOverrideAuthType_1 = require("./migrations/1773100000000-AddOverrideAuthType"); const _1773200000000_AddMessageAuthType_1 = require("./migrations/1773200000000-AddMessageAuthType"); const _1773202787708_AddModelsAgentIndex_1 = require("./migrations/1773202787708-AddModelsAgentIndex"); const _1773300000000_AddEmailProviderKeyPrefix_1 = require("./migrations/1773300000000-AddEmailProviderKeyPrefix"); const _1773400000000_AddProviderModelCache_1 = require("./migrations/1773400000000-AddProviderModelCache"); const _1773500000000_DropModelPricingTables_1 = require("./migrations/1773500000000-DropModelPricingTables"); const _1773600000000_AddOverrideProvider_1 = require("./migrations/1773600000000-AddOverrideProvider"); const _1773650000000_AddProviderRegion_1 = require("./migrations/1773650000000-AddProviderRegion"); const _1773700000000_DropSecurityEventTable_1 = require("./migrations/1773700000000-DropSecurityEventTable"); const _1773800000000_FixNegativeCosts_1 = require("./migrations/1773800000000-FixNegativeCosts"); const _1773900000000_AddKeyPrefixIndex_1 = require("./migrations/1773900000000-AddKeyPrefixIndex"); const _1774000000000_WidenKeyHashColumn_1 = require("./migrations/1774000000000-WidenKeyHashColumn"); const _1774896789000_WidenApiKeyColumn_1 = require("./migrations/1774896789000-WidenApiKeyColumn"); const _1775000000000_AddErrorHttpStatus_1 = require("./migrations/1775000000000-AddErrorHttpStatus"); const entities = [ agent_message_entity_1.AgentMessage, llm_call_entity_1.LlmCall, tool_execution_entity_1.ToolExecution, token_usage_snapshot_entity_1.TokenUsageSnapshot, cost_snapshot_entity_1.CostSnapshot, agent_log_entity_1.AgentLog, api_key_entity_1.ApiKey, tenant_entity_1.Tenant, agent_entity_1.Agent, agent_api_key_entity_1.AgentApiKey, notification_rule_entity_1.NotificationRule, notification_log_entity_1.NotificationLog, email_provider_config_entity_1.EmailProviderConfig, user_provider_entity_1.UserProvider, tier_assignment_entity_1.TierAssignment, custom_provider_entity_1.CustomProvider, ]; const migrations = [ _1771464895790_InitialSchema_1.InitialSchema1771464895790, _1771500000000_HashApiKeys_1.HashApiKeys1771500000000, _1771600000000_ModelPricingImprovements_1.ModelPricingImprovements1771600000000, _1771700000000_EmailProviderConfigs_1.EmailProviderConfigs1771700000000, _1771800000000_AddNotificationEmailAndOptionalDomain_1.AddNotificationEmailAndOptionalDomain1771800000000, _1771600000000_AddModelCapabilities_1.AddModelCapabilities1771600000000, _1771700000000_AddRoutingTables_1.AddRoutingTables1771700000000, _1771800000000_AddQualityScore_1.AddQualityScore1771800000000, _1771800100000_SeedQualityScores_1.SeedQualityScores1771800100000, _1771900000000_EncryptApiKeys_1.EncryptApiKeys1771900000000, _1772000000000_MakeApiKeyNullable_1.MakeApiKeyNullable1772000000000, _1772100000000_AddRoutingTier_1.AddRoutingTier1772100000000, _1772200000000_AddLimitAction_1.AddLimitAction1772200000000, _1772300000000_AddRoutingReason_1.AddRoutingReason1772300000000, _1772400000000_AddAgentDisplayName_1.AddAgentDisplayName1772400000000, _1772500000000_PerAgentRouting_1.PerAgentRouting1772500000000, _1772668898071_AddCustomProviders_1.AddCustomProviders1772668898071, _1772682112419_NullablePricing_1.NullablePricing1772682112419, _1772843035514_AddPerformanceIndexes_1.AddPerformanceIndexes1772843035514, _1772900000000_AddProviderAuthType_1.AddProviderAuthType1772900000000, _1772905146384_AddDashboardIndexes_1.AddDashboardIndexes1772905146384, _1772905260464_AddFallbacks_1.AddFallbacks1772905260464, _1772920000000_AddModelDisplayName_1.AddModelDisplayName1772920000000, _1772940000000_DropRedundantIndexes_1.DropRedundantIndexes1772940000000, _1772948502780_BackfillTenantId_1.BackfillTenantId1772948502780, _1772960000000_DropUnusedIndexes_1.DropUnusedIndexes1772960000000, _1772960000000_PurgeNonCuratedModels_1.PurgeNonCuratedModels1772960000000, _1773000000000_ExpandProviderUniqueKey_1.ExpandProviderUniqueKey1773000000000, _1773100000000_AddOverrideAuthType_1.AddOverrideAuthType1773100000000, _1773200000000_AddMessageAuthType_1.AddMessageAuthType1773200000000, _1773202787708_AddModelsAgentIndex_1.AddModelsAgentIndex1773202787708, _1773300000000_AddEmailProviderKeyPrefix_1.AddEmailProviderKeyPrefix1773300000000, _1773400000000_AddProviderModelCache_1.AddProviderModelCache1773400000000, _1773500000000_DropModelPricingTables_1.DropModelPricingTables1773500000000, _1773600000000_AddOverrideProvider_1.AddOverrideProvider1773600000000, _1773650000000_AddProviderRegion_1.AddProviderRegion1773650000000, _1773700000000_DropSecurityEventTable_1.DropSecurityEventTable1773700000000, _1773800000000_FixNegativeCosts_1.FixNegativeCosts1773800000000, _1773900000000_AddKeyPrefixIndex_1.AddKeyPrefixIndex1773900000000, _1774000000000_WidenKeyHashColumn_1.WidenKeyHashColumn1774000000000, _1774896789000_WidenApiKeyColumn_1.WidenApiKeyColumn1774896789000, _1775000000000_AddErrorHttpStatus_1.AddErrorHttpStatus1775000000000, ]; const isLocalMode = process.env['MANIFEST_MODE'] === 'local'; function buildModeServices() { const seeder = isLocalMode ? local_bootstrap_service_1.LocalBootstrapService : database_seeder_service_1.DatabaseSeederService; return [seeder]; } let DatabaseModule = class DatabaseModule { }; exports.DatabaseModule = DatabaseModule; exports.DatabaseModule = DatabaseModule = __decorate([ (0, common_1.Module)({ imports: [ schedule_1.ScheduleModule.forRoot(), typeorm_1.TypeOrmModule.forRootAsync({ inject: [config_1.ConfigService], useFactory: (config) => { if (isLocalMode) { const dbPath = config.get('app.dbPath') || ':memory:'; if (dbPath !== ':memory:') { (0, fs_1.mkdirSync)((0, path_1.dirname)(dbPath), { recursive: true, mode: 0o700 }); } return { type: 'sqljs', location: dbPath === ':memory:' ? undefined : dbPath, autoSave: dbPath !== ':memory:', entities, synchronize: true, migrationsRun: false, logging: false, }; } return { type: 'postgres', url: config.get('app.databaseUrl'), entities, synchronize: false, migrationsRun: ['development', 'test'].includes(config.get('app.nodeEnv') ?? ''), migrationsTransactionMode: 'all', migrations, logging: false, extra: { max: config.get('app.dbPoolMax') ?? 20, idleTimeoutMillis: 30000, }, }; }, }), typeorm_1.TypeOrmModule.forFeature([ tenant_entity_1.Tenant, agent_entity_1.Agent, agent_api_key_entity_1.AgentApiKey, agent_message_entity_1.AgentMessage, api_key_entity_1.ApiKey, user_provider_entity_1.UserProvider, tier_assignment_entity_1.TierAssignment, custom_provider_entity_1.CustomProvider, ]), model_prices_module_1.ModelPricesModule, ], providers: buildModeServices(), exports: buildModeServices(), }) ], DatabaseModule); //# sourceMappingURL=database.module.js.map