# matrx_ai.processing.blocks.models — Module Overview


## IMPORTANT: Do not edit auto-generated sections.

> This document is partially auto-generated. Sections tagged `<!-- AUTO:id -->` are refreshed by the generator.
> Everything else is yours to edit freely and will never be overwritten.

<!-- AUTO:meta -->
## About This Document

This file is **partially auto-generated**. Sections wrapped in `<!-- AUTO:id -->` tags
are overwritten each time the generator runs. Everything else is yours to edit freely.

| Field | Value |
|-------|-------|
| Module | `matrx_ai/processing/blocks/models` |
| Last generated | 2026-04-07 11:38 |
| Output file | `matrx_ai/processing/blocks/models/MODULE_README.md` |
| Signature mode | `signatures` |

**To refresh auto-sections:**
```bash
python utils/code_context/generate_module_readme.py matrx_ai/processing/blocks/models --mode signatures
```

**To add permanent notes:** Write anywhere outside the `<!-- AUTO:... -->` blocks.
<!-- /AUTO:meta -->

<!-- HUMAN-EDITABLE: This section is yours. Agents & Humans can edit this section freely — it will not be overwritten. -->

## Architecture

> **Fill this in.** Describe the execution flow and layer map for this module.
> See `utils/code_context/MODULE_README_SPEC.md` for the recommended format.
>
> Suggested structure:
>
> ### Layers
> | File | Role |
> |------|------|
> | `entry.py` | Public entry point — receives requests, returns results |
> | `engine.py` | Core dispatch logic |
> | `models.py` | Shared data types |
>
> ### Call Flow (happy path)
> ```
> entry_function() → engine.dispatch() → implementation()
> ```


<!-- AUTO:tree -->
## Directory Tree

> Auto-generated. 26 files across 1 directories.

```
matrx_ai/processing/blocks/models/
├── MODULE_README.md
├── __init__.py
├── artifact.py
├── base.py
├── comparison.py
├── decision.py
├── decision_tree.py
├── diagram.py
├── flashcards.py
├── math_problem.py
├── media.py
├── presentation.py
├── progress.py
├── questionnaire.py
├── quiz.py
├── recipe.py
├── research.py
├── resources.py
├── table.py
├── tasks.py
├── text.py
├── thinking.py
├── timeline.py
├── transcript.py
├── troubleshooting.py
# excluded: 1 .md
```
<!-- /AUTO:tree -->

<!-- AUTO:signatures -->
## API Signatures

> Auto-generated via `output_mode="signatures"`. ~5-10% token cost vs full source.
> For full source, open the individual files directly.

