Files
hydrogen/core/schemas/modules.py
2026-07-11 23:54:36 +07:00

33 lines
742 B
Python

from collections.abc import Callable
from dataclasses import dataclass
from typing import Any
from pydantic import BaseModel
from core.base import BaseWorker
from core.schemas import ModuleManifest
from reporting.models import PluginRuntimeError
WorkerBuilder = Callable[[BaseModel | dict[str, Any]], BaseWorker]
@dataclass(frozen=True)
class LoadedModule:
package_name: str
manifest: ModuleManifest
build_worker: WorkerBuilder
config_model: type[BaseModel]
@dataclass(frozen=True)
class LoadedWorker:
worker: BaseWorker
manifest: ModuleManifest
config: BaseModel | dict[str, Any]
@dataclass(frozen=True)
class ModuleLoadResult:
loaded_workers: list[LoadedWorker]
errors: list[PluginRuntimeError]