build(agent): new-agents-2#7e3bbc iteration
This commit is contained in:
parent
1bcfb62eec
commit
5db0cdfd87
|
|
@ -51,3 +51,20 @@ class SafetyContract:
|
|||
budgets: Optional[ResourceBudgets] = None
|
||||
data_policy: Optional[DataSharingPolicy] = None
|
||||
version: str = "1.0"
|
||||
# MVP extension: optional, versioned scenarios for deterministic replay and testing
|
||||
scenarios: List["Scenario"] = field(default_factory=list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Scenario:
|
||||
"""Minimal representation of a test/operational scenario for safety contracts.
|
||||
|
||||
This enables versioned scenarios with sensors, environment disturbances,
|
||||
and deterministic replay hooks. The fields are kept intentionally lightweight
|
||||
to avoid breaking existing contracts while enabling extensibility.
|
||||
"""
|
||||
scenario_id: str
|
||||
sensors: Dict[str, Any] = field(default_factory=dict)
|
||||
environment: Dict[str, Any] = field(default_factory=dict)
|
||||
deterministic_replay: bool = False
|
||||
description: str = ""
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ from __future__ import annotations
|
|||
from dataclasses import dataclass, field, asdict
|
||||
from typing import List, Dict, Any
|
||||
|
||||
from .dsl import SafetyContract, LocalCapabilities
|
||||
from .dsl import SafetyContract, LocalCapabilities, Scenario
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
@ -88,6 +88,22 @@ def contract_to_ir(contract: SafetyContract) -> IRCube:
|
|||
audit_log_ref="",
|
||||
)
|
||||
|
||||
# If the contract contains scenarios, map them into IR objects as well
|
||||
if contract.scenarios:
|
||||
for sc in contract.scenarios:
|
||||
obj = IRObject(
|
||||
id=f"scenario-{sc.scenario_id}",
|
||||
type="Scenario",
|
||||
properties={
|
||||
"scenario_id": sc.scenario_id,
|
||||
"description": sc.description,
|
||||
"sensors": sc.sensors,
|
||||
"environment": sc.environment,
|
||||
"deterministic_replay": sc.deterministic_replay,
|
||||
},
|
||||
)
|
||||
objects.append(obj)
|
||||
|
||||
return IRCube(objects=objects, morphisms=morphisms, plan_delta=plan_delta, dual_variables=dual)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue