# `GeminiCliSdk.Error`
[🔗](https://github.com/nshkrdotcom/gemini_cli_sdk/blob/v0.2.0/lib/gemini_cli_sdk/error.ex#L1)

Unified error type for the Gemini CLI SDK.

# `kind`

```elixir
@type kind() ::
  :cli_not_found
  | :command_failed
  | :command_timeout
  | :command_execution_failed
  | :stream_start_failed
  | :stream_timeout
  | :transport_error
  | :transport_exit
  | :parse_error
  | :json_decode_error
  | :unknown_event_type
  | :invalid_event
  | :invalid_configuration
  | :config_invalid
  | :execution_failed
  | :no_result
  | :auth_error
  | :input_error
  | :config_error
  | :user_cancelled
  | :unknown
```

# `t`

```elixir
@type t() :: %GeminiCliSdk.Error{
  __exception__: true,
  cause: term(),
  context: map() | nil,
  details: String.t() | nil,
  exit_code: integer() | nil,
  kind: kind(),
  message: String.t()
}
```

# `from_exit_code`

```elixir
@spec from_exit_code(integer()) :: :ok | t()
```

# `from_runtime_failure`

```elixir
@spec from_runtime_failure(
  CliSubprocessCore.ProviderCLI.ErrorRuntimeFailure.t(),
  keyword()
) :: t()
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

# `normalize`

```elixir
@spec normalize(
  term(),
  keyword()
) :: t()
```

---

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