# `Jido.Agent.Strategy.Snapshot`
[🔗](https://github.com/agentjido/jido/blob/v2.3.0/lib/jido/agent/strategy.ex#L98)

Stable, cross-strategy execution snapshot.

Use this struct instead of inspecting `agent.state.__strategy__` directly.
This provides a stable interface that strategies can implement while
freely evolving their internal state structures.

## Fields

- `status` - Coarse execution status (:idle, :running, :waiting, :success, :failure)
- `done?` - Whether the strategy has reached a terminal state
- `result` - The main output (if the strategy produces one)
- `details` - Additional strategy-specific metadata

# `t`

```elixir
@type t() :: %Jido.Agent.Strategy.Snapshot{
  details: %{optional(atom()) =&gt; any()},
  done?: boolean(),
  result: nil | any(),
  status: atom()
}
```

# `running?`

```elixir
@spec running?(t()) :: boolean()
```

Returns true if the strategy is currently running.

# `terminal?`

```elixir
@spec terminal?(t()) :: boolean()
```

Returns true if the strategy has reached a terminal state.
