AI-agent / client /aura_client /security.py
AURA Sync Bot
chore: deploy to HuggingFace Space
999bb04
"""Client-side command validation."""
from __future__ import annotations
import re
from dataclasses import dataclass
from typing import Any
_BLOCKED_PATTERNS = [r";", r"&&", r"\|\|", r"\|", r"rm\s+-rf", r"\bsudo\b", r"\bchmod\b", r"\bchown\b", r"wget\s+\S+\s*\|\s*sh", r"curl\s+\S+\s*\|\s*sh"]
@dataclass(slots=True)
class CommandSecurity:
allowed_agents: tuple[str, ...] = ("atlas", "aegis", "hermes", "lyra")
def validate(self, command: dict[str, Any]) -> None:
agent = str(command.get("agent", ""))
if agent not in self.allowed_agents:
raise ValueError("agent not allowed")
text = " ".join(str(command.get(key, "")) for key in ("tool", "args"))
if any(re.search(pattern, text, flags=re.IGNORECASE) for pattern in _BLOCKED_PATTERNS):
raise ValueError("blocked command pattern")