# `DalaDev.Tui.Remote`
[🔗](https://github.com/ohhi-vn/dala_dev/blob/main/lib/dala_dev/tui/remote.ex#L1)

Remote node information for the TUI.

Queries connected dala nodes for version info, screen state,
memory usage, process info, and debugging data.

# `t`

```elixir
@type t() :: %DalaDev.Tui.Remote{
  app_version: String.t() | nil,
  assigns: map() | nil,
  connected_at: DateTime.t() | nil,
  current_screen: String.t() | nil,
  error: String.t() | nil,
  erts_version: String.t() | nil,
  latency_ms: float() | nil,
  memory: map() | nil,
  node: atom(),
  otp_version: String.t() | nil,
  process_count: non_neg_integer() | nil,
  screen_info: map() | nil,
  supervision_tree: list() | nil,
  version: String.t() | nil
}
```

# `connected_nodes`

```elixir
@spec connected_nodes() :: [atom()]
```

Lists all connected remote nodes.

# `eval`

```elixir
@spec eval(atom(), String.t()) :: {:ok, term()} | {:error, term()}
```

Evaluates an expression on a remote node.

# `get_app_version`

```elixir
@spec get_app_version(atom()) :: {:ok, String.t()} | {:error, term()}
```

Gets the app version from a remote node.

# `get_assigns`

```elixir
@spec get_assigns(atom()) :: {:ok, map()} | {:error, term()}
```

Gets assigns from the current screen on a remote node.

# `get_current_screen`

```elixir
@spec get_current_screen(atom()) :: {:ok, String.t()} | {:error, term()}
```

Gets current screen name from a remote node.

# `get_dala_version`

```elixir
@spec get_dala_version(atom()) :: {:ok, String.t()} | {:error, term()}
```

Gets the dala framework version from a remote node.

# `get_memory`

```elixir
@spec get_memory(atom()) :: {:ok, map()} | {:error, term()}
```

Gets memory usage from a remote node.

# `get_process_count`

```elixir
@spec get_process_count(atom()) :: non_neg_integer()
```

Gets process count from a remote node.

# `get_screen_info`

```elixir
@spec get_screen_info(atom()) :: {:ok, map()} | {:error, term()}
```

Gets current screen info from a remote node via Dala.Test.

# `get_supervision_tree`

```elixir
@spec get_supervision_tree(atom()) :: {:ok, list()} | {:error, term()}
```

Gets the supervision tree from a remote node via DalaDev.Remote.

# `measure_latency`

```elixir
@spec measure_latency(atom()) :: {:ok, float()} | {:error, term()}
```

Measures latency to a remote node.

# `query`

```elixir
@spec query(atom()) :: t()
```

Queries a remote node for all available information.

Returns a `%DalaDev.Tui.Remote{}` struct with fetched data.

# `reachable?`

```elixir
@spec reachable?(atom()) :: boolean()
```

Checks if a node is reachable.

---

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