## Summary - 2D 픽셀아트 가상 오피스에서 AI 에이전트(Stock, Music)가 실제 작업 수행 - FastAPI + WebSocket 실시간 상태 동기화 + 텔레그램 봇 양방향 알림/승인 - BaseAgent FSM (idle/working/waiting/reporting/break), 서비스 프록시 패턴 - Docker Compose 서비스 (port 18900) + Nginx WebSocket 프록시 ## Changes (13 commits) - Backend scaffold: config, db, models, Dockerfile - WebSocket manager + Service proxy - BaseAgent FSM + StockAgent + MusicAgent - Telegram bot + Scheduler - FastAPI main (REST + WS endpoints) - Infrastructure: docker-compose + nginx - Code review fixes: HTTPException, async polling, input validation Reviewed-on: #2
36 lines
726 B
Python
36 lines
726 B
Python
from pydantic import BaseModel
|
|
from typing import Optional
|
|
|
|
|
|
class CommandRequest(BaseModel):
|
|
agent: str
|
|
action: str
|
|
params: Optional[dict] = None
|
|
|
|
|
|
class ApprovalRequest(BaseModel):
|
|
agent: str
|
|
task_id: str
|
|
approved: bool
|
|
feedback: Optional[str] = None
|
|
|
|
|
|
class AgentConfigUpdate(BaseModel):
|
|
enabled: Optional[bool] = None
|
|
schedule_config: Optional[dict] = None
|
|
custom_config: Optional[dict] = None
|
|
|
|
|
|
class PriceAlertConfig(BaseModel):
|
|
symbol: str
|
|
name: str
|
|
target_price: float
|
|
direction: str # "above" or "below"
|
|
|
|
|
|
class ComposeCommand(BaseModel):
|
|
prompt: str
|
|
style: Optional[str] = None
|
|
model: Optional[str] = "V4"
|
|
instrumental: Optional[bool] = False
|