# `ai` — Module Overview

> 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` |
| Last generated | 2026-04-07 11:38 |
| Output file | `matrx_ai/MODULE_README.md` |
| Signature mode | `signatures` |


**Child READMEs detected** (signatures collapsed — see links for detail):

| README | |
|--------|---|
| [`matrx_ai/agent_runners/MODULE_README.md`](matrx_ai/agent_runners/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/instructions/MODULE_README.md`](matrx_ai/instructions/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/orchestrator/MODULE_README.md`](matrx_ai/orchestrator/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/tests/MODULE_README.md`](matrx_ai/tests/MODULE_README.md) | last generated 2026-04-07 11:38 |
| [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md) | last generated 2026-04-07 11:38 |
**To refresh auto-sections:**
```bash
python utils/code_context/generate_module_readme.py matrx_ai --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. 297 files across 46 directories.

```
matrx_ai/
├── MODULE_README.md
├── __init__.py
├── _ext.py
├── agent_runners/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── conversation_labeler.py
│   ├── podcast_generator.py
│   ├── research.py
│   ├── tests/
├── agents/
│   ├── DEPRECATED_prompts_manager.py
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── cache.py
│   ├── definition.py
│   ├── resolver.py
│   ├── response_parser.py
│   ├── services/
│   │   ├── batch_categorize.py
│   │   ├── conversation_labeler.py
│   │   ├── prompt_categorizer.py
│   ├── tests/
│   │   ├── new_agent_test.py
│   │   ├── test_categorization.py
│   ├── types.py
│   ├── variables.py
├── concepts/
│   ├── agent_context.py
├── config/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── agent-definition-types.ts
│   ├── ai-api-types.ts
│   ├── config_utils.py
│   ├── enums.py
│   ├── extra_config.py
│   ├── finish_reason.py
│   ├── llm_params.py
│   ├── media_config.py
│   ├── message-types.ts
│   ├── message_config.py
│   ├── structured_input_config.py
│   ├── structured_input_resolver.py
│   ├── thinking_config.py
│   ├── tools_config.py
│   ├── tts_config.py
│   ├── unified_config.py
│   ├── unified_content.py
│   ├── usage_config.py
├── context/
│   ├── __init__.py
│   ├── app_context.py
│   ├── emitter_protocol.py
│   ├── events.py
├── context_engine.py
├── db/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── _registry.py
│   ├── agx_manager.py
│   ├── ai_models/
│   │   ├── __init__.py
│   │   ├── ai_model_base.py
│   │   ├── ai_model_dto.py
│   │   ├── ai_model_manager.py
│   │   ├── ai_model_validator.py
│   │   ├── duplicate_models.py
│   │   ├── tests.py
│   ├── content_types/
│   │   ├── data_ref.py
│   │   ├── data_ref_utils.ts
│   │   ├── notes.py
│   │   ├── patch_utils.py
│   │   ├── tasks.py
│   │   ├── tests.py
│   │   ├── picklists.py
│   │   ├── datasets.py
│   ├── conversation_gate.py
│   ├── conversation_rebuild.py
│   ├── cx_managers.py
│   ├── guest_registry.py
│   ├── persistence.py
│   ├── tests/
│   │   ├── agx_tests.py
│   │   ├── db_tests.py
├── instructions/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── content_blocks_manager.py
│   ├── core.py
│   ├── matrx_fetcher.py
│   ├── pattern_parser.py
│   ├── tests/
│   │   ├── __init__.py
│   │   ├── direct_fetch_test.py
│   │   ├── instruction_builder_test.py
│   │   ├── integration_test.py
│   │   ├── simple_variable_example.py
│   │   ├── user_table_data_test.py
│   │   ├── variable_recognition_test.py
├── local_data/
│   ├── __init__.py
│   ├── models_data.py
│   ├── paths.py
├── orchestrator/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── concurrent_engine.py
│   ├── executor.py
│   ├── parallel_executor.py
│   ├── recovery_logic.py
│   ├── requests.py
│   ├── tracking.py
├── processing/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── audio/
│   │   ├── __init__.py
│   │   ├── audio_preprocessing.py
│   │   ├── audio_support.py
│   │   ├── groq_transcription.py
│   │   ├── transcription_cache.py
│   ├── blocks/
│   │   ├── __init__.py
│   │   ├── block_detector.py
│   │   ├── block_registry.py
│   │   ├── generate_ts_types.py
│   │   ├── models/
│   │   │   ├── __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
│   │   ├── parsers/
│   │   │   ├── __init__.py
│   │   │   ├── artifact_parser.py
│   │   │   ├── comparison_parser.py
│   │   │   ├── decision_parser.py
│   │   │   ├── decision_tree_parser.py
│   │   │   ├── diagram_parser.py
│   │   │   ├── diff_parser.py
│   │   │   ├── flashcard_parser.py
│   │   │   ├── math_problem_parser.py
│   │   │   ├── presentation_parser.py
│   │   │   ├── progress_parser.py
│   │   │   ├── questionnaire_parser.py
│   │   │   ├── quiz_parser.py
│   │   │   ├── recipe_parser.py
│   │   │   ├── research_parser.py
│   │   │   ├── resources_parser.py
│   │   │   ├── table_parser.py
│   │   │   ├── task_parser.py
│   │   │   ├── timeline_parser.py
│   │   │   ├── timeline_stream_parser.py
│   │   │   ├── transcript_parser.py
│   │   │   ├── troubleshooting_parser.py
│   │   ├── stream_processor.py
│   │   ├── tag_detection_buffer.py
│   │   ├── tests/
│   │   │   ├── __init__.py
│   │   │   ├── block_tester.py
│   │   │   ├── stream_debug.py
│   │   │   ├── test_block_detector.py
│   │   │   ├── test_parsers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── test_flashcard_parser.py
│   │   │   │   ├── test_various_parsers.py
│   │   │   ├── test_results/
│   │   │   ├── test_stream_processor.py
│   │   │   ├── ts_bridge/
│   │   │   │   ├── parse_blocks.ts
├── providers/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── anthropic/
│   │   ├── __init__.py
│   │   ├── anthropic_api.py
│   │   ├── client.py
│   │   ├── translator.py
│   ├── base_translator.py
│   ├── cerebras/
│   │   ├── __init__.py
│   │   ├── cerebras_api.py
│   │   ├── client.py
│   │   ├── translator.py
│   ├── data_sync/
│   │   ├── __init__.py
│   │   ├── cerebras_model_sync.py
│   │   ├── google_model_sync.py
│   │   ├── groq_model_sync.py
│   │   ├── model_sync.py
│   │   ├── openai_model_sync.py
│   │   ├── together_model_sync.py
│   │   ├── xai_model_sync.py
│   ├── eleven_labs/
│   │   ├── __init__.py
│   │   ├── client.py
│   │   ├── direct_dialogue.py
│   │   ├── elevenlabs_api.py
│   │   ├── tts_streaming.py
│   ├── errors.py
│   ├── generic_openai/
│   │   ├── __init__.py
│   │   ├── generic_openai_api.py
│   │   ├── huggingface_api.py
│   │   ├── test_huggingface.py
│   │   ├── translator.py
│   ├── google/
│   │   ├── __init__.py
│   │   ├── google_api.py
│   │   ├── google_client.py
│   │   ├── google_video_api.py
│   │   ├── sample_podcast_direct.py
│   │   ├── translator.py
│   ├── groq/
│   │   ├── __init__.py
│   │   ├── client.py
│   │   ├── groq_api.py
│   │   ├── translator.py
│   ├── openai/
│   │   ├── __init__.py
│   │   ├── client.py
│   │   ├── openai_api.py
│   │   ├── translator.py
│   ├── together/
│   │   ├── __init__.py
│   │   ├── client.py
│   │   ├── together_api.py
│   │   ├── translator.py
│   ├── unified_client.py
│   ├── xai/
│   │   ├── __init__.py
│   │   ├── client.py
│   │   ├── translator.py
│   │   ├── xai_api.py
├── reports/
│   ├── cost_analysis.py
├── tests/
│   ├── MODULE_README.md
│   ├── execution_test.py
│   ├── groq_transcription_test.py
│   ├── openai/
│   │   ├── background_stream_async.py
│   │   ├── conversation_id_test.py
│   │   ├── openai_function_test.py
│   │   ├── openai_image_input.py
│   │   ├── openai_small_tests.py
│   │   ├── openai_translation_test.py
│   ├── prompts/
│   │   ├── agent_comparison.py
│   │   ├── prompt_to_config.py
│   │   ├── test_basic_prompts.py
│   ├── small_test.py
│   ├── test_cerebras_thinking_params.py
│   ├── test_error_handling.py
│   ├── test_llm_params_drift.py
│   ├── test_translations.py
├── tools/
│   ├── MODULE_README.md
│   ├── __init__.py
│   ├── agent_tool.py
│   ├── arg_models/
│   │   ├── __init__.py
│   │   ├── browser_args.py
│   │   ├── db_args.py
│   │   ├── fs_args.py
│   │   ├── math_args.py
│   │   ├── memory_args.py
│   │   ├── shell_args.py
│   │   ├── text_args.py
│   │   ├── web_args.py
│   ├── browser_sessions.py
│   ├── client_waiter.py
│   ├── executor.py
│   ├── external_handlers.py
│   ├── external_mcp.py
│   ├── guardrails.py
│   ├── handle_tool_calls.py
│   ├── implementations/
│   │   ├── __init__.py
│   │   ├── _summarize_helper.py
│   │   ├── browser.py
│   │   ├── code.py
│   │   ├── ctx.py
│   │   ├── database.py
│   │   ├── filesystem.py
│   │   ├── math.py
│   │   ├── memory.py
│   │   ├── news.py
│   │   ├── notes.py
│   │   ├── personal_tables.py
│   │   ├── questionnaire.py
│   │   ├── seo.py
│   │   ├── shell.py
│   │   ├── tasks.py
│   │   ├── text.py
│   │   ├── tool_component.py
│   │   ├── travel.py
│   │   ├── picklists.py
│   │   ├── datasets.py
│   │   ├── vsc.py
│   │   ├── web.py
│   ├── lifecycle.py
│   ├── logger.py
│   ├── models.py
│   ├── output_models/
│   │   ├── __init__.py
│   │   ├── seo.py
│   ├── registry.py
│   ├── streaming.py
│   ├── tests/
│   │   ├── mimic_model_tests.py
│   │   ├── register_toolcomp_tools.py
│   │   ├── test_seo_tools.py
│   │   ├── test_tool_component.py
│   │   ├── test_toolcomp_tools.py
│   ├── tools_db.py
├── utils/
│   ├── __init__.py
│   ├── cache.py
# excluded: 40 .md, 9 .json, 1 .txt, 1 .svg, 1 (no ext)
```
<!-- /AUTO:tree -->

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

> Auto-generated via `output_mode="{mode}"`. ~5-10% token cost vs full source.
> For full source, open the individual files directly.
> Submodules with their own `MODULE_README.md` are collapsed to a single stub line.

```
---
Filepath: matrx_ai/_ext.py  [python]

  class ExtNotConfiguredError(RuntimeError):
  def configure_ext(**kwargs: Any) -> None
  def is_configured() -> bool
  def get_ext(name: str) -> Any
  def has_ext(name: str) -> bool



