from __future__ import annotations from dataclasses import dataclass from typing import Any, Dict, List, Optional @dataclass(frozen=True) class RunSummary: run_id: str mode: str status: str created_at: str ended_at: str title: Optional[str] = None input_summary: Optional[str] = None @dataclass(frozen=True) class RunRecord: run_id: str mode: str status: str created_at: str ended_at: str sealed_at: str config: Dict[str, Any] messages: List[Dict[str, Any]] analyses: Dict[str, Dict[str, Any]] persona_snapshots: Dict[str, Dict[str, Any]] title: Optional[str] = None input_summary: Optional[str] = None @dataclass(frozen=True) class PersonaSummary: persona_id: str kind: str name: str is_default: bool = False is_deleted: bool = False @dataclass(frozen=True) class PersonaRecord: persona_id: str kind: str name: str is_default: bool is_deleted: bool current_version_id: str created_at: str updated_at: str attributes: List[str] question_bank_items: List[str] @dataclass(frozen=True) class AnalysisTemplateSummary: template_id: str name: str is_default: bool = False is_deleted: bool = False @dataclass(frozen=True) class AnalysisTemplateRecord: template_id: str name: str is_default: bool is_deleted: bool current_version_id: str created_at: str updated_at: str bottom_up_instructions: str bottom_up_attributes: List[str] rubric_instructions: str rubric_attributes: List[str] top_down_instructions: str top_down_attributes: List[str] categories: List[Dict[str, str]]