project_environment.py 610 B

123456789101112131415161718192021222324
  1. """Host adapter boundary for optional project-specific execution environments."""
  2. from __future__ import annotations
  3. from dataclasses import dataclass
  4. from typing import Any, Dict, List, Optional, Protocol
  5. @dataclass(frozen=True)
  6. class ProjectEnvironment:
  7. runner: Any
  8. messages: List[Dict[str, Any]]
  9. default_config: Any
  10. class ProjectEnvironmentResolver(Protocol):
  11. async def resolve(
  12. self,
  13. project_name: str,
  14. messages: Optional[List[Dict[str, Any]]] = None,
  15. ) -> Optional[ProjectEnvironment]: ...
  16. __all__ = ["ProjectEnvironment", "ProjectEnvironmentResolver"]