---
Filepath: matrx_ai/__init__.py  [python]

  def configure(*, db_models: dict | None = None, db_bases: dict | None = None, db_instances: dict | None = None, db_extras: dict | None = None, **ext_kwargs) -> None
  def __getattr__(name: str)



---
Filepath: matrx_ai/context_engine.py  [python]

  class AgentContext:
      def __init__(self, scope: dict[str, Any], direct_variables: dict[str, Any], tool_variables: dict[str, Any], searchable_variables: dict[str, Any]) -> None
      def build_system_prompt_block(self) -> str
      def get_tool_variable(self, key: str) -> Any
      def get_all_tool_variables(self) -> dict[str, Any]
      def get_all_searchable_variables(self) -> dict[str, Any]
      def to_scope_dict(self) -> dict[str, str | None]
  def _get_async_supabase() -> Any
  async def build_agent_context(user_id: str, override_scope: dict[str, str | None] | None = None) -> 'AgentContext'



---
Submodule: matrx_ai/instructions/  [5 files — full detail in matrx_ai/instructions/MODULE_README.md]

---
Submodule: matrx_ai/tools/  [49 files — full detail in matrx_ai/tools/MODULE_README.md]

---
Submodule: matrx_ai/agent_runners/  [4 files — full detail in matrx_ai/agent_runners/MODULE_README.md]

---
Filepath: matrx_ai/context/emitter_protocol.py  [python]




---
Filepath: matrx_ai/context/events.py  [python]




---
Filepath: matrx_ai/context/__init__.py  [python]




---
Filepath: matrx_ai/context/app_context.py  [python]




---
Submodule: matrx_ai/config/  [19 files — full detail in matrx_ai/config/MODULE_README.md]

---
Submodule: matrx_ai/processing/  [60 files — full detail in matrx_ai/processing/MODULE_README.md]

---
Submodule: matrx_ai/providers/  [52 files — full detail in matrx_ai/providers/MODULE_README.md]

---
Submodule: matrx_ai/agents/  [11 files — full detail in matrx_ai/agents/MODULE_README.md]

---
Filepath: matrx_ai/utils/cache.py  [python]

  class TTLCache:
      def __init__(self, ttl_seconds: int = 1800, max_size: int = 200)
      def get(self, key: str) -> T | None
      def set(self, key: str, value: T) -> None
      def remove(self, key: str) -> None
      def exists(self, key: str) -> bool
      def clear(self) -> None
      def size(self) -> int
      def _is_expired(self, key: str) -> bool
      def _remove(self, key: str) -> None
      def _evict_expired(self) -> None



---
Filepath: matrx_ai/utils/__init__.py  [python]




---
Filepath: matrx_ai/concepts/agent_context.py  [python]

  class AgentContext:
      def __init__(self, scope: dict, direct_variables: dict, tool_variables: dict, searchable_variables: dict)
      def build_system_prompt_block(self) -> str
      def get_tool_variable(self, key: str) -> Any
      def get_all_tool_variables(self) -> dict
  async def build_agent_context(user_id: str, supabase: Any, override_scope: dict | None = None) -> AgentContext



---
Submodule: matrx_ai/orchestrator/  [7 files — full detail in matrx_ai/orchestrator/MODULE_README.md]

---
Filepath: matrx_ai/reports/cost_analysis.py  [python]

  class ConversationCostSummary:
      def print_summary(self, label: str = 'Conversation Cost Summary') -> None
      def to_dict(self) -> dict[str, Any]
```
<!-- /AUTO:signatures -->

<!-- AUTO:call_graph -->
## Call Graph

> Auto-generated. All Python files
> Covered submodules shown as stubs — see child READMEs for full detail: `agent_runners`, `agents`, `config`, `db`, `instructions`, `orchestrator`, `processing`, `providers`, `tests`, `tools`
> Excluded from call graph: `tests`.
> Shows which functions call which. `async` prefix = caller is an async function.
> Method calls shown as `receiver.method()`. Private methods (`_`) excluded by default.

### Call graph: matrx_ai._ext

```
matrx_ai._ext.configure_ext → _registry.update(kwargs) (line 42)
  matrx_ai._ext.get_ext → matrx_ai._ext.ExtNotConfiguredError(f"matrx-ai external dependency '{name}' not registered. Call matrx_ai.configure() before using this functionality.") (line 52)
```

### Call graph: matrx_ai.__init__

```
matrx_ai.__init__.configure → pathlib.Path(__file__) (line 73)
  matrx_ai.__init__.configure → ...spec_from_file_location('matrx_ai.db._registry', _reg_path) (line 74)
  matrx_ai.__init__.configure → ...module_from_spec(_spec) (line 75)
  matrx_ai.__init__.configure → ...exec_module(_reg_mod) (line 77)
  matrx_ai.__init__.configure → matrx_ai.__init__.configure_db() (line 85)
  matrx_ai.__init__.configure → matrx_ai.__init__.configure_ext() (line 92)
