# `Raxol.AgentClientProtocol.Schema.ToolCallStatus`
[🔗](https://github.com/DROOdotFOO/raxol-agent/blob/raxol_agent_client_protocol-v0.1.0/packages/raxol_agent_client_protocol/lib/raxol/agent_client_protocol/schema/tool_call.ex#L56)

Execution status of a tool call. Every place this enum is used in the ACP
schema (`ToolCall.status`, `ToolCallUpdateFields.status`) carries
`x-deserialize-default-on-error: true`, so -- like `ToolKind` -- decode is
total and infallible: an unrecognized wire value falls back to the
documented default, `:pending`, rather than failing the enclosing object.

Ported from the MIT `f1729/agent_client_protocol` (c) 2025 f1729; see NOTICE.md.

# `t`

```elixir
@type t() :: :pending | :in_progress | :completed | :failed
```

# `decode`

```elixir
@spec decode(term()) :: t()
```

Total and infallible: any unrecognized wire value decodes to the documented default, `:pending`.

# `default`

```elixir
@spec default() :: t()
```

# `default?`

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

# `encode`

```elixir
@spec encode(t()) :: String.t()
```

---

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