| from dataclasses import dataclass, field | |
| from typing import List, Optional, Dict, Any | |
| class ExplainerScaffold: | |
| concept: Optional[str] = None | |
| ask: Optional[str] = None | |
| givens: List[str] = field(default_factory=list) | |
| target: Optional[str] = None | |
| setup_actions: List[str] = field(default_factory=list) | |
| intermediate_steps: List[str] = field(default_factory=list) | |
| first_move: Optional[str] = None | |
| next_hint: Optional[str] = None | |
| common_traps: List[str] = field(default_factory=list) | |
| variables_to_define: List[str] = field(default_factory=list) | |
| equations_to_form: List[str] = field(default_factory=list) | |
| answer_hidden: bool = True | |
| class ExplainerResult: | |
| understood: bool = False | |
| topic: Optional[str] = None | |
| summary: Optional[str] = None | |
| teaching_points: List[str] = field(default_factory=list) | |
| scaffold: ExplainerScaffold = field(default_factory=ExplainerScaffold) | |
| meta: Dict[str, Any] = field(default_factory=dict) |