```

### Call graph: matrx_ai.context_engine

```
Global Scope → logging.getLogger(__name__) (line 21)
  matrx_ai.context_engine._get_async_supabase → matrx_ai.context_engine.get_ext('get_async_supabase_client') (line 26)
  matrx_ai.context_engine._get_async_supabase → matrx_ai.context_engine.get_async_supabase_client() (line 28)
  async matrx_ai.context_engine.build_agent_context → matrx_ai.context_engine._get_async_supabase() (line 48)
  async matrx_ai.context_engine.build_agent_context → execute() (line 51)
  async matrx_ai.context_engine.build_agent_context → supabase.rpc('resolve_context_variables', {'p_user_id': user_id, 'p_organization_id': override_scope.get('organization_id'), 'p_workspace_id': override_scope.get('workspace_id'), 'p_project_id': override_scope.get('project_id'), 'p_task_id': override_scope.get('task_id')}) (line 51)
  async matrx_ai.context_engine.build_agent_context → override_scope.get('organization_id') (line 55)
  async matrx_ai.context_engine.build_agent_context → override_scope.get('workspace_id') (line 56)
  async matrx_ai.context_engine.build_agent_context → override_scope.get('project_id') (line 57)
  async matrx_ai.context_engine.build_agent_context → override_scope.get('task_id') (line 58)
  async matrx_ai.context_engine.build_agent_context → execute() (line 62)
  async matrx_ai.context_engine.build_agent_context → supabase.rpc('resolve_active_context', {'p_user_id': user_id}) (line 62)
  async matrx_ai.context_engine.build_agent_context → resolved.get('variables', {}) (line 68)
  async matrx_ai.context_engine.build_agent_context → resolved.get('context', {}) (line 69)
  async matrx_ai.context_engine.build_agent_context → variables.items() (line 75)
  async matrx_ai.context_engine.build_agent_context → var_data.get('inject_as', 'direct') (line 76)
  async matrx_ai.context_engine.build_agent_context → matrx_ai.context_engine.AgentContext() (line 85)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('  <scope>') (line 130)
  matrx_ai.context_engine.build_system_prompt_block → ...get(key) (line 132)
  matrx_ai.context_engine.build_system_prompt_block → key.replace('_id', '') (line 134)
  matrx_ai.context_engine.build_system_prompt_block → lines.append(f'    {label}: {val}') (line 135)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('  </scope>') (line 136)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('  <variables>') (line 140)
  matrx_ai.context_engine.build_system_prompt_block → ...items() (line 141)
  matrx_ai.context_engine.build_system_prompt_block → var_data.get('value') (line 142)
  matrx_ai.context_engine.build_system_prompt_block → var_data.get('source', '') (line 143)
  matrx_ai.context_engine.build_system_prompt_block → json.dumps(value) (line 145)
  matrx_ai.context_engine.build_system_prompt_block → value.strip('"') (line 147)
  matrx_ai.context_engine.build_system_prompt_block → lines.append(f'    {key}: {value}  [{source}]') (line 148)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('  </variables>') (line 149)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('  <available_context>') (line 153)
  matrx_ai.context_engine.build_system_prompt_block → join(self.tool_variables.keys()) (line 155)
  matrx_ai.context_engine.build_system_prompt_block → ...keys() (line 155)
  matrx_ai.context_engine.build_system_prompt_block → lines.append(f'    Tool-accessible variables: {tool_keys}') (line 156)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('    Use get_context_variable(key) to access these.') (line 157)
  matrx_ai.context_engine.build_system_prompt_block → join(self.searchable_variables.keys()) (line 161)
  matrx_ai.context_engine.build_system_prompt_block → ...keys() (line 161)
  matrx_ai.context_engine.build_system_prompt_block → lines.append(f'    Searchable context: {search_keys}') (line 162)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('    Use search_context(query) to find relevant content.') (line 163)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('  </available_context>') (line 166)
  matrx_ai.context_engine.build_system_prompt_block → lines.append('</agent_context>') (line 168)
  matrx_ai.context_engine.build_system_prompt_block → join(lines) (line 169)
  matrx_ai.context_engine.get_tool_variable → ...get(key) (line 173)
  matrx_ai.context_engine.get_tool_variable → var.get('value') (line 175)
  matrx_ai.context_engine.get_all_tool_variables → v.get('value') (line 180)
  matrx_ai.context_engine.get_all_tool_variables → ...items() (line 180)
  matrx_ai.context_engine.get_all_searchable_variables → v.get('value') (line 184)
  matrx_ai.context_engine.get_all_searchable_variables → ...items() (line 184)
  matrx_ai.context_engine.to_scope_dict → ...get('organization_id') (line 189)
  matrx_ai.context_engine.to_scope_dict → ...get('workspace_id') (line 190)
  matrx_ai.context_engine.to_scope_dict → ...get('project_id') (line 191)
  matrx_ai.context_engine.to_scope_dict → ...get('task_id') (line 192)
```

### Call graph: matrx_ai.instructions.matrx_fetcher

> Full detail in [`matrx_ai/instructions/MODULE_README.md`](matrx_ai/instructions/MODULE_README.md)

```
`Global Scope → matrx_ai.instructions.matrx_fetcher.get_model('ContentBlocks') (line 14)` → ... → `MatrxFetcher.process_text_with_patterns(test_text, patterns) (line 236)`
```

### Call graph: matrx_ai.instructions.core

> Full detail in [`matrx_ai/instructions/MODULE_README.md`](matrx_ai/instructions/MODULE_README.md)

```
`Global Scope → matrx_ai.instructions.core.field() (line 18)` → ... → `matrx_ai.instructions.core.cls() (line 225)`
```

### Call graph: matrx_ai.instructions.content_blocks_manager

> Full detail in [`matrx_ai/instructions/MODULE_README.md`](matrx_ai/instructions/MODULE_README.md)

```
`matrx_ai.instructions.content_blocks_manager._get_ContentBlocksDTO → matrx_ai.instructions.content_blocks_manager.get_extra('ContentBlocksDTO') (line 9)` → ... → `matrx_ai.instructions.content_blocks_manager.get_content_blocks_manager() (line 153)`
```

### Call graph: matrx_ai.instructions.pattern_parser

> Full detail in [`matrx_ai/instructions/MODULE_README.md`](matrx_ai/instructions/MODULE_README.md)

```
`Global Scope → re.compile('<<MATRX>><<([^>]+)>><<([^>]+)>>((?:(?!<<FIELDS>>|<</MATRX>>).)*?)(?:<<FIELDS>>([^<]+))?<</MATRX>>', re.DOTALL | re.MULTILINE) (line 50)` → ... → `MatrxFetcher.process_text_with_patterns(text, patterns) (line 252)`
```

### Call graph: matrx_ai.tools.external_handlers

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → matrx_ai.tools.external_handlers.TypeVar('_F') (line 102)` → ... → `matrx_ai.tools.external_handlers._normalise_result(raw_result, tool_name, ctx.call_id, started_at) (line 637)`
```

### Call graph: matrx_ai.tools.agent_tool

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 16)` → ... → `matrx_ai.tools.agent_tool.ToolDefinition() (line 133)`
```

### Call graph: matrx_ai.tools.external_mcp

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 12)` → ... → `prop.get('description', '') (line 199)`
```

### Call graph: matrx_ai.tools.models

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`matrx_ai.tools.models.to_agent_message → parts.append(f'Suggested action: {self.suggested_action}') (line 35)` → ... → `datetime.now(UTC) (line 608)`
```

### Call graph: matrx_ai.tools.registry

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → matrx_ai.tools.registry.frozenset({'ai', 'matrx_ai'}) (line 22)` → ... → `registered.append(namespaced) (line 511)`
```

### Call graph: matrx_ai.tools.browser_sessions

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → matrx_ai.tools.browser_sessions.field() (line 35)` → ... → `atexit.register(_shutdown_browser_sessions) (line 163)`
```

### Call graph: matrx_ai.tools.logger

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.logger.log_started → datetime.now(UTC) (line 40)` → ... → `child.calculate_cost() (line 271)`
```

### Call graph: matrx_ai.tools.guardrails

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 12)` → ... → `normalized.encode() (line 232)`
```

### Call graph: matrx_ai.tools.lifecycle

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`matrx_ai.tools.lifecycle.get_instance → matrx_ai.tools.lifecycle.cls() (line 45)` → ... → `...values() (line 172)`
```

### Call graph: matrx_ai.tools.handle_tool_calls

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 30)` → ... → `guardrails.clear_conversation(conversation_id) (line 167)`
```

### Call graph: matrx_ai.tools.client_waiter

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`matrx_ai.tools.client_waiter.get_instance → matrx_ai.tools.client_waiter.cls() (line 42)` → ... → `ClientToolWaiter.get_instance() (line 190)`
```

### Call graph: matrx_ai.tools.streaming

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.streaming.emit → ...append(event) (line 48)` → ... → `e.model_dump() (line 163)`
```

### Call graph: matrx_ai.tools.tools_db

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → matrx_ai.tools.tools_db.get_base('ToolsBase') (line 3)` → ... → `matrx_ai.tools.tools_db.ToolsManager() (line 36)`
```

### Call graph: matrx_ai.tools.executor

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 19)` → ... → `time.time() (line 501)`
```

### Call graph: matrx_ai.tools.output_models.seo

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`matrx_ai.tools.output_models.seo.normalize_keyword_item → raw.get('monthly_searches') (line 46)` → ... → `raw.get('competition_index') (line 61)`
```

### Call graph: matrx_ai.tools.implementations._summarize_helper

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations._summarize_helper.summarize_content → fork_for_child_agent(str(uuid4())) (line 35)` → ... → `traceback.format_exc() (line 69)`
```

### Call graph: matrx_ai.tools.implementations.datasets_tools

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.datasets_tools.usertable_create → matrx_ai.tools.implementations.datasets_tools.get_ext('DatasetCreator') (line 11)` → ... → `traceback.format_exc() (line 51)`
```

### Call graph: matrx_ai.tools.implementations.personal_tables

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`matrx_ai.tools.implementations.personal_tables._run_query → matrx_ai.tools.implementations.personal_tables.execute_query(query_name, params) (line 27)` → ... → `traceback.format_exc() (line 505)`
```

### Call graph: matrx_ai.tools.implementations.web

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.web.web_search → time.time() (line 21)` → ... → `time.time() (line 433)`
```

### Call graph: matrx_ai.tools.implementations.vsc

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → matrx_ai.tools.implementations.vsc.frozenset({'vsc_active_file_path', 'vsc_active_file_content', 'vsc_active_file_language', 'vsc_active_file_all', 'vsc_selected_text', 'vsc_diagnostics', 'vsc_workspace_name', 'vsc_workspace_folders', 'vsc_workspace_all', 'vsc_git_branch', 'vsc_git_status', 'vsc_git_all', 'vsc_editor', 'vsc_all'}) (line 20)` → ... → `traceback.format_exc() (line 104)`
```

