agent-swarm-workbench / arena /validator_executor.py
Kiy-K's picture
Restore full Space app with bucket model support
31c8075 verified
Raw
History Blame Contribute Delete
1.26 kB
"""Validator sandbox executor adapters."""
from __future__ import annotations
import os
from typing import Any, Callable
from .codebase_archive import CodebaseArchiveStore, create_codebase_archive_store
from .codebase_executor import (
DEFAULT_SNAPSHOT_ROOT,
CodebaseSandboxExecutor,
_daytona_validator_backend,
_local_validator_backend,
)
class SandboxValidatorExecutor(CodebaseSandboxExecutor):
"""Restores Run codebase archives into a sandbox before running checks."""
def create_validator_executor(
archive_store: CodebaseArchiveStore | None = None,
provider: str | None = None,
) -> SandboxValidatorExecutor:
provider = (provider or os.getenv("VALIDATOR_SANDBOX_PROVIDER") or "local").lower()
store = archive_store or create_codebase_archive_store()
return SandboxValidatorExecutor(
backend_factory=_validator_backend_factory(provider),
archive_store=store,
root_dir=DEFAULT_SNAPSHOT_ROOT,
)
def _validator_backend_factory(provider: str) -> Callable[[], Any]:
if provider == "local":
return _local_validator_backend
if provider == "daytona":
return _daytona_validator_backend
raise ValueError(f"unsupported validator sandbox provider: {provider}")