# `orchestrator.runtime.manager_graph`
<!-- generated by `orchestrator understand`; the PKG is source of truth, edits here are advisory -->

[← Episteme](../README.md) · [Architecture](../architecture.md)

**Source:** [`src/orchestrator/runtime/manager_graph.py`](../../src/orchestrator/runtime/manager_graph.py)

6 types · 6 functions · python

## Changing this safely

**No test module imports this.**

**Most depended-upon here** — a change to these reaches the most code (call graph, ≤4 hops):

- [`_objective_from_state`](../../src/orchestrator/runtime/manager_graph.py#L367) — reaches **2** symbols · **no test path visible**
- [`_ManagerDispatchNode`](../../src/orchestrator/runtime/manager_graph.py#L139) — reaches **1** symbol · **no test path visible**
- [`_ManagerSynthesizeNode`](../../src/orchestrator/runtime/manager_graph.py#L285) — reaches **1** symbol · **no test path visible**
- [`_RunSpecialistsNode`](../../src/orchestrator/runtime/manager_graph.py#L205) — reaches **1** symbol · **no test path visible**
- [`_render_glossary`](../../src/orchestrator/runtime/manager_graph.py#L415) — reaches **1** symbol · **no test path visible**
- [`_render_required_outputs`](../../src/orchestrator/runtime/manager_graph.py#L445) — reaches **1** symbol · **no test path visible**
- [`_render_specialist_return`](../../src/orchestrator/runtime/manager_graph.py#L423) — reaches **1** symbol · **no test path visible**
- [`_summarise`](../../src/orchestrator/runtime/manager_graph.py#L375) — reaches **1** symbol · **no test path visible**

_8 of the symbols other code depends on here have no test path the graph can see — worth a second look before changing them. Absence of a path is not proof of absence of a test: calls through an attribute chain (`obj.method()`) are skipped rather than guessed at, so indirect coverage is invisible._

## Types

### `DispatchedSpecialist`

[`src/orchestrator/runtime/manager_graph.py:80`](../../src/orchestrator/runtime/manager_graph.py#L80)

- **Fields**: `handoff_from`, `inputs`, `specialist_id`

### `ManagerSpec`

[`src/orchestrator/runtime/manager_graph.py:70`](../../src/orchestrator/runtime/manager_graph.py#L70)

- **Fields**: `context_budget`, `node_id`, `parallelism_max`, `template`

### `SpecialistSpec`

[`src/orchestrator/runtime/manager_graph.py:55`](../../src/orchestrator/runtime/manager_graph.py#L55)

- **Fields**: `min_confidence`, `node_id`, `post_conditions`, `template`

### `_ManagerDispatchNode`

[`src/orchestrator/runtime/manager_graph.py:139`](../../src/orchestrator/runtime/manager_graph.py#L139)

- **Called by** (1): [`build_manager_specialists_graph`](../../src/orchestrator/runtime/manager_graph.py#L88)
- **Fields**: `_llm`, `_manager`, `_specialists`

### `_ManagerSynthesizeNode`

[`src/orchestrator/runtime/manager_graph.py:285`](../../src/orchestrator/runtime/manager_graph.py#L285)

- **Called by** (1): [`build_manager_specialists_graph`](../../src/orchestrator/runtime/manager_graph.py#L88)
- **Fields**: `_llm`, `_manager`

### `_RunSpecialistsNode`

[`src/orchestrator/runtime/manager_graph.py:205`](../../src/orchestrator/runtime/manager_graph.py#L205)

- **Called by** (1): [`build_manager_specialists_graph`](../../src/orchestrator/runtime/manager_graph.py#L88)
- **Fields**: `_llm`, `_manager`, `_specialist_by_id`, `_store`

## Functions

### `_objective_from_state`

[`src/orchestrator/runtime/manager_graph.py:367`](../../src/orchestrator/runtime/manager_graph.py#L367)

- **Called by** (2): [`__call__`](../../src/orchestrator/runtime/manager_graph.py#L153), [`__call__`](../../src/orchestrator/runtime/manager_graph.py#L292)
- **Calls** (1): [`AgentNodeError`](../../src/orchestrator/runtime/agent_node.py#L23)

### `_render_glossary`

[`src/orchestrator/runtime/manager_graph.py:415`](../../src/orchestrator/runtime/manager_graph.py#L415)

- **Called by** (1): [`__call__`](../../src/orchestrator/runtime/manager_graph.py#L292)

### `_render_required_outputs`

[`src/orchestrator/runtime/manager_graph.py:445`](../../src/orchestrator/runtime/manager_graph.py#L445)

- **Called by** (1): [`__call__`](../../src/orchestrator/runtime/manager_graph.py#L292)

### `_render_specialist_return`

[`src/orchestrator/runtime/manager_graph.py:423`](../../src/orchestrator/runtime/manager_graph.py#L423)

- **Called by** (1): [`__call__`](../../src/orchestrator/runtime/manager_graph.py#L292)

### `_summarise`

[`src/orchestrator/runtime/manager_graph.py:375`](../../src/orchestrator/runtime/manager_graph.py#L375)

- **Called by** (1): [`_run_one`](../../src/orchestrator/runtime/manager_graph.py#L234)
- **Calls** (2): [`ClaimSummary`](../../src/orchestrator/runtime/specialist.py#L31), [`SpecialistReturn`](../../src/orchestrator/runtime/specialist.py#L47)

### `build_manager_specialists_graph`

[`src/orchestrator/runtime/manager_graph.py:88`](../../src/orchestrator/runtime/manager_graph.py#L88)

- **Calls** (6): [`InMemoryArtifactStore`](../../src/orchestrator/runtime/artifacts.py#L79), [`SchemaVerifierNode`](../../src/orchestrator/runtime/verifier.py#L146), [`_ManagerDispatchNode`](../../src/orchestrator/runtime/manager_graph.py#L139), [`_ManagerSynthesizeNode`](../../src/orchestrator/runtime/manager_graph.py#L285), [`_RunSpecialistsNode`](../../src/orchestrator/runtime/manager_graph.py#L205), `langgraph.graph.StateGraph`

## Imports

`__future__.annotations`, `asyncio`, `dataclasses.dataclass`, `dataclasses.field`, `langgraph.graph.END`, `langgraph.graph.START`, `langgraph.graph.StateGraph`, [`orchestrator.core.llm`](../../src/orchestrator/core/llm/__init__.py#L1), [`orchestrator.core.state`](../../src/orchestrator/core/state.py#L1), [`orchestrator.registry.agent_template`](../../src/orchestrator/registry/agent_template.py#L1), [`orchestrator.runtime.agent_node`](../../src/orchestrator/runtime/agent_node.py#L1), [`orchestrator.runtime.artifacts`](../../src/orchestrator/runtime/artifacts.py#L1), [`orchestrator.runtime.post_conditions`](../../src/orchestrator/runtime/post_conditions.py#L1), [`orchestrator.runtime.specialist`](../../src/orchestrator/runtime/specialist.py#L1), [`orchestrator.runtime.verifier`](../../src/orchestrator/runtime/verifier.py#L1), `typing.Any`

## Imported by

[`orchestrator.runtime`](../../src/orchestrator/runtime/__init__.py#L1)
