"""backend.engines package 엔진 레지스트리. 서브패키지를 순회해 각 엔진 모듈이 노출한 `TOOL_ID` 와 `TOOL_INFO` 를 자동 수집하여 `TOOLS` dict 로 제공한다. 외부(backend.app 등)에서는 from engines import TOOLS 로 공통 접근. """ from importlib import import_module import pkgutil # Dictionary mapping tool_id to its info TOOLS = {} # Discover and import all subpackages to collect TOOL_INFO package_name = __name__ for _, module_name, is_pkg in pkgutil.iter_modules(__path__): if not is_pkg: # Skip if it's not a package (we expect dirs) continue try: module = import_module(f"{package_name}.{module_name}") # Each engine package must expose TOOL_ID and TOOL_INFO if hasattr(module, "TOOL_ID") and hasattr(module, "TOOL_INFO"): TOOLS[module.TOOL_ID] = module.TOOL_INFO except ModuleNotFoundError: # If submodule import fails, skip silently continue