first commit

This commit is contained in:
2026-07-11 23:54:36 +07:00
commit b07562921b
40 changed files with 3813 additions and 0 deletions

32
core/schemas/modules.py Normal file
View File

@@ -0,0 +1,32 @@
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]