from enum import Enum from datetime import datetime from pydantic import BaseModel class SessionType(str, Enum): EPHEMERAL = "ephemeral" PERSISTENT = "persistent" SCHEDULED = "scheduled" class TaskStatus(str, Enum): PENDING = "pending" RUNNING = "running" COMPLETED = "completed" FAILED = "failed" ABORTED = "aborted" class CreateSessionRequest(BaseModel): type: SessionType = SessionType.EPHEMERAL title: str | None = None prompt: str | None = None class Task(BaseModel): id: str type: SessionType prompt: str status: TaskStatus = TaskStatus.PENDING session_id: str | None = None schedule: str | None = None created_at: datetime | None = None started_at: datetime | None = None finished_at: datetime | None = None error: str | None = None class PersistentSession(BaseModel): id: str session_id: str name: str created_at: datetime | None = None last_used_at: datetime | None = None class TaskHistory(BaseModel): id: str type: SessionType prompt: str status: TaskStatus session_id: str | None = None schedule: str | None = None created_at: str started_at: str | None = None finished_at: str | None = None error: str | None = None