"""Security-related Pydantic models."""
from datetime import datetime
from typing import List
from pydantic import BaseModel, Field
class SandboxOptions(BaseModel):
"""Sandbox execution options."""
read_only_dirs: List[str] = Field(default_factory=list)
write_dirs: List[str] = Field(default_factory=list)
network: bool = False
timeout: int = 300
memory_limit: int = 512
class SandboxResult(BaseModel):
"""Sandbox execution result."""
exit_code: int
stdout: str
stderr: str
duration: float
class InstallEvent(BaseModel):
"""Installation audit event."""
timestamp: datetime
skill: str
version: str
source: str
repository: str
ref: str
checksum: str
success: bool