29 lines
882 B
Python
29 lines
882 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from datetime import datetime, timezone
|
|
from typing import Any, Dict
|
|
|
|
|
|
@dataclass
|
|
class AgentRuntimeState:
|
|
agent_id: str
|
|
display_name: str | None = None
|
|
status: str = "idle"
|
|
last_session: str | None = None
|
|
last_updated: datetime = field(default_factory=lambda: datetime.now(timezone.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(timezone.utc)
|
|
|
|
def to_dict(self) -> Dict[str, Any]:
|
|
return {
|
|
"agent_id": self.agent_id,
|
|
"display_name": self.display_name,
|
|
"status": self.status,
|
|
"last_session": self.last_session,
|
|
"last_updated": self.last_updated.isoformat(),
|
|
}
|