```
---
Filepath: matrx_ai/processing/blocks/models/quiz.py  [python]

  class QuizQuestion(BaseModel):
      # fields: id: int, question: str, options: list[str], correct_answer: int, explanation: str
  class QuizBlockData(BaseModel):
      # fields: quiz_title: str, category: str | None = None, multiple_choice: list[QuizQuestion]


---
Filepath: matrx_ai/processing/blocks/models/media.py  [python]

  class ImageBlockData(BaseModel):
      # fields: src: str, alt: str = ''
  class VideoBlockData(BaseModel):
      # fields: src: str, alt: str = ''


---
Filepath: matrx_ai/processing/blocks/models/timeline.py  [python]

  class TimelineEvent(BaseModel):
      # fields: id: str, title: str, date: str = 'TBD', description: str = '', status: Literal['completed', 'in-progress', 'pending'] | None = None, category: str | None = None
  class TimelinePeriod(BaseModel):
      # fields: period: str, events: list[TimelineEvent] = list()
  class TimelineBlockData(BaseModel):
      # fields: title: str = 'Timeline', description: str | None = None, periods: list[TimelinePeriod] = list()


---
Filepath: matrx_ai/processing/blocks/models/tasks.py  [python]

  class TaskItem(BaseModel):
      # fields: id: str, title: str, type: Literal['section', 'task', 'subtask'], bold: bool = False, checked: bool = False, children: list[TaskItem] = []
  class TasksBlockData(BaseModel):
      # fields: items: list[TaskItem]


---
Filepath: matrx_ai/processing/blocks/models/diagram.py  [python]

  class Position(BaseModel):
      # fields: x: float, y: float
  class DiagramNode(BaseModel):
      # fields: id: str, label: str, type: str | None = None, node_type: str = 'default', description: str | None = None, details: str | None = None, position: Position | None = None
  class DiagramEdge(BaseModel):
      # fields: id: str, source: str, target: str, label: str | None = None, type: str = 'default', color: str | None = None, dashed: bool = False, stroke_width: float = 2
  class DiagramLayout(BaseModel):
      # fields: direction: Literal['TB', 'LR', 'BT', 'RL'] = 'TB', spacing: float = 100
  class DiagramBlockData(BaseModel):
      # fields: title: str, description: str | None = None, type: Literal['flowchart', 'mindmap', 'orgchart', 'network', 'system', 'process'] = 'flowchart', nodes: list[DiagramNode] = [], edges: list[DiagramEdge] = [], layout: DiagramLayout = DiagramLayout()


---
Filepath: matrx_ai/processing/blocks/models/artifact.py  [python]

  class ArtifactBlockData(BaseModel):
      # fields: artifact_id: str, artifact_index: int, artifact_type: str, title: str, content: str


---
Filepath: matrx_ai/processing/blocks/models/transcript.py  [python]

  class TranscriptSegment(BaseModel):
      # fields: id: str, timecode: str, seconds: float, text: str, speaker: str | None = None
  class TranscriptBlockData(BaseModel):
      # fields: segments: list[TranscriptSegment]


---
Filepath: matrx_ai/processing/blocks/models/research.py  [python]

  class ResearchFinding(BaseModel):
      # fields: id: str, title: str, primary_source: str = '', additional_sources: list[str] = list(), urls: list[str] = list(), key_details: str = '', significance: str = '', future_implications: str = '', confidence_level: Literal['HIGH', 'MEDIUM', 'LOW'] = 'MEDIUM'
  class ResearchSection(BaseModel):
      # fields: id: str, title: str, subtitle: str | None = None, findings: list[ResearchFinding] = list()
  class ConvergentTheme(BaseModel):
      # fields: theme: str, description: str
  class ResearchChallenge(BaseModel):
      # fields: id: str, title: str, description: str, current_solutions: str | None = None, research_gaps: str | None = None, category: Literal['technical', 'ethical', 'regulatory', 'other'] = 'other'
  class ResearchRecommendation(BaseModel):
      # fields: id: str, recommendation: str, target: Literal['researchers', 'industry', 'policymakers', 'general'] = 'general'
  class ResearchMetadata(BaseModel):
      # fields: research_date: str | None = None, last_updated: str | None = None, confidence_rating: str | None = None, bias_assessment: str | None = None
  class ResearchBlockData(BaseModel):
      # fields: title: str, overview: str = '', introduction: str = '', conclusion: str = '', executive_summary: str | None = None, research_scope: str | None = None, key_focus_areas: str | None = None, analysis_period: str | None = None, research_questions: list[str] = list(), sections: list[ResearchSection] = list(), convergent_themes: list[ConvergentTheme] = list(), short_term_outlook: list[str] = list(), medium_term_outlook: list[str] = list(), long_term_vision: list[str] = list(), challenges: list[ResearchChallenge] = list(), recommendations: list[ResearchRecommendation] = list(), key_takeaways: list[str] = list(), limitations: list[str] = list(), metadata: ResearchMetadata = ResearchMetadata()


---
Filepath: matrx_ai/processing/blocks/models/questionnaire.py  [python]

  class QuestionnaireSection(BaseModel):
      # fields: title: str = '', content: str = '', items: list[dict[str, Any]] = [], tables: list[dict[str, Any]] = [], code_blocks: list[dict[str, Any]] = [], json_blocks: list[dict[str, Any]] = []
  class QuestionnaireBlockData(BaseModel):
      # fields: sections: list[QuestionnaireSection] = [], raw_content: str = ''


---
Filepath: matrx_ai/processing/blocks/models/flashcards.py  [python]

  class FlashcardItem(BaseModel):
      # fields: front: str, back: str | None = None
  class FlashcardsBlockData(BaseModel):
      # fields: cards: list[FlashcardItem], is_complete: bool = False


---
Filepath: matrx_ai/processing/blocks/models/__init__.py  [python]



---
Filepath: matrx_ai/processing/blocks/models/math_problem.py  [python]

  class MathProblemStatement(BaseModel):
      # fields: text: str = '', equation: str = '', instruction: str = ''
  class MathSolutionStep(BaseModel):
      # fields: title: str = '', equation: str = '', explanation: str | None = None, simplified: str | None = None
  class MathSolution(BaseModel):
      # fields: task: str = '', transition_text: str | None = None, solution_answer: str = '', steps: list[MathSolutionStep] = list()
  class MathProblemInner(BaseModel):
      # fields: title: str = '', course_name: str = '', topic_name: str = '', module_name: str = '', description: str | None = None, intro_text: str | None = None, final_statement: str | None = None, problem_statement: MathProblemStatement = MathProblemStatement(), solutions: list[MathSolution] = list()
  class MathProblemBlockData(BaseModel):
      # fields: math_problem: MathProblemInner


---
Filepath: matrx_ai/processing/blocks/models/decision.py  [python]

  class DecisionOption(BaseModel):
      # fields: id: str, label: str, text: str
  class DecisionBlockData(BaseModel):
      # fields: id: str, prompt: str, options: list[DecisionOption]


---
Filepath: matrx_ai/processing/blocks/models/comparison.py  [python]

  class ComparisonCriterion(BaseModel):
      # fields: name: str, values: list[Any], type: Literal['cost', 'rating', 'text', 'boolean'] = 'text', weight: float | None = None, higher_is_better: bool | None = None
  class ComparisonBlockData(BaseModel):
      # fields: title: str, description: str | None = None, items: list[str], criteria: list[ComparisonCriterion] = []


---
Filepath: matrx_ai/processing/blocks/models/thinking.py  [python]

  class ThinkingBlockData(BaseModel):
  class ReasoningBlockData(BaseModel):
  class ConsolidatedReasoningBlockData(BaseModel):
      # fields: reasoning_texts: list[str]


---
Filepath: matrx_ai/processing/blocks/models/presentation.py  [python]

  class SlideTheme(BaseModel):
      # fields: primary_color: str = '#2563eb', secondary_color: str = '#1e40af', accent_color: str = '#60a5fa', background_color: str = '#ffffff', text_color: str = '#1f2937'
  class Slide(BaseModel):
      # fields: type: str = 'content', title: str | None = None, subtitle: str | None = None, description: str | None = None, bullets: list[str] = list(), notes: str | None = None, image_url: str | None = None, quote: str | None = None, author: str | None = None, layout: str | None = None, extra: dict[str, Any] = dict()
  class PresentationBlockData(BaseModel):
      # fields: title: str | None = None, slides: list[Slide] = list(), theme: SlideTheme = SlideTheme()


---
Filepath: matrx_ai/processing/blocks/models/troubleshooting.py  [python]

  class TroubleshootingLink(BaseModel):
      # fields: title: str, url: str
  class TroubleshootingStep(BaseModel):
      # fields: id: str, title: str, description: str, commands: list[str] = list(), difficulty: Literal['easy', 'medium', 'hard'] | None = None, estimated_time: str | None = None, links: list[TroubleshootingLink] = list()
  class TroubleshootingSolution(BaseModel):
      # fields: id: str, title: str, description: str | None = None, priority: Literal['low', 'medium', 'high'] | None = None, success_rate: int | None = None, tags: list[str] = list(), steps: list[TroubleshootingStep] = list()
  class TroubleshootingIssue(BaseModel):
      # fields: id: str, symptom: str, description: str | None = None, severity: Literal['low', 'medium', 'high', 'critical'] | None = None, causes: list[str] = list(), related_issues: list[str] = list(), solutions: list[TroubleshootingSolution] = list()
  class TroubleshootingBlockData(BaseModel):
      # fields: title: str, description: str | None = None, issues: list[TroubleshootingIssue] = list()


---
Filepath: matrx_ai/processing/blocks/models/decision_tree.py  [python]

  class DecisionNode(BaseModel):
      # fields: id: str, question: str | None = None, action: str | None = None, type: str = 'decision', yes: DecisionNode | None = None, no: DecisionNode | None = None, priority: str | None = None, category: str | None = None, estimated_time: str | None = None
  class DecisionTreeBlockData(BaseModel):
      # fields: title: str, description: str | None = None, root: DecisionNode


---
Filepath: matrx_ai/processing/blocks/models/text.py  [python]

  class TextBlockData(BaseModel):
  class CodeBlockData(BaseModel):
      # fields: language: str = '', code: str = '', is_diff: bool = False
  class DiffBlockData(BaseModel):
      # fields: language: str = 'diff', style: str = 'unified', code: str = ''


---
Filepath: matrx_ai/processing/blocks/models/resources.py  [python]

  class ResourceItem(BaseModel):
      # fields: id: str, title: str, url: str = '', description: str = '', type: str = 'article', duration: str | None = None, difficulty: Literal['beginner', 'intermediate', 'advanced'] | None = None, rating: float | None = None, tags: list[str] = []
  class ResourceCategory(BaseModel):
      # fields: name: str, items: list[ResourceItem] = []
  class ResourcesBlockData(BaseModel):
      # fields: title: str, description: str | None = None, categories: list[ResourceCategory] = []


---
Filepath: matrx_ai/processing/blocks/models/table.py  [python]

  class TableBlockData(BaseModel):
      # fields: headers: list[str], rows: list[list[str]], is_complete: bool = False, raw_markdown: str = ''


---
Filepath: matrx_ai/processing/blocks/models/progress.py  [python]

  class ProgressItem(BaseModel):
      # fields: id: str, text: str, completed: bool = False, priority: Literal['high', 'medium', 'low'] | None = None, estimated_hours: float | None = None, optional: bool = False, category: str | None = None
  class ProgressCategory(BaseModel):
      # fields: id: str, name: str, description: str | None = None, color: str | None = None, completion_percentage: float = 0.0, items: list[ProgressItem] = list()
  class ProgressTrackerBlockData(BaseModel):
      # fields: title: str, description: str | None = None, overall_progress: float = 0.0, total_items: int = 0, completed_items: int = 0, categories: list[ProgressCategory] = list()


---
Filepath: matrx_ai/processing/blocks/models/recipe.py  [python]

  class Ingredient(BaseModel):
      # fields: amount: str = '', item: str
  class RecipeStep(BaseModel):
      # fields: action: str, description: str, time: str | None = None
  class RecipeBlockData(BaseModel):
      # fields: title: str = 'Recipe', yields: str = 'Serves 4', total_time: str = '30 minutes', prep_time: str = '15 minutes', cook_time: str = '15 minutes', ingredients: list[Ingredient] = [], instructions: list[RecipeStep] = [], notes: str | None = None


Filepath: matrx_ai/processing/blocks/models/base.py  [python]

  class BlockStatus(str, Enum):
  class StreamingBehavior(str, Enum):
  class BlockType(str, Enum):
  class ContentBlockEvent(BaseModel):
      # fields: block_id: str, block_index: int, type: str, status: BlockStatus, content: str | None = None, data: dict[str, Any] | None = None, metadata: dict[str, Any] = dict()
      def to_stream_event(self) -> dict[str, Any]
  class ContentBlock(BaseModel):
      # fields: block_id: str, block_index: int, type: str, status: BlockStatus = BlockStatus.STREAMING, content: str = '', data: dict[str, Any] | None = None, metadata: dict[str, Any] = dict(), raw_content: str = ''
      def to_event(self) -> ContentBlockEvent
```
<!-- /AUTO:signatures -->