### Call graph: matrx_ai.tools.implementations.tasks

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.tasks.task_get → time.time() (line 11)` → ... → `time.time() (line 243)`
```

### Call graph: matrx_ai.tools.implementations.travel

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.travel.travel_get_location → matrx_ai.tools.implementations.travel.ToolResult() (line 17)` → ... → `matrx_ai.tools.implementations.travel.ToolResult() (line 120)`
```

### Call graph: matrx_ai.tools.implementations.seo

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.seo.seo_check_meta_titles → args.get('titles', []) (line 17)` → ... → `traceback.format_exc() (line 264)`
```

### Call graph: matrx_ai.tools.implementations.memory

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 19)` → ... → `time.time() (line 287)`
```

### Call graph: matrx_ai.tools.implementations.questionnaire

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.questionnaire.interaction_ask → args.get('introduction', '') (line 19)` → ... → `frontend_payload.model_dump() (line 147)`
```

### Call graph: matrx_ai.tools.implementations.tool_component

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`matrx_ai.tools.implementations.tool_component._get_supabase → matrx_ai.tools.implementations.tool_component.get_ext('get_async_supabase_client') (line 19)` → ... → `traceback.format_exc() (line 1149)`
```

### Call graph: matrx_ai.tools.implementations.database

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 16)` → ... → `time.time() (line 308)`
```

### Call graph: matrx_ai.tools.implementations.filesystem

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 19)` → ... → `time.time() (line 311)`
```

### Call graph: matrx_ai.tools.implementations.shell

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 13)` → ... → `time.time() (line 209)`
```

### Call graph: matrx_ai.tools.implementations.code

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → ...get('TOOL_WORKSPACE_BASE', '/tmp/workspaces') (line 14)` → ... → `traceback.format_exc() (line 281)`
```

### Call graph: matrx_ai.tools.implementations.notes

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.notes.note_get → time.time() (line 11)` → ... → `time.time() (line 265)`
```

### Call graph: matrx_ai.tools.implementations.browser

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → logging.getLogger(__name__) (line 20)` → ... → `time.time() (line 597)`
```

### Call graph: matrx_ai.tools.implementations.picklists_tools

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.picklists_tools.userlist_create → matrx_ai.tools.implementations.picklists_tools.get_ext('PicklistCreator') (line 12)` → ... → `matrx_ai.tools.implementations.picklists_tools.ToolResult() (line 337)`
```

### Call graph: matrx_ai.tools.implementations.text

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.text.text_analyze → time.time() (line 13)` → ... → `time.time() (line 144)`
```

### Call graph: matrx_ai.tools.implementations.math

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → k.startswith('_') (line 11)` → ... → `time.time() (line 49)`
```

### Call graph: matrx_ai.tools.implementations.ctx

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`Global Scope → matrx_ai.tools.implementations.ctx.frozenset({'full', 'page', 'summary'}) (line 24)` → ... → `matrx_ai.tools.implementations.ctx.clear_execution_context(token) (line 206)`
```

### Call graph: matrx_ai.tools.implementations.news

> Full detail in [`matrx_ai/tools/MODULE_README.md`](matrx_ai/tools/MODULE_README.md)

```
`async matrx_ai.tools.implementations.news.news_get_headlines → matrx_ai.tools.implementations.news.get_ext('get_top_headlines') (line 12)` → ... → `traceback.format_exc() (line 93)`
```

### Call graph: matrx_ai.agent_runners.research

> Full detail in [`matrx_ai/agent_runners/MODULE_README.md`](matrx_ai/agent_runners/MODULE_README.md)

```
`async matrx_ai.agent_runners.research.scrape_research_condenser_agent_1 → fork_for_child_agent(str(uuid4())) (line 40)` → ... → `matrx_ai.agent_runners.research.clear_execution_context(token) (line 98)`
```

### Call graph: matrx_ai.agent_runners.podcast_generator

> Full detail in [`matrx_ai/agent_runners/MODULE_README.md`](matrx_ai/agent_runners/MODULE_README.md)

```
`matrx_ai.agent_runners.podcast_generator._is_placeholder → agent_id.startswith('PLACEHOLDER_') (line 173)` → ... → `matrx_ai.agent_runners.podcast_generator.PodcastGenerationResult() (line 888)`
```

### Call graph: matrx_ai.agent_runners.conversation_labeler

> Full detail in [`matrx_ai/agent_runners/MODULE_README.md`](matrx_ai/agent_runners/MODULE_README.md)

```
`matrx_ai.agent_runners.conversation_labeler._build_recent_section → recent_titles.strip() (line 91)` → ... → `matrx_ai.agent_runners.conversation_labeler._call_groq_direct(system_prompt, user_message) (line 219)`
```

### Call graph: matrx_ai.config.message_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.message_config.field() (line 45)` → ... → `message.replace_variables(variables) (line 898)`
```

### Call graph: matrx_ai.config.thinking_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`matrx_ai.config.thinking_config.to_openai_reasoning → effort_mapping.get(self.reasoning_effort) (line 57)` → ... → `matrx_ai.config.thinking_config.cls() (line 489)`
```

### Call graph: matrx_ai.config.usage_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.usage_config.frozenset({'megapixel_output', 'image_output', 'video_unit_output', 'video_second_output', 'character_input', 'audio_second_input'}) (line 25)` → ... → `matrx_ai.config.usage_config.UsageTotals() (line 313)`
```

### Call graph: matrx_ai.config.structured_input_resolver

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`async matrx_ai.config.structured_input_resolver._resolve_one → block.resolve() (line 39)` → ... → `matrx_ai.config.structured_input_resolver._emit_block_warnings(block) (line 163)`
```

### Call graph: matrx_ai.config.tools_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.tools_config.field() (line 21)` → ... → `matrx_ai.config.tools_config.cls() (line 290)`
```

### Call graph: matrx_ai.config.structured_input_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.structured_input_config.field() (line 49)` → ... → `block.get('context_data', {}) (line 536)`
```

### Call graph: matrx_ai.config.tts_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`matrx_ai.config.tts_config.from_dict → matrx_ai.config.tts_config.cls() (line 19)` → ... → `model.strip() (line 760)`
```

### Call graph: matrx_ai.config.extra_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.extra_config.field() (line 13)` → ... → `matrx_ai.config.extra_config.cls() (line 123)`
```

### Call graph: matrx_ai.config.finish_reason

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`matrx_ai.config.finish_reason.from_google → upper() (line 95)` → ... → `mapping.get(reason_str, cls.OTHER) (line 117)`
```

### Call graph: matrx_ai.config.llm_params

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.llm_params.ConfigDict() (line 28)` → ... → `matrx_ai.config.llm_params.model_validator() (line 30)`
```

### Call graph: matrx_ai.config.media_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.media_config.field() (line 23)` → ... → `block.get('mime_type') (line 903)`
```

### Call graph: matrx_ai.config.config_utils

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`matrx_ai.config.config_utils.truncate_base64_in_dict → d.items() (line 32)` → ... → `matrx_ai.config.config_utils.truncate_base64_in_dict(item, min_length) (line 48)`
```

