"""Pydantic schemas for mock MVP outputs.""" from __future__ import annotations from datetime import datetime from typing import Any from pydantic import BaseModel, Field class ObjectInfo(BaseModel): name: str visible_features: list[str] = Field(default_factory=list) likely_context: str confidence: float = Field(ge=0, le=1) class ObjectUnderstanding(BaseModel): object: ObjectInfo class Persona(BaseModel): object_name: str character_name: str mood: str secret_fear: str core_memory: str complaint: str tags: list[str] = Field(min_length=3, max_length=3) class PersonaEnvelope(BaseModel): persona: Persona class DiaryEntry(BaseModel): title: str english: str chinese: str class TraceRecord(BaseModel): trace_id: str created_at: datetime mode: str input: dict[str, Any] object_understanding: ObjectUnderstanding persona: PersonaEnvelope diary: DiaryEntry model_runtime: dict[str, str] fallbacks: list[str] = Field(default_factory=list) class GenerationResult(BaseModel): object_understanding: ObjectUnderstanding persona: PersonaEnvelope diary: DiaryEntry trace: TraceRecord trace_path: str