Spaces:
Sleeping
Sleeping
| """Typed models for Agentic Security Lab round 2.""" | |
| from typing import Any | |
| from pydantic import BaseModel, Field | |
| # Action payload sent by the policy each turn. | |
| class AgenticSecurityLabAction(BaseModel): | |
| """One action emitted by the policy.""" | |
| command: str | |
| parameters: dict[str, Any] = Field(default_factory=dict) | |
| # Observation payload returned after each action. | |
| class AgenticSecurityLabObservation(BaseModel): | |
| """Observation after each action.""" | |
| success: bool | |
| done: bool | |
| reward: float | |
| result: str | |
| data: dict[str, Any] = Field(default_factory=dict) | |
| incident_summary: str = "" | |
| steps_remaining: int = 0 | |
| exposed_secrets: list[str] = Field(default_factory=list) | |
| active_malicious_packages: list[str] = Field(default_factory=list) | |
| visible_alerts: list[str] = Field(default_factory=list) | |
| uncertainty_score: float = 0.0 | |
| plan_progress: dict[str, bool] = Field(default_factory=dict) | |
| info: dict[str, Any] = Field(default_factory=dict) | |
| error: str | None = None | |
| # Full internal episode state returned by GET /state. | |
| class AgenticSecurityLabState(BaseModel): | |
| """Full internal episode state.""" | |
| episode_id: str = "" | |
| step_count: int = 0 | |
| task_name: str = "" | |
| mode: str = "benchmark" | |
| mode_fallback_used: bool = False | |
| command_fallback_enabled: bool = False | |
| command_fallback_used_count: int = 0 | |
| invalid_action_count: int = 0 | |
| false_positive_count: int = 0 | |
| packages: dict[str, Any] = Field(default_factory=dict) | |
| dependents: dict[str, list[str]] = Field(default_factory=dict) | |
| secrets: dict[str, Any] = Field(default_factory=dict) | |
| quarantined: list[str] = Field(default_factory=list) | |
| rotated_secrets: list[str] = Field(default_factory=list) | |
| notified_teams: list[str] = Field(default_factory=list) | |
| inspected: list[str] = Field(default_factory=list) | |
| scanned_logs: list[str] = Field(default_factory=list) | |
| discovered_packages: list[str] = Field(default_factory=list) | |
| discovered_secrets: list[str] = Field(default_factory=list) | |
| traced_packages: list[str] = Field(default_factory=list) | |
| pending_hidden_iocs: list[str] = Field(default_factory=list) | |
| discovered_iocs: list[str] = Field(default_factory=list) | |
| risk_events: list[str] = Field(default_factory=list) | |
| max_steps: int = 20 | |
| exfiltration_step: int = 15 | |
| attacker_progress: float = 0.0 | |
| total_reward: float = 0.0 | |
| incident_contained: bool = False | |
| attacker_succeeded: bool = False | |
| plan_progress: dict[str, bool] = Field(default_factory=dict) | |
| trajectory_log: list[dict[str, Any]] = Field(default_factory=list) | |