"""World model schemas: state transitions, rollouts, uncertainty for AGI.""" from datetime import datetime, timezone from typing import Any from pydantic import BaseModel, Field def _utc_now() -> datetime: return datetime.now(timezone.utc) class StateTransition(BaseModel): """Causal transition: action -> resulting state.""" from_state: dict[str, Any] = Field(default_factory=dict) action: str = Field(default="") action_args: dict[str, Any] = Field(default_factory=dict) to_state: dict[str, Any] = Field(default_factory=dict) confidence: float = Field(default=1.0, ge=0.0, le=1.0) class UncertaintyInfo(BaseModel): """Explicit uncertainty: confidence, risk, expected value.""" confidence: float = Field(default=1.0, ge=0.0, le=1.0) risk_level: str = Field(default="low", description="e.g. low, medium, high") expected_value: float | None = Field(default=None) rationale: str = Field(default="")