/** * QUANTUM CAPABILITY ORCHESTRATOR v2.0 (STRENGTHENED) * * Logic Tier tertinggi untuk orkestrasi JUMPA.ID Multiverse. * Menangani resolusi konflik, grace period, dan pemetaan 101 modul secara granular. */ export type LicenseState = 'GRANTED' | 'UPSELL' | 'HIDDEN'; export interface QuantumCapabilities { status: 'ACTIVE' | 'SUSPENDED' | 'GRACE_PERIOD'; // VIDEO ENGINE (XCU) video: { codec: 'AV1' | 'HEVC' | 'VP9' | 'VP8'; transport: 'MOQ' | 'WEBTRANSPORT' | 'WEBRTC'; maxResolution: '4K' | '2K' | '1080p' | '720p'; fps: 30 | 60 | 120; features: { svc: boolean; onPremGateway: boolean; ebpfBypass: boolean; autopilot: boolean; multicam: boolean; recording: boolean; }; }; // CHAT ENGINE (XTM) chat: { encryption: 'E2EE_QUANTUM' | 'E2EE_STANDARD' | 'NONE'; vaultStorageGB: number; retentionDays: number; features: { omniBrainAI: boolean; selfDestruct: boolean; biometric: boolean; fileLarge: boolean; }; }; // IDENTITY & ACCESS (IAM) iam: { branding: { enabled: boolean; customDomain: boolean; }; security: { sso: boolean; ipWhitelist: boolean; auditLog: boolean; killswitch: boolean; }; }; // UI SOVEREIGNTY MATRIX (JVC/JC) // Dynamic Record: Mendukung tak terbatas injeksi DNA UI dari database tanpa hardcoding ui: Record; } export class QuantumOrchestrator { /** * Memperkuat Logika Resolusi Lisensi. * Menggabungkan Tenant-Level Policy dengan User-Level Overrides. */ static resolve( tenantLicenses: Record, userLicenses: Record = {}, tenantIsActive: boolean = true ): QuantumCapabilities { // 1. Hard Override: Jika Tenant Suspended, semua fitur mati kecuali Killswitch if (!tenantIsActive) { return this.generateSuspendedState(tenantLicenses); } // 2. Merge Logic: User license overrides tenant license unless tenant blocks it const merged = { ...tenantLicenses }; for (const key in userLicenses) { if (tenantLicenses[key] !== 'HIDDEN') { merged[key] = userLicenses[key]; } } const isGranted = (key: string) => merged[key] === 'GRANTED'; return { status: 'ACTIVE', video: { codec: isGranted('xcu.codec.av1') ? 'AV1' : isGranted('xcu.codec.hevc') ? 'HEVC' : isGranted('xcu.codec.vp9') ? 'VP9' : 'VP8', transport: isGranted('xcu.transport.moq') ? 'MOQ' : isGranted('xcu.transport.quic') ? 'WEBTRANSPORT' : 'WEBRTC', maxResolution: isGranted('xcu.codec.av1') ? '4K' : isGranted('xcu.codec.hevc') ? '2K' : '1080p', fps: isGranted('xcu.feature.screenshare_high') ? 60 : 30, features: { svc: isGranted('xcu.feature.svc'), onPremGateway: isGranted('xcu.feature.onprem'), ebpfBypass: isGranted('xcu.feature.ebpf'), autopilot: isGranted('xcu.feature.autopilot'), multicam: isGranted('xcu.feature.multicam'), recording: isGranted('xcu.feature.recording'), } }, chat: { encryption: isGranted('xtm.security.quantum') ? 'E2EE_QUANTUM' : isGranted('xtm.security.e2ee') ? 'E2EE_STANDARD' : 'NONE', vaultStorageGB: isGranted('xtm.storage.vault') ? 100 : 5, retentionDays: isGranted('xtm.feature.persistence') ? 365 : 30, features: { omniBrainAI: isGranted('xtm.ai.interceptor'), selfDestruct: isGranted('xtm.feature.burn'), biometric: isGranted('xtm.security.biometric'), fileLarge: isGranted('xtm.feature.file_large'), } }, iam: { branding: { enabled: isGranted('iam.feature.branding'), customDomain: isGranted('iam.feature.custom_domain'), }, security: { sso: isGranted('iam.auth.sso'), ipWhitelist: isGranted('iam.security.ip_whitelist'), auditLog: isGranted('iam.security.audit_log'), killswitch: isGranted('iam.security.killswitch'), } }, ui: Object.keys(merged).filter(k => k.startsWith('jvc.ui.') || k.startsWith('ui.')).reduce((acc, key) => { // Expose dynamic UI features by removing the 'jvc.ui.' prefix for simpler frontend access if desired, // or just keep the full key. Using full key to avoid conflicts. acc[key] = isGranted(key); return acc; }, {} as Record) }; } /** * State Khusus untuk Tenant yang disuspensi (Kill-Switch Active) */ private static generateSuspendedState(licenses: Record): QuantumCapabilities { return { status: 'SUSPENDED', video: { codec: 'VP8', transport: 'WEBRTC', maxResolution: '720p', fps: 30, features: { svc: false, onPremGateway: false, ebpfBypass: false, autopilot: false, multicam: false, recording: false } }, chat: { encryption: 'NONE', vaultStorageGB: 0, retentionDays: 0, features: { omniBrainAI: false, selfDestruct: false, biometric: false, fileLarge: false } }, iam: { branding: { enabled: false, customDomain: false }, security: { sso: false, ipWhitelist: false, auditLog: false, killswitch: licenses['iam.security.killswitch'] === 'GRANTED' } }, ui: Object.keys(licenses).filter(k => k.startsWith('jvc.ui.') || k.startsWith('ui.')).reduce((acc, key) => { acc[key] = false; // Always false in suspended mode return acc; }, {} as Record) }; } }