"""Safety Contract DSL (minimal MVP). Defines simple data models to describe safety contracts for onboard AI planning. """ from __future__ import annotations from dataclasses import dataclass, field from typing import List, Dict, Any, Optional @dataclass class LocalCapabilities: name: str capabilities: List[str] = field(default_factory=list) metadata: Dict[str, Any] = field(default_factory=dict) @dataclass class SafetyPreConditions: description: str conditions: Dict[str, Any] = field(default_factory=dict) @dataclass class SafetyPostConditions: description: str conditions: Dict[str, Any] = field(default_factory=dict) @dataclass class ResourceBudgets: cpu_cores: float = 0.0 memory_gb: float = 0.0 energy_wh: float = 0.0 time_seconds: float = 0.0 @dataclass class DataSharingPolicy: policy_id: str allowed_data: List[str] = field(default_factory=list) constraints: Dict[str, Any] = field(default_factory=dict) @dataclass class SafetyContract: contract_id: str local_capabilities: List[LocalCapabilities] = field(default_factory=list) pre_conditions: Optional[SafetyPreConditions] = None post_conditions: Optional[SafetyPostConditions] = None budgets: Optional[ResourceBudgets] = None data_policy: Optional[DataSharingPolicy] = None version: str = "1.0"