from __future__ import annotations from dataclasses import dataclass, field from datetime import datetime, UTC from typing import Any, Dict @dataclass class AgentRuntimeState: agent_id: str status: str = "idle" last_session: str | None = None last_updated: datetime = field(default_factory=lambda: datetime.now(UTC)) def update(self, status: str, session_key: str | None = None) -> None: self.status = status self.last_session = session_key self.last_updated = datetime.now(UTC) def to_dict(self) -> Dict[str, Any]: return { "agent_id": self.agent_id, "status": self.status, "last_session": self.last_session, "last_updated": self.last_updated.isoformat(), }