"""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 