File size: 1,934 Bytes
c8bc7ed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
"""
Bootstrap module to register concrete service implementations into the core kernel registry.
This decouples backend/core from backend/app while allowing core to use app services.
"""

import logging

# Import concrete services
from app.modules.audit.service import audit_service
from app.modules.auth.service import auth_service
from app.services.ai.ai_service import AIService
from app.services.infrastructure.monitoring_service import monitoring_service
from app.services.infrastructure.performance_monitor import performance_monitor
from app.services.infrastructure.storage.database_service import db_service
from core.infrastructure.registry import kernel_registry

logger = logging.getLogger(__name__)


def bootstrap_kernel():
    """Register all services in the kernel registry."""
    logger.info("Bootstrapping kernel service registry...")

    try:
        # 1. Audit Service
        kernel_registry.audit_service = audit_service

        # 2. Auth Service
        kernel_registry.auth_service = auth_service

        # 3. AI Service (Instance)
        # We'll create a shared instance if needed or use a singleton if it exists
        # AIService in ai_service.py doesn't have a singleton yet, let's create one.
        ai_service_instance = AIService()
        kernel_registry.ai_service = ai_service_instance

        # 4. Monitoring Service
        kernel_registry.monitoring_service = monitoring_service

        # 5. Performance Monitor
        kernel_registry.performance_monitor = performance_monitor

        # 6. Database Service
        kernel_registry.db_service = db_service

        logger.info("Kernel service registry successfully bootstrapped.")

    except Exception as e:
        logger.error(f"Failed to bootstrap kernel registry: {e}")
        # Note: We don't raise here to allow app to start in degraded mode if possible,
        # but core features using these services will fallback gracefully.