79 lines
1.7 KiB
Python
79 lines
1.7 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import Optional, List, Literal
|
|
|
|
|
|
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
|
|
|
|
|
|
class TarotCardDraw(BaseModel):
|
|
position: str
|
|
card_id: str
|
|
reversed: bool = False
|
|
|
|
|
|
class TarotInterpretRequest(BaseModel):
|
|
spread_type: Literal["one_card", "three_card"]
|
|
category: Optional[str] = None
|
|
question: Optional[str] = None
|
|
cards: List[TarotCardDraw]
|
|
cards_reference: str = Field(..., min_length=1)
|
|
context_meta: dict = Field(default_factory=dict)
|
|
|
|
|
|
class TarotInterpretResponse(BaseModel):
|
|
interpretation_json: dict
|
|
model: str
|
|
tokens_in: int
|
|
tokens_out: int
|
|
cost_usd: float
|
|
latency_ms: int
|
|
reroll_count: int = 0
|
|
|
|
|
|
class TarotSaveRequest(BaseModel):
|
|
spread_type: Literal["one_card", "three_card"]
|
|
category: Optional[str] = None
|
|
question: Optional[str] = None
|
|
cards: List[TarotCardDraw]
|
|
interpretation_json: dict
|
|
model: str
|
|
tokens_in: int
|
|
tokens_out: int
|
|
cost_usd: float
|
|
confidence: Optional[str] = None
|
|
|
|
|
|
class TarotPatchRequest(BaseModel):
|
|
favorite: Optional[bool] = None
|
|
note: Optional[str] = None
|