from __future__ import annotations from dataclasses import dataclass from typing import List, Dict, Any @dataclass class LocalRobotPlanDSL: fleet_id: str robot_id: str tasks: List[str] path: List[Dict[str, float]] objectives: Dict[str, Any] def to_model(self): # Lightweight bridge to core LocalRobotPlan model from .models import LocalRobotPlan return LocalRobotPlan( fleet_id=self.fleet_id, robot_id=self.robot_id, tasks=self.tasks, path=self.path, objectives=self.objectives, ) @dataclass class SharedSignalsDSL: signals: Dict[str, float] provenance: str | None = None timestamp: float | None = None def to_model(self): from .models import SharedSignals return SharedSignals(signals=self.signals, provenance=self.provenance, timestamp=self.timestamp) @dataclass class PlanDeltaDSL: delta_id: str fleet_id: str changes: Dict[str, Any] version: int = 1 nonce: str | None = None timestamp: float | None = None def to_model(self): from .models import PlanDelta return PlanDelta( delta_id=self.delta_id, fleet_id=self.fleet_id, changes=self.changes, version=self.version, nonce=self.nonce, timestamp=self.timestamp, ) __all__ = ["LocalRobotPlanDSL", "SharedSignalsDSL", "PlanDeltaDSL"]