diff --git a/backend/app/schemas/conversation.py b/backend/app/schemas/conversation.py index adea52b..f5b5749 100644 --- a/backend/app/schemas/conversation.py +++ b/backend/app/schemas/conversation.py @@ -1,5 +1,7 @@ -from pydantic import BaseModel from datetime import datetime +from typing import Literal + +from pydantic import BaseModel class MessageCreate(BaseModel): @@ -37,6 +39,7 @@ class ChatRequest(BaseModel): conversation_id: str | None = None agent_id: str | None = None model_name: str | None = None + runtime: Literal["jarvis", "hermes"] | None = None file_ids: list[str] = [] diff --git a/backend/app/schemas/schedule_center.py b/backend/app/schemas/schedule_center.py index 5d979c2..811003b 100644 --- a/backend/app/schemas/schedule_center.py +++ b/backend/app/schemas/schedule_center.py @@ -1,7 +1,8 @@ from datetime import datetime -from pydantic import BaseModel +from pydantic import BaseModel, Field +from app.models.task import TaskDispatchStatus, TaskPriority, TaskQuadrant, TaskStatus from app.schemas.goal import GoalOut from app.schemas.reminder import ReminderOut from app.schemas.task import TaskOut @@ -18,6 +19,47 @@ class ScheduleCenterDaySummary(BaseModel): goal_total: int +class ScheduleCenterFocusTaskOut(BaseModel): + id: str + title: str + status: TaskStatus + priority: TaskPriority + quadrant: TaskQuadrant | None = None + assignee_type: str | None = None + assignee_id: str | None = None + dispatch_status: TaskDispatchStatus + due_date: datetime | None = None + + +class ScheduleCenterQuadrantTaskOut(BaseModel): + id: str + title: str + status: TaskStatus + priority: TaskPriority + dispatch_status: TaskDispatchStatus + assignee_type: str | None = None + assignee_id: str | None = None + + +class ScheduleCenterQuadrantOut(BaseModel): + id: TaskQuadrant + title: str + subtitle: str + color: str + glow_color: str + icon: str + tasks: list[ScheduleCenterQuadrantTaskOut] = Field(default_factory=list) + + +class ScheduleCenterCommanderSummaryOut(BaseModel): + total: int = 0 + queued: int = 0 + running: int = 0 + completed: int = 0 + failed: int = 0 + overall_status: str | None = None + + class ScheduleCenterMonthOut(BaseModel): month: str days: list[ScheduleCenterDaySummary] @@ -30,4 +72,9 @@ class ScheduleCenterDateOut(BaseModel): reminders: list[ReminderOut] goals: list[GoalOut] summary: ScheduleCenterDaySummary + focus_tasks: list[ScheduleCenterFocusTaskOut] = Field(default_factory=list) + quadrants: list[ScheduleCenterQuadrantOut] = Field(default_factory=list) + commander_summary: ScheduleCenterCommanderSummaryOut = Field( + default_factory=ScheduleCenterCommanderSummaryOut, + ) generated_at: datetime