<!-- AUTO:callers -->
## Upstream Callers

> Auto-discovered by scanning all project files that import from this module.
> Set `ENTRY_POINTS` in `generate_readme.py` to pin specific functions.

| Caller | Calls |
|--------|-------|
| `matrx_ai/processing/blocks/parsers/artifact_parser.py` | `ArtifactBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `BlockStatus()` |
| `matrx_ai/processing/blocks/stream_processor.py` | `BlockStatus()` |
| `matrx_ai/processing/blocks/tests/test_stream_processor.py` | `BlockStatus()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `BlockType()` |
| `matrx_ai/processing/blocks/stream_processor.py` | `BlockType()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `CodeBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ComparisonBlockData()` |
| `matrx_ai/processing/blocks/parsers/comparison_parser.py` | `ComparisonBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ComparisonCriterion()` |
| `matrx_ai/processing/blocks/parsers/comparison_parser.py` | `ComparisonCriterion()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ConsolidatedReasoningBlockData()` |
| `matrx_ai/processing/blocks/stream_processor.py` | `ContentBlock()` |
| `matrx_ai/processing/blocks/stream_processor.py` | `ContentBlockEvent()` |
| `matrx_ai/processing/blocks/parsers/research_parser.py` | `ConvergentTheme()` |
| `matrx_ai/processing/blocks/parsers/decision_parser.py` | `DecisionBlockData()` |
| `matrx_ai/processing/blocks/stream_processor.py` | `DecisionBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `DecisionNode()` |
| `matrx_ai/processing/blocks/parsers/decision_tree_parser.py` | `DecisionNode()` |
| `matrx_ai/processing/blocks/parsers/decision_parser.py` | `DecisionOption()` |
| `matrx_ai/processing/blocks/stream_processor.py` | `DecisionOption()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `DecisionTreeBlockData()` |
| `matrx_ai/processing/blocks/parsers/decision_tree_parser.py` | `DecisionTreeBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `DiagramBlockData()` |
| `matrx_ai/processing/blocks/parsers/diagram_parser.py` | `DiagramBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `DiagramEdge()` |
| `matrx_ai/processing/blocks/parsers/diagram_parser.py` | `DiagramEdge()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `DiagramLayout()` |
| `matrx_ai/processing/blocks/parsers/diagram_parser.py` | `DiagramLayout()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `DiagramNode()` |
| `matrx_ai/processing/blocks/parsers/diagram_parser.py` | `DiagramNode()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `DiffBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `FlashcardItem()` |
| `matrx_ai/processing/blocks/parsers/flashcard_parser.py` | `FlashcardItem()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `FlashcardsBlockData()` |
| `matrx_ai/processing/blocks/parsers/flashcard_parser.py` | `FlashcardsBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ImageBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `Ingredient()` |
| `matrx_ai/processing/blocks/parsers/recipe_parser.py` | `Ingredient()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `MathProblemBlockData()` |
| `matrx_ai/processing/blocks/parsers/math_problem_parser.py` | `MathProblemBlockData()` |
| `matrx_ai/processing/blocks/parsers/math_problem_parser.py` | `MathProblemInner()` |
| `matrx_ai/processing/blocks/parsers/math_problem_parser.py` | `MathProblemStatement()` |
| `matrx_ai/processing/blocks/parsers/math_problem_parser.py` | `MathSolution()` |
| `matrx_ai/processing/blocks/parsers/math_problem_parser.py` | `MathSolutionStep()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `Position()` |
| `matrx_ai/processing/blocks/parsers/diagram_parser.py` | `Position()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `PresentationBlockData()` |
| `matrx_ai/processing/blocks/parsers/presentation_parser.py` | `PresentationBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ProgressCategory()` |
| `matrx_ai/processing/blocks/parsers/progress_parser.py` | `ProgressCategory()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ProgressItem()` |
| `matrx_ai/processing/blocks/parsers/progress_parser.py` | `ProgressItem()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ProgressTrackerBlockData()` |
| `matrx_ai/processing/blocks/parsers/progress_parser.py` | `ProgressTrackerBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `QuestionnaireBlockData()` |
| `matrx_ai/processing/blocks/parsers/questionnaire_parser.py` | `QuestionnaireBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `QuestionnaireSection()` |
| `matrx_ai/processing/blocks/parsers/questionnaire_parser.py` | `QuestionnaireSection()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `QuizBlockData()` |
| `matrx_ai/processing/blocks/parsers/quiz_parser.py` | `QuizBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `QuizQuestion()` |
| `matrx_ai/processing/blocks/parsers/quiz_parser.py` | `QuizQuestion()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ReasoningBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `RecipeBlockData()` |
| `matrx_ai/processing/blocks/parsers/recipe_parser.py` | `RecipeBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `RecipeStep()` |
| `matrx_ai/processing/blocks/parsers/recipe_parser.py` | `RecipeStep()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ResearchBlockData()` |
| `matrx_ai/processing/blocks/parsers/research_parser.py` | `ResearchBlockData()` |
| `matrx_ai/processing/blocks/parsers/research_parser.py` | `ResearchChallenge()` |
| `matrx_ai/processing/blocks/parsers/research_parser.py` | `ResearchFinding()` |
| `matrx_ai/processing/blocks/parsers/research_parser.py` | `ResearchMetadata()` |
| `matrx_ai/processing/blocks/parsers/research_parser.py` | `ResearchRecommendation()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ResearchSection()` |
| `matrx_ai/processing/blocks/parsers/research_parser.py` | `ResearchSection()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ResourceCategory()` |
| `matrx_ai/processing/blocks/parsers/resources_parser.py` | `ResourceCategory()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ResourceItem()` |
| `matrx_ai/processing/blocks/parsers/resources_parser.py` | `ResourceItem()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ResourcesBlockData()` |
| `matrx_ai/processing/blocks/parsers/resources_parser.py` | `ResourcesBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `Slide()` |
| `matrx_ai/processing/blocks/parsers/presentation_parser.py` | `Slide()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `SlideTheme()` |
| `matrx_ai/processing/blocks/parsers/presentation_parser.py` | `SlideTheme()` |
| `matrx_ai/processing/blocks/block_registry.py` | `StreamingBehavior()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `StreamingBehavior()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TableBlockData()` |
| `matrx_ai/processing/blocks/parsers/table_parser.py` | `TableBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TaskItem()` |
| `matrx_ai/processing/blocks/parsers/task_parser.py` | `TaskItem()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TasksBlockData()` |
| `matrx_ai/processing/blocks/parsers/task_parser.py` | `TasksBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TextBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `ThinkingBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TimelineBlockData()` |
| `matrx_ai/processing/blocks/parsers/timeline_parser.py` | `TimelineBlockData()` |
| `matrx_ai/processing/blocks/parsers/timeline_stream_parser.py` | `TimelineBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TimelineEvent()` |
| `matrx_ai/processing/blocks/parsers/timeline_parser.py` | `TimelineEvent()` |
| `matrx_ai/processing/blocks/parsers/timeline_stream_parser.py` | `TimelineEvent()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TimelinePeriod()` |
| `matrx_ai/processing/blocks/parsers/timeline_parser.py` | `TimelinePeriod()` |
| `matrx_ai/processing/blocks/parsers/timeline_stream_parser.py` | `TimelinePeriod()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TranscriptBlockData()` |
| `matrx_ai/processing/blocks/parsers/transcript_parser.py` | `TranscriptBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TranscriptSegment()` |
| `matrx_ai/processing/blocks/parsers/transcript_parser.py` | `TranscriptSegment()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TroubleshootingBlockData()` |
| `matrx_ai/processing/blocks/parsers/troubleshooting_parser.py` | `TroubleshootingBlockData()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TroubleshootingIssue()` |
| `matrx_ai/processing/blocks/parsers/troubleshooting_parser.py` | `TroubleshootingIssue()` |
| `matrx_ai/processing/blocks/parsers/troubleshooting_parser.py` | `TroubleshootingLink()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TroubleshootingSolution()` |
| `matrx_ai/processing/blocks/parsers/troubleshooting_parser.py` | `TroubleshootingSolution()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `TroubleshootingStep()` |
| `matrx_ai/processing/blocks/parsers/troubleshooting_parser.py` | `TroubleshootingStep()` |
| `matrx_ai/processing/blocks/generate_ts_types.py` | `VideoBlockData()` |
<!-- /AUTO:callers -->

<!-- AUTO:dependencies -->
## Dependencies

**External packages:** pydantic
<!-- /AUTO:dependencies -->

<!-- AUTO:config -->
## Generation Config

> Auto-managed. Contains the exact parameters used to generate this README.
> Used by parent modules to auto-refresh this file when it is stale.
> Do not edit manually — changes will be overwritten on the next run.

```json
{
  "subdirectory": "matrx_ai/processing/blocks/models",
  "mode": "signatures",
  "scope": null,
  "project_noise": null,
  "include_call_graph": false,
  "entry_points": null,
  "call_graph_exclude": [
    "tests"
  ],
  "signatures_exclude": [
    "tests",
    "db",
    "local_data",
    "docs"
  ]
}
```
<!-- /AUTO:config -->