### Call graph: matrx_ai.config.unified_config

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`matrx_ai.config.unified_config._parse_custom_tools → result.append(item) (line 36)` → ... → `value.to_dict() (line 541)`
```

### Call graph: matrx_ai.config.unified_content

> Full detail in [`matrx_ai/config/MODULE_README.md`](matrx_ai/config/MODULE_README.md)

```
`Global Scope → matrx_ai.config.unified_content.field() (line 56)` → ... → `matrx_ai.config.unified_content.TextContent() (line 547)`
```

### Call graph: matrx_ai.processing.blocks.tag_detection_buffer

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('<([a-zA-Z_]\\w*)$') (line 26)` → ... → `matrx_ai.processing.blocks.tag_detection_buffer._ensure_tag_sets() (line 107)`
```

### Call graph: matrx_ai.processing.blocks.generate_ts_types

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → resolve() (line 18)` → ... → `matrx_ai.processing.blocks.generate_ts_types.main() (line 350)`
```

### Call graph: matrx_ai.processing.blocks.stream_processor

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.blocks.stream_processor._parse_artifact_with_metadata → matrx_ai.processing.blocks.stream_processor._model_to_dict(parse_artifact(c, metadata)) (line 85)` → ... → `b.get('blockIndex', 0) (line 966)`
```

### Call graph: matrx_ai.processing.blocks.block_detector

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.block_detector.field() (line 38)` → ... → `matrx_ai.processing.blocks.block_detector.flush_text() (line 933)`
```

### Call graph: matrx_ai.processing.blocks.block_registry

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.block_registry.field() (line 52)` → ... → `matrx_ai.processing.blocks.block_registry.DetectionRule() (line 413)`
```

### Call graph: matrx_ai.processing.blocks.parsers.recipe_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.blocks.parsers.recipe_parser.parse_recipe → strip() (line 20)` → ... → `matrx_ai.processing.blocks.parsers.recipe_parser.RecipeBlockData() (line 123)`
```

### Call graph: matrx_ai.processing.blocks.parsers.troubleshooting_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^\\*\\*Symptom:\\*\\*\\s*(.*)', re.IGNORECASE) (line 15)` → ... → `_SEVERITY_KEYWORDS.items() (line 177)`
```

### Call graph: matrx_ai.processing.blocks.parsers.diff_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('<<<<<<< SEARCH|>>>>>>> REPLACE|=======') (line 7)` → ... → `_SEARCH_REPLACE_RE.search(content) (line 18)`
```

### Call graph: matrx_ai.processing.blocks.parsers.progress_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^\\*\\*([^*]+)\\*\\*(?:\\s*\\((\\d+)%\\s*complete\\))?') (line 9)` → ... → `matrx_ai.processing.blocks.parsers.progress_parser.ProgressTrackerBlockData() (line 118)`
```

### Call graph: matrx_ai.processing.blocks.parsers.questionnaire_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^#{1,3}\\s+') (line 11)` → ... → `matrx_ai.processing.blocks.parsers.questionnaire_parser.QuestionnaireBlockData() (line 215)`
```

### Call graph: matrx_ai.processing.blocks.parsers.decision_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('<option\\s+label="([^"]*)">([\\s\\S]*?)</option>', re.DOTALL) (line 25)` → ... → `match.group(2) (line 89)`
```

### Call graph: matrx_ai.processing.blocks.parsers.flashcard_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^(?:Front|Question):\\s*(.*)', re.IGNORECASE) (line 9)` → ... → `matrx_ai.processing.blocks.parsers.flashcard_parser.FlashcardsBlockData() (line 99)`
```

### Call graph: matrx_ai.processing.blocks.parsers.resources_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^\\[([^\\]]+)\\]\\(([^)]+)\\)') (line 9)` → ... → `matrx_ai.processing.blocks.parsers.resources_parser.ResourceItem() (line 118)`
```

### Call graph: matrx_ai.processing.blocks.parsers.math_problem_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('```(?:json)?\\s*([\\s\\S]*?)\\s*```') (line 46)` → ... → `matrx_ai.processing.blocks.parsers.math_problem_parser._get(item, 'simplified') (line 151)`
```

### Call graph: matrx_ai.processing.blocks.parsers.presentation_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('```(?:json)?\\s*([\\s\\S]*?)\\s*```') (line 37)` → ... → `raw.get('layout') (line 121)`
```

### Call graph: matrx_ai.processing.blocks.parsers.research_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('https?://\\S+') (line 30)` → ... → `text.strip() (line 300)`
```

### Call graph: matrx_ai.processing.blocks.parsers.timeline_stream_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^#{1,3}\\s+(.+)$') (line 37)` → ... → `matrx_ai.processing.blocks.parsers.timeline_stream_parser.TimelineEvent() (line 282)`
```

### Call graph: matrx_ai.processing.blocks.parsers.artifact_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.blocks.parsers.artifact_parser.parse_artifact → inner_content.strip() (line 35)` → ... → `inner_content.strip() (line 50)`
```

### Call graph: matrx_ai.processing.blocks.parsers.comparison_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('```(?:json)?\\s*([\\s\\S]*?)\\s*```') (line 32)` → ... → `sample.replace('$', '') (line 106)`
```

### Call graph: matrx_ai.processing.blocks.parsers.transcript_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^\\[(\\d+):(\\d+)(?::(\\d+))?\\]') (line 9)` → ... → `matrx_ai.processing.blocks.parsers.transcript_parser.TranscriptBlockData() (line 95)`
```

### Call graph: matrx_ai.processing.blocks.parsers.table_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.blocks.parsers.table_parser.parse_table → l.strip() (line 21)` → ... → `c.strip() (line 69)`
```

### Call graph: matrx_ai.processing.blocks.parsers.timeline_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.blocks.parsers.timeline_parser.parse_timeline → strip() (line 13)` → ... → `remainder.lower() (line 125)`
```

### Call graph: matrx_ai.processing.blocks.parsers.decision_tree_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('```(?:json)?\\s*([\\s\\S]*?)\\s*```') (line 33)` → ... → `matrx_ai.processing.blocks.parsers.decision_tree_parser._get(data, 'estimatedTime', 'estimated_time') (line 102)`
```

### Call graph: matrx_ai.processing.blocks.parsers.quiz_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.blocks.parsers.quiz_parser.parse_quiz → json.loads(content.strip()) (line 55)` → ... → `matrx_ai.processing.blocks.parsers.quiz_parser.QuizQuestion() (line 112)`
```

### Call graph: matrx_ai.processing.blocks.parsers.task_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('^##\\s+') (line 9)` → ... → `matrx_ai.processing.blocks.parsers.task_parser.TasksBlockData() (line 115)`
```

### Call graph: matrx_ai.processing.blocks.parsers.diagram_parser

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → re.compile('```(?:json)?\\s*([\\s\\S]*?)\\s*```') (line 56)` → ... → `matrx_ai.processing.blocks.parsers.diagram_parser.Position() (line 167)`
```

### Call graph: matrx_ai.processing.blocks.models.quiz

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.quiz.ConfigDict() (line 12)` → ... → `matrx_ai.processing.blocks.models.quiz.ConfigDict() (line 27)`
```

### Call graph: matrx_ai.processing.blocks.models.timeline

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.timeline.ConfigDict() (line 10)`
```

### Call graph: matrx_ai.processing.blocks.models.diagram

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.diagram.ConfigDict() (line 10)` → ... → `matrx_ai.processing.blocks.models.diagram.DiagramLayout() (line 64)`
```

### Call graph: matrx_ai.processing.blocks.models.artifact

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.artifact.ConfigDict() (line 22)`
```

### Call graph: matrx_ai.processing.blocks.models.research

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.research.ConfigDict() (line 10)`
```

### Call graph: matrx_ai.processing.blocks.models.questionnaire

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.questionnaire.ConfigDict() (line 10)`
```

### Call graph: matrx_ai.processing.blocks.models.flashcards

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.flashcards.ConfigDict() (line 32)`
```

### Call graph: matrx_ai.processing.blocks.models.math_problem

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.math_problem.ConfigDict() (line 10)`
```

### Call graph: matrx_ai.processing.blocks.models.decision

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.decision.ConfigDict() (line 12)` → ... → `matrx_ai.processing.blocks.models.decision.ConfigDict() (line 30)`
```

### Call graph: matrx_ai.processing.blocks.models.comparison

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.comparison.ConfigDict() (line 14)`
```

### Call graph: matrx_ai.processing.blocks.models.presentation

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.presentation.ConfigDict() (line 10)`
```

### Call graph: matrx_ai.processing.blocks.models.troubleshooting

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.troubleshooting.ConfigDict() (line 10)`
```

### Call graph: matrx_ai.processing.blocks.models.decision_tree

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.decision_tree.ConfigDict() (line 8)`
```

### Call graph: matrx_ai.processing.blocks.models.table

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.table.ConfigDict() (line 12)`
```

### Call graph: matrx_ai.processing.blocks.models.progress

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.progress.ConfigDict() (line 10)`
```

### Call graph: matrx_ai.processing.blocks.models.recipe

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.recipe.ConfigDict() (line 8)`
```

### Call graph: matrx_ai.processing.blocks.models.base

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.blocks.models.base.ConfigDict() (line 85)` → ... → `matrx_ai.processing.blocks.models.base.ContentBlockEvent() (line 124)`
```

### Call graph: matrx_ai.processing.audio.groq_transcription

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`Global Scope → matrx_ai.processing.audio.groq_transcription.field() (line 47)` → ... → `segment.get('end') (line 470)`
```

### Call graph: matrx_ai.processing.audio.audio_preprocessing

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.audio.audio_preprocessing.preprocess_audio_in_messages → matrx_ai.processing.audio.audio_preprocessing.api_class_supports_audio(api_class) (line 47)` → ... → `messages.to_list() (line 228)`
```

### Call graph: matrx_ai.processing.audio.transcription_cache

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.audio.transcription_cache._generate_key → hexdigest() (line 50)` → ... → `_global_cache.clear() (line 114)`
```

### Call graph: matrx_ai.processing.audio.audio_support

> Full detail in [`matrx_ai/processing/MODULE_README.md`](matrx_ai/processing/MODULE_README.md)

```
`matrx_ai.processing.audio.audio_support.api_supports_audio → api.lower() (line 34)` → ... → `matrx_ai.processing.audio.audio_support.api_class_supports_audio(api_class) (line 75)`
```

