# `Squidie.Runs.GraphInspection`
[🔗](https://github.com/dark-trench/squidie/blob/main/lib/squidie/runs/graph_inspection.ex#L2)

Graph-oriented inspection output for one workflow run.

This projection is read-only and backend-neutral. It is built from the
journal inspection data returned by `Squidie.inspect_run/2`, then overlays
the declared workflow graph when the workflow module can still be loaded.

# `source`

```elixir
@type source() :: :read_model
```

# `t`

```elixir
@type t() :: %Squidie.Runs.GraphInspection{
  anomalies: [map()],
  child_links: [map()],
  child_runs: [map()],
  current_node_id: String.t() | nil,
  current_node_ids: [String.t()],
  definition_version: String.t() | nil,
  dynamic_work: [map()],
  dynamic_work_overlays: [map()],
  edges: [Squidie.Runs.GraphInspection.Edge.t()],
  nodes: [Squidie.Runs.GraphInspection.Node.t()],
  run_id: String.t(),
  source: source(),
  status: atom(),
  terminal?: boolean(),
  workflow: module() | String.t() | nil
}
```

# `to_map`

```elixir
@spec to_map(t()) :: map()
```

Converts graph inspection data into a stable map for host UI serializers.

`inspect_run_graph/2` continues to return the graph structs for existing
callers. Host apps that need a JSON-ready dashboard payload can call this
function at their HTTP or LiveView boundary after applying their own
authorization and redaction policy.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
