Spaces:
Build error
Build error
| from typing import List, Optional, Dict, Any | |
| from pydantic import BaseModel, Field | |
| from enum import Enum | |
| import time | |
| # --- Enums --- | |
| class SessionStatus(str, Enum): | |
| ACTIVE = "active" | |
| STOPPED = "stopped" | |
| ARCHIVED = "archived" | |
| class MessageRole(str, Enum): | |
| USER = "user" | |
| ASSISTANT = "assistant" | |
| SYSTEM = "system" | |
| TOOL = "tool" | |
| # --- Entities --- | |
| class Message(BaseModel): | |
| role: MessageRole | |
| content: str | |
| timestamp: int = Field(default_factory=lambda: int(time.time())) | |
| tool_calls: Optional[List[Dict[str, Any]]] = None | |
| tool_call_id: Optional[str] = None | |
| class Session(BaseModel): | |
| session_id: str | |
| title: str | |
| created_at: int = Field(default_factory=lambda: int(time.time())) | |
| updated_at: int = Field(default_factory=lambda: int(time.time())) | |
| status: SessionStatus = SessionStatus.ACTIVE | |
| messages: List[Message] = [] | |
| metadata: Dict[str, Any] = {} | |
| # --- API Request/Response Models --- | |
| class StandardResponse(BaseModel): | |
| code: int | |
| msg: str | |
| data: Optional[Any] = None | |
| class SessionResponse(BaseModel): | |
| session_id: str | |
| title: str | |
| latest_message: Optional[str] = None | |
| latest_message_at: Optional[int] = None | |
| status: SessionStatus | |
| unread_message_count: int = 0 | |
| class SessionDetailResponse(BaseModel): | |
| session_id: str | |
| title: str | |
| events: List[Dict[str, Any]] = [] # Simplified for now, can be specific Event models | |
| class ChatRequest(BaseModel): | |
| message: str | |
| timestamp: Optional[int] = None | |
| event_id: Optional[str] = None | |
| class ShellRequest(BaseModel): | |
| session_id: str | |
| class FileRequest(BaseModel): | |
| file: str | |
| class ShellResponse(BaseModel): | |
| output: str | |
| session_id: str | |
| console: List[Dict[str, str]] | |
| class FileResponse(BaseModel): | |
| content: str | |
| file: str | |