### Call graph: matrx_ai.providers.unified_client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.unified_client.__init__ → matrx_ai.providers.unified_client.GoogleChat() (line 64)` → ... → `matrx_ai.providers.unified_client.GenericOpenAITranslator() (line 258)`
```

### Call graph: matrx_ai.providers.errors

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.errors._classify_by_status → matrx_ai.providers.errors.RetryableError() (line 48)` → ... → `matrx_ai.providers.errors._fallback_classify(str(exception), provider) (line 165)`
```

### Call graph: matrx_ai.providers.together.client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.together.client.load_dotenv() (line 5)` → ... → `matrx_ai.providers.together.client.AsyncTogether() (line 13)`
```

### Call graph: matrx_ai.providers.together.together_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.together.together_api.__init__ → matrx_ai.providers.together.together_api.AsyncTogether() (line 36)` → ... → `matrx_ai.providers.together.together_api.UnifiedResponse() (line 307)`
```

### Call graph: matrx_ai.providers.together.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.together.translator.to_together → self.get_system_text(config) (line 41)` → ... → `matrx_ai.providers.together.translator.UnifiedResponse() (line 209)`
```

### Call graph: matrx_ai.providers.google.google_video_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.google.google_video_api.__init__ → genai.Client() (line 29)` → ... → `emitter.send_error() (line 115)`
```

### Call graph: matrx_ai.providers.google.sample_podcast_direct

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → resolve() (line 10)` → ... → `matrx_ai.providers.google.sample_podcast_direct.generate(file_prefix) (line 205)`
```

### Call graph: matrx_ai.providers.google.google_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.google.google_api._sanitize_for_debug → matrx_ai.providers.google.google_api._sanitize_for_debug(v) (line 33)` → ... → `asyncio.sleep(0) (line 230)`
```

### Call graph: matrx_ai.providers.google.google_client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.google.google_client.load_dotenv() (line 5)` → ... → `genai.Client() (line 17)`
```

### Call graph: matrx_ai.providers.google.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.google.translator.to_google → msg.to_google_content() (line 80)` → ... → `matrx_ai.providers.google.translator.UnifiedResponse() (line 464)`
```

### Call graph: matrx_ai.providers.groq.client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.groq.client.load_dotenv() (line 5)` → ... → `matrx_ai.providers.groq.client.AsyncGroq() (line 13)`
```

### Call graph: matrx_ai.providers.groq.groq_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.groq.groq_api.__init__ → matrx_ai.providers.groq.groq_api.AsyncGroq() (line 39)` → ... → `matrx_ai.providers.groq.groq_api.UnifiedResponse() (line 328)`
```

### Call graph: matrx_ai.providers.groq.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.groq.translator.to_groq → self.get_system_text(config) (line 41)` → ... → `matrx_ai.providers.groq.translator.UnifiedResponse() (line 205)`
```

### Call graph: matrx_ai.providers.eleven_labs.client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.eleven_labs.client.load_dotenv() (line 5)` → ... → `os.getenv('ELEVENLABS_API_KEY') (line 8)`
```

### Call graph: matrx_ai.providers.eleven_labs.elevenlabs_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.eleven_labs.elevenlabs_api.__init__ → matrx_ai.providers.eleven_labs.elevenlabs_api.get_elevenlabs_client() (line 29)` → ... → `asyncio.sleep(0) (line 147)`
```

### Call graph: matrx_ai.providers.eleven_labs.direct_dialogue

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.eleven_labs.direct_dialogue.get_ext('settings') (line 11)` → ... → `matrx_ai.providers.eleven_labs.direct_dialogue.main() (line 397)`
```

### Call graph: matrx_ai.providers.eleven_labs.tts_streaming

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.eleven_labs.tts_streaming.get_ext('settings') (line 42)` → ... → `matrx_ai.providers.eleven_labs.tts_streaming._demo() (line 309)`
```

### Call graph: matrx_ai.providers.xai.client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.xai.client.load_dotenv() (line 5)` → ... → `matrx_ai.providers.xai.client.AsyncOpenAI() (line 13)`
```

### Call graph: matrx_ai.providers.xai.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.xai.translator.to_xai → self.get_system_text(config) (line 41)` → ... → `matrx_ai.providers.xai.translator.UnifiedResponse() (line 205)`
```

### Call graph: matrx_ai.providers.xai.xai_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.xai.xai_api.__init__ → matrx_ai.providers.xai.xai_api.AsyncOpenAI() (line 40)` → ... → `matrx_ai.providers.xai.xai_api.UnifiedResponse() (line 352)`
```

### Call graph: matrx_ai.providers.data_sync.xai_model_sync

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.data_sync.xai_model_sync._dump → obj.model_dump() (line 10)` → ... → `matrx_ai.providers.data_sync.xai_model_sync.update_data_in_code() (line 31)`
```

### Call graph: matrx_ai.providers.data_sync.openai_model_sync

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.data_sync.openai_model_sync._dump → obj.model_dump() (line 10)` → ... → `matrx_ai.providers.data_sync.openai_model_sync.update_data_in_code() (line 31)`
```

### Call graph: matrx_ai.providers.data_sync.together_model_sync

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.data_sync.together_model_sync._dump → obj.model_dump() (line 10)` → ... → `matrx_ai.providers.data_sync.together_model_sync.update_data_in_code() (line 29)`
```

### Call graph: matrx_ai.providers.data_sync.cerebras_model_sync

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.data_sync.cerebras_model_sync._dump → obj.model_dump() (line 10)` → ... → `matrx_ai.providers.data_sync.cerebras_model_sync.update_data_in_code() (line 29)`
```

### Call graph: matrx_ai.providers.data_sync.model_sync

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.data_sync.model_sync._dump → obj.model_dump() (line 14)` → ... → `matrx_ai.providers.data_sync.model_sync.get_anthropic_model(model_id) (line 130)`
```

### Call graph: matrx_ai.providers.data_sync.groq_model_sync

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.data_sync.groq_model_sync._dump → obj.model_dump() (line 10)` → ... → `matrx_ai.providers.data_sync.groq_model_sync.update_data_in_code() (line 29)`
```

### Call graph: matrx_ai.providers.data_sync.google_model_sync

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.data_sync.google_model_sync._dump → obj.model_dump() (line 9)` → ... → `matrx_ai.providers.data_sync.google_model_sync.update_data_in_code() (line 27)`
```

### Call graph: matrx_ai.providers.generic_openai.huggingface_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → ...get('HUGGING_FACE_ENDPOINT_URL', 'https://a2w7lbho0x93g7kf.us-east-1.aws.endpoints.huggingface.cloud') (line 8)`
```

### Call graph: matrx_ai.providers.generic_openai.generic_openai_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.generic_openai.generic_openai_api.__init__ → ...get(api_key_env, '') (line 61)` → ... → `matrx_ai.providers.generic_openai.generic_openai_api.UnifiedResponse() (line 290)`
```

### Call graph: matrx_ai.providers.generic_openai.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.generic_openai.translator.to_generic_openai → self.get_system_text(config) (line 38)` → ... → `matrx_ai.providers.generic_openai.translator.UnifiedResponse() (line 194)`
```

### Call graph: matrx_ai.providers.generic_openai.test_huggingface

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.generic_openai.test_huggingface.load_dotenv() (line 16)` → ... → `matrx_ai.providers.generic_openai.test_huggingface.test_streaming(messages) (line 194)`
```

### Call graph: matrx_ai.providers.anthropic.anthropic_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.anthropic.anthropic_api.__init__ → matrx_ai.providers.anthropic.anthropic_api.AsyncAnthropic() (line 30)` → ... → `emitter.send_chunk(f'\n<reasoning>\n{text}\n</reasoning>\n') (line 333)`
```

### Call graph: matrx_ai.providers.anthropic.client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.anthropic.client.load_dotenv() (line 5)` → ... → `anthropic.AsyncAnthropic() (line 13)`
```

### Call graph: matrx_ai.providers.anthropic.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.anthropic.translator.to_anthropic → msg.to_anthropic_blocks() (line 48)` → ... → `matrx_ai.providers.anthropic.translator.UnifiedResponse() (line 175)`
```

### Call graph: matrx_ai.providers.cerebras.client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.cerebras.client.load_dotenv() (line 5)` → ... → `matrx_ai.providers.cerebras.client.AsyncCerebras() (line 13)`
```

### Call graph: matrx_ai.providers.cerebras.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.cerebras.translator.to_cerebras → self.get_system_text(config) (line 46)` → ... → `matrx_ai.providers.cerebras.translator.UnifiedResponse() (line 253)`
```

### Call graph: matrx_ai.providers.cerebras.cerebras_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.cerebras.cerebras_api.__init__ → matrx_ai.providers.cerebras.cerebras_api.AsyncCerebras() (line 33)` → ... → `self.to_unified_response(mock_response, model) (line 289)`
```

### Call graph: matrx_ai.providers.openai.client

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`Global Scope → matrx_ai.providers.openai.client.load_dotenv() (line 5)` → ... → `matrx_ai.providers.openai.client.AsyncOpenAI() (line 13)`
```

### Call graph: matrx_ai.providers.openai.openai_api

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.openai.openai_api.__init__ → matrx_ai.providers.openai.openai_api.AsyncOpenAI() (line 36)` → ... → `emitter.send_error() (line 324)`
```

