diff --git a/bulkgen/providers/__init__.py b/bulkgen/providers/__init__.py index e69de29..047aed1 100644 --- a/bulkgen/providers/__init__.py +++ b/bulkgen/providers/__init__.py @@ -0,0 +1,31 @@ +"""Provider abstraction for AI generation backends.""" + +from __future__ import annotations + +import abc +from pathlib import Path + +from bulkgen.config import TargetConfig + + +class Provider(abc.ABC): + """Abstract base for generation providers.""" + + @abc.abstractmethod + async def generate( + self, + target_name: str, + target_config: TargetConfig, + resolved_prompt: str, + resolved_model: str, + project_dir: Path, + ) -> None: + """Generate the target artifact and write it to *project_dir / target_name*. + + Args: + target_name: Output filename (relative to project_dir). + target_config: The parsed target configuration. + resolved_prompt: The fully resolved prompt text. + resolved_model: The resolved model name. + project_dir: The project working directory. + """