from defence360agent.internals.lazy_load import CoreSource
from defence360agent.rpc_tools.lookup import Endpoints
from defence360agent.utils import importer, Scope
from im360.internals.lazy_load import IM360Source
from imav.internals.lazy_load import AVSource


def init() -> None:
    importer.load_packages(
        CoreSource.MESSAGES + AVSource.MESSAGES + IM360Source.MESSAGES
    )
    importer.load_packages(
        CoreSource.ENDPOINTS + AVSource.ENDPOINTS + IM360Source.ENDPOINTS
    )
    for cls in Endpoints.get_active_endpoints():
        if cls.SCOPE is not Scope.AV:
            cls.register_rpc_handlers()