### Call graph: matrx_ai.providers.openai.translator

> Full detail in [`matrx_ai/providers/MODULE_README.md`](matrx_ai/providers/MODULE_README.md)

```
`matrx_ai.providers.openai.translator.to_openai → self.get_system_text(config) (line 48)` → ... → `matrx_ai.providers.openai.translator.UnifiedMessage() (line 257)`
```

### Call graph: matrx_ai.agents.variables

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`Global Scope → matrx_ai.agents.variables.ConfigDict() (line 19)` → ... → `AgentVariable.from_dict(var_def) (line 60)`
```

### Call graph: matrx_ai.agents.DEPRECATED_prompts_manager

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`Global Scope → matrx_ai.agents.DEPRECATED_prompts_manager.get_base('PromptBuiltinsBase') (line 10)` → ... → `matrx_ai.agents.DEPRECATED_prompts_manager.PromptManagers() (line 499)`
```

### Call graph: matrx_ai.agents.cache

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`Global Scope → matrx_ai.agents.cache.TTLCache() (line 21)` → ... → `_warm_cache.clear() (line 61)`
```

### Call graph: matrx_ai.agents.types

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`Global Scope → matrx_ai.agents.types.field() (line 33)`
```

### Call graph: matrx_ai.agents.resolver

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`async matrx_ai.agents.resolver.from_conversation_id → AgentCache.get(conversation_id) (line 70)` → ... → `pm.get_config_by_source(agent_id, source) (line 252)`
```

### Call graph: matrx_ai.agents.definition

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`Global Scope → matrx_ai.agents.definition.field() (line 35)` → ... → `matrx_ai.agents.definition.AgentExecuteResult() (line 390)`
```

### Call graph: matrx_ai.agents.response_parser

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`Global Scope → matrx_ai.agents.response_parser.TypeVar('T') (line 24)` → ... → `model_class.model_validate(data) (line 143)`
```

### Call graph: matrx_ai.agents.services.conversation_labeler

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`matrx_ai.agents.services.conversation_labeler.__init__ → matrx_ai.agents.services.conversation_labeler.OrderedDict() (line 61)` → ... → `matrx_ai.agents.services.conversation_labeler._run_labeling() (line 293)`
```

### Call graph: matrx_ai.agents.services.batch_categorize

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`async matrx_ai.agents.services.batch_categorize.run_batch → matrx_ai.agents.services.batch_categorize.get_app_context() (line 86)` → ... → `matrx_ai.agents.services.batch_categorize.cleanup_async_resources() (line 233)`
```

### Call graph: matrx_ai.agents.services.prompt_categorizer

> Full detail in [`matrx_ai/agents/MODULE_README.md`](matrx_ai/agents/MODULE_README.md)

```
`async matrx_ai.agents.services.prompt_categorizer.categorize_prompt → matrx_ai.agents.services.prompt_categorizer._fetch_prompt_data(prompt_id) (line 83)` → ... → `pm.find_prompts() (line 238)`
```

### Call graph: matrx_ai.utils.cache

```
Global Scope → matrx_ai.utils.cache.TypeVar('T') (line 7)
  matrx_ai.utils.cache.__init__ → matrx_ai.utils.cache.OrderedDict() (line 21)
  matrx_ai.utils.cache.get → ...move_to_end(key) (line 32)
  matrx_ai.utils.cache.get → time.monotonic() (line 33)
  matrx_ai.utils.cache.set → ...move_to_end(key) (line 38)
  matrx_ai.utils.cache.set → time.monotonic() (line 40)
  matrx_ai.utils.cache.set → ...popitem() (line 46)
  matrx_ai.utils.cache.set → ...pop(oldest_key, None) (line 47)
  matrx_ai.utils.cache.set → time.monotonic() (line 50)
  matrx_ai.utils.cache.clear → ...clear() (line 64)
  matrx_ai.utils.cache.clear → ...clear() (line 65)
  matrx_ai.utils.cache._is_expired → ...get(key, 0) (line 72)
  matrx_ai.utils.cache._is_expired → time.monotonic() (line 73)
  matrx_ai.utils.cache._remove → ...pop(key, None) (line 76)
  matrx_ai.utils.cache._remove → ...pop(key, None) (line 77)
  matrx_ai.utils.cache._evict_expired → time.monotonic() (line 80)
  matrx_ai.utils.cache._evict_expired → ...items() (line 81)
```

### Call graph: matrx_ai.concepts.agent_context

```
async matrx_ai.concepts.agent_context.build_agent_context → execute() (line 19)
  async matrx_ai.concepts.agent_context.build_agent_context → supabase.rpc('resolve_context_variables', {'p_user_id': user_id, 'p_organization_id': override_scope.get('organization_id'), 'p_workspace_id': override_scope.get('workspace_id'), 'p_project_id': override_scope.get('project_id'), 'p_task_id': override_scope.get('task_id')}) (line 19)
  async matrx_ai.concepts.agent_context.build_agent_context → override_scope.get('organization_id') (line 23)
  async matrx_ai.concepts.agent_context.build_agent_context → override_scope.get('workspace_id') (line 24)
  async matrx_ai.concepts.agent_context.build_agent_context → override_scope.get('project_id') (line 25)
  async matrx_ai.concepts.agent_context.build_agent_context → override_scope.get('task_id') (line 26)
  async matrx_ai.concepts.agent_context.build_agent_context → execute() (line 30)
  async matrx_ai.concepts.agent_context.build_agent_context → supabase.rpc('resolve_active_context', {'p_user_id': user_id}) (line 30)
  async matrx_ai.concepts.agent_context.build_agent_context → resolved.get('variables', {}) (line 36)
  async matrx_ai.concepts.agent_context.build_agent_context → resolved.get('context', {}) (line 37)
  async matrx_ai.concepts.agent_context.build_agent_context → variables.items() (line 44)
  async matrx_ai.concepts.agent_context.build_agent_context → var_data.get('inject_as', 'direct') (line 45)
  async matrx_ai.concepts.agent_context.build_agent_context → matrx_ai.concepts.agent_context.AgentContext() (line 53)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('  <scope>') (line 84)
  matrx_ai.concepts.agent_context.build_system_prompt_block → ...get(key) (line 86)
  matrx_ai.concepts.agent_context.build_system_prompt_block → key.replace('_id', '') (line 88)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append(f'    {label}: {val}') (line 89)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('  </scope>') (line 90)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('  <variables>') (line 94)
  matrx_ai.concepts.agent_context.build_system_prompt_block → ...items() (line 95)
  matrx_ai.concepts.agent_context.build_system_prompt_block → var_data.get('value') (line 96)
  matrx_ai.concepts.agent_context.build_system_prompt_block → var_data.get('source', '') (line 97)
  matrx_ai.concepts.agent_context.build_system_prompt_block → json.dumps(value) (line 100)
  matrx_ai.concepts.agent_context.build_system_prompt_block → value.strip('"') (line 103)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append(f'    {key}: {value}  [{source}]') (line 104)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('  </variables>') (line 105)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('  <available_context>') (line 109)
  matrx_ai.concepts.agent_context.build_system_prompt_block → join(self.tool_variables.keys()) (line 111)
  matrx_ai.concepts.agent_context.build_system_prompt_block → ...keys() (line 111)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append(f'    Tool-accessible variables: {tool_keys}') (line 112)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('    Use get_context_variable(key) to access these.') (line 115)
  matrx_ai.concepts.agent_context.build_system_prompt_block → join(self.searchable_variables.keys()) (line 119)
  matrx_ai.concepts.agent_context.build_system_prompt_block → ...keys() (line 119)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append(f'    Searchable context: {search_keys}') (line 120)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('    Use search_context(query) to find relevant content.') (line 123)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('  </available_context>') (line 126)
  matrx_ai.concepts.agent_context.build_system_prompt_block → lines.append('</agent_context>') (line 128)
  matrx_ai.concepts.agent_context.build_system_prompt_block → join(lines) (line 129)
  matrx_ai.concepts.agent_context.get_tool_variable → ...get(key) (line 133)
  matrx_ai.concepts.agent_context.get_tool_variable → var.get('value') (line 135)
  matrx_ai.concepts.agent_context.get_all_tool_variables → v.get('value') (line 141)
  matrx_ai.concepts.agent_context.get_all_tool_variables → ...items() (line 142)
```

### Call graph: matrx_ai.db.conversation_gate

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`matrx_ai.db.conversation_gate._is_valid_uuid → matrx_ai.db.conversation_gate.UUID(value) (line 61)` → ... → `gate_task.add_done_callback(_on_gate_done) (line 552)`
```

### Call graph: matrx_ai.db.agx_manager

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.agx_manager.get_base('AgxAgentBase') (line 10)` → ... → `matrx_ai.db.agx_manager.AgxManagers() (line 127)`
```

### Call graph: matrx_ai.db.persistence

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`matrx_ai.db.persistence._is_valid_uuid → matrx_ai.db.persistence.UUID(value) (line 40)` → ... → `traceback.print_exc() (line 480)`
```

### Call graph: matrx_ai.db.guest_registry

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.guest_registry.get_instance('guest_executions_manager') (line 40)` → ... → `_gm.update_guest_executions(str(row.id)) (line 212)`
```

### Call graph: matrx_ai.db._registry

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`matrx_ai.db._registry.configure_db → _models.update(models) (line 58)` → ... → `matrx_ai.db._registry._not_configured_msg('extra', name) (line 92)`
```

### Call graph: matrx_ai.db.conversation_rebuild

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.conversation_rebuild.get_model('CxMessage') (line 20)` → ... → `result.append(unified_message) (line 88)`
```

### Call graph: matrx_ai.db.cx_managers

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.cx_managers.get_base('CxAgentMemoryBase') (line 11)` → ... → `matrx_ai.db.cx_managers.CxManagers() (line 301)`
```

### Call graph: matrx_ai.db.content_types.datasets

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.content_types.datasets.get_ext('dataset_reference_fetch') (line 8)` → ... → `matrx_ai.db.content_types.datasets.DatasetsManager() (line 230)`
```

### Call graph: matrx_ai.db.content_types.patch_utils

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`matrx_ai.db.content_types.patch_utils._normalize_whitespace → re.sub('[ \\t]+', ' ', text) (line 69)` → ... → `matrx_ai.db.content_types.patch_utils.PatchError() (line 173)`
```

### Call graph: matrx_ai.db.content_types.tasks

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.content_types.tasks.get_base('TasksBase') (line 7)` → ... → `matrx_ai.db.content_types.tasks.TasksManager() (line 322)`
```

### Call graph: matrx_ai.db.content_types.notes

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.content_types.notes.get_base('NotesBase') (line 7)` → ... → `matrx_ai.db.content_types.notes.NotesManager() (line 330)`
```

### Call graph: matrx_ai.db.content_types.picklists

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.content_types.picklists.get_ext('picklist_reference_fetch') (line 8)` → ... → `matrx_ai.db.content_types.picklists.PicklistsManager() (line 178)`
```

### Call graph: matrx_ai.db.content_types.data_ref

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.content_types.data_ref._TableSpec() (line 42)` → ... → `join(parts) (line 356)`
```

### Call graph: matrx_ai.db.ai_models.ai_model_manager

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.ai_models.ai_model_manager.get_model('AiModel') (line 8)` → ... → `matrx_ai.db.ai_models.ai_model_manager.AiModelManager() (line 151)`
```

### Call graph: matrx_ai.db.ai_models.ai_model_base

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.ai_models.ai_model_base.get_model('AiModel') (line 5)` → ... → `add_relation_field(field) (line 132)`
```

### Call graph: matrx_ai.db.ai_models.ai_model_validator

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`async matrx_ai.db.ai_models.ai_model_validator.validate_data_integrity → self.load_all_models() (line 24)` → ... → `matrx_ai.db.ai_models.ai_model_validator.validate_and_fix_endpoints() (line 462)`
```

### Call graph: matrx_ai.db.ai_models.duplicate_models

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.ai_models.duplicate_models.get_model('AiModel') (line 15)` → ... → `matrx_ai.db.ai_models.duplicate_models.duplicate_ai_model('distil-whisper-large-v3-en', overrides) (line 255)`
```

### Call graph: matrx_ai.db.ai_models.ai_model_dto

> Full detail in [`matrx_ai/db/MODULE_README.md`](matrx_ai/db/MODULE_README.md)

```
`Global Scope → matrx_ai.db.ai_models.ai_model_dto.get_model('AiModel') (line 11)` → ... → `self.to_dict() (line 104)`
```

### Call graph: matrx_ai.local_data.paths

```
Global Scope → ...dirname(os.path.abspath(__file__)) (line 11)
  Global Scope → ...abspath(__file__) (line 11)
  Global Scope → ...join(_HERE, 'anthropic_models_data.py') (line 14)
  Global Scope → ...join(_HERE, 'openai_models_data.py') (line 15)
  Global Scope → ...join(_HERE, 'google_models_data.py') (line 16)
  Global Scope → ...join(_HERE, 'groq_models_data.py') (line 17)
  Global Scope → ...join(_HERE, 'together_models_data.py') (line 18)
  Global Scope → ...join(_HERE, 'xai_models_data.py') (line 19)
  Global Scope → ...join(_HERE, 'cerebras_models_data.py') (line 20)
  Global Scope → ...join(_HERE, 'models_data.py') (line 23)
  Global Scope → ...join(_HERE, 'data_history.json') (line 29)
```

### Call graph: matrx_ai.orchestrator.concurrent_engine

> Full detail in [`matrx_ai/orchestrator/MODULE_README.md`](matrx_ai/orchestrator/MODULE_README.md)

```
`Global Scope → matrx_ai.orchestrator.concurrent_engine.TypeVar('T') (line 17)` → ... → `matrx_ai.orchestrator.concurrent_engine._WorkerResult(item) (line 663)`
```

### Call graph: matrx_ai.orchestrator.recovery_logic

> Full detail in [`matrx_ai/orchestrator/MODULE_README.md`](matrx_ai/orchestrator/MODULE_README.md)

```
`matrx_ai.orchestrator.recovery_logic.handle_finish_reason → matrx_ai.orchestrator.recovery_logic.FinishReason(finish_reason) (line 36)` → ... → `finish_reason.is_error() (line 125)`
```

### Call graph: matrx_ai.orchestrator.parallel_executor

> Full detail in [`matrx_ai/orchestrator/MODULE_README.md`](matrx_ai/orchestrator/MODULE_README.md)

```
`matrx_ai.orchestrator.parallel_executor.output → ...get_last_output() (line 73)` → ... → `asyncio.gather(*tasks) (line 148)`
```

### Call graph: matrx_ai.orchestrator.requests

> Full detail in [`matrx_ai/orchestrator/MODULE_README.md`](matrx_ai/orchestrator/MODULE_README.md)

```
`Global Scope → matrx_ai.orchestrator.requests.field() (line 40)` → ... → `...items() (line 408)`
```

### Call graph: matrx_ai.orchestrator.tracking

> Full detail in [`matrx_ai/orchestrator/MODULE_README.md`](matrx_ai/orchestrator/MODULE_README.md)

```
`matrx_ai.orchestrator.tracking.aggregate → detail.get('name', 'unknown') (line 44)` → ... → `detail.get('success', True) (line 55)`
```

### Call graph: matrx_ai.orchestrator.executor

> Full detail in [`matrx_ai/orchestrator/MODULE_README.md`](matrx_ai/orchestrator/MODULE_README.md)

```
`async matrx_ai.orchestrator.executor.execute_ai_request → matrx_ai.orchestrator.executor.get_app_context() (line 75)` → ... → `matrx_ai.orchestrator.executor.UnifiedResponse() (line 995)`
```

### Call graph: matrx_ai.reports.cost_analysis

```
Global Scope → matrx_ai.reports.cost_analysis.field() (line 21)
  Global Scope → matrx_ai.reports.cost_analysis.field() (line 22)
```
<!-- /AUTO:call_graph -->

<!-- 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 |
|--------|-------|
| `mcp_server/core/registry.py` | `AIMatrixRequest()` |
| `aidream/api/utils/ai_task.py` | `Agent()` |
| `research/analysis.py` | `Agent()` |
| `aidream/api/utils/ai_task.py` | `AgentCache()` |
| `aidream/api/routers/agents.py` | `AgentConfigResolver()` |
| `aidream/api/utils/ai_task.py` | `CompletedRequest()` |
| `aidream/api/routers/conversations.py` | `ConversationResolver()` |
| `aidream/api/routers/tool_testing.py` | `TokenUsage()` |
| `mcp_server/core/registry.py` | `ToolCallContent()` |
| `aidream/api/middleware/test_context.py` | `ToolContext()` |
| `aidream/api/routers/tool_testing.py` | `ToolContext()` |
| `aidream/api/routers/tool_testing.py` | `ToolRegistryV2()` |
| `mcp_server/core/registry.py` | `ToolResultContent()` |
| `aidream/api/routers/chat.py` | `UnifiedConfig()` |
| `aidream/api/utils/ai_task.py` | `UnifiedConfig()` |
| `aidream/api/utils/ai_task.py` | `execute_ai_request()` |
| `aidream/api/routers/tool_testing.py` | `get_executor()` |
| `aidream/api/app.py` | `initialize_tool_system()` |
| `aidream/asgi.py` | `initialize_tool_system_sync()` |
| `initialize_systems.py` | `initialize_tool_system_sync()` |
<!-- /AUTO:callers -->

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

**External packages:** 26 packages — see `pyproject.toml` for the full list.
<!-- /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",
  "mode": "signatures",
  "scope": null,
  "project_noise": null,
  "include_call_graph": true,
  "entry_points": null,
  "call_graph_exclude": [
    "tests"
  ],
  "signatures_exclude": [
    "tests",
    "db",
    "local_data",
    "docs"
  ]
}
```
<!-- /AUTO:config -->
