# BB.TUI v0.1.0 - Table of Contents

> Terminal-based dashboard for Beam Bots robots

## Pages

- [Overview](readme.md)
- [Contributing](contributing.md)
- [Changelog](changelog.md)

- Guides
  - [Transports](transports.md)
  - [Keybindings](keybindings.md)
  - [Telemetry](telemetry.md)

## Modules

- Core
  - [BB.TUI](BB.TUI.md): Terminal-based dashboard for Beam Bots robots.
  - [BB.TUI.App](BB.TUI.App.md): Main TUI application using the `ExRatatui.App` **reducer runtime**.

- State
  - [BB.TUI.State](BB.TUI.State.md): State struct and pure update functions for the BB TUI dashboard.
  - [BB.TUI.State.Commands](BB.TUI.State.Commands.md): Command palette and inline argument-edit state, split out of `BB.TUI.State`.
  - [BB.TUI.State.Events](BB.TUI.State.Events.md): Event-log display state, split out of `BB.TUI.State`.
  - [BB.TUI.State.Joints](BB.TUI.State.Joints.md): Joint positions and selection, split out of `BB.TUI.State`.
  - [BB.TUI.State.Parameters](BB.TUI.State.Parameters.md): Parameter browser state, split out of `BB.TUI.State`.
  - [BB.TUI.State.Safety](BB.TUI.State.Safety.md): Robot safety status, split out of `BB.TUI.State`.
  - [BB.TUI.State.Throttle](BB.TUI.State.Throttle.md): High-rate sensor handling, split out of `BB.TUI.State`.
  - [BB.TUI.State.UI](BB.TUI.State.UI.md): View chrome state, split out of `BB.TUI.State`.

- Rendering
  - [BB.TUI.Panels.CommandEdit](BB.TUI.Panels.CommandEdit.md): Argument-edit popup for the commands panel.
  - [BB.TUI.Panels.Commands](BB.TUI.Panels.Commands.md): Commands panel — displays available robot commands with execution state.
  - [BB.TUI.Panels.EventDetail](BB.TUI.Panels.EventDetail.md): Event detail popup — overlay showing the full payload of the selected
event as a syntax-highlighted Elixir term.
  - [BB.TUI.Panels.Events](BB.TUI.Panels.Events.md): Events panel — displays a scrollable list of recent robot messages with
formatted timestamps, color-coded paths, message types, and summaries.
  - [BB.TUI.Panels.ForceDisarm](BB.TUI.Panels.ForceDisarm.md): Force disarm confirmation popup.
  - [BB.TUI.Panels.Help](BB.TUI.Panels.Help.md): Help popup — overlay showing all available keyboard shortcuts.
  - [BB.TUI.Panels.Joints](BB.TUI.Panels.Joints.md): Joint control panel — displays joint positions with type, units, and
visual position bars.
  - [BB.TUI.Panels.Parameters](BB.TUI.Panels.Parameters.md): Parameters panel — displays robot parameters grouped by path.
  - [BB.TUI.Panels.Safety](BB.TUI.Panels.Safety.md): Safety panel — displays safety state, runtime state, and control hints.
  - [BB.TUI.Panels.StatusBar](BB.TUI.Panels.StatusBar.md): Status bar — single-line bar at the bottom of the dashboard.
  - [BB.TUI.Panels.TitleBar](BB.TUI.Panels.TitleBar.md): Title bar — single-line branded header at the top of the dashboard.
  - [BB.TUI.Theme](BB.TUI.Theme.md): Color, style, and rich-text constants for the BB TUI dashboard.

- Robot
  - [BB.TUI.Robot](BB.TUI.Robot.md): Routing layer for BB.* calls used by the TUI.
  - [BB.TUI.Rpc](BB.TUI.Rpc.md): Thin wrapper around `:rpc.call/4` and `Node.spawn_link/2`.

- Development
  - [Dev.Application](Dev.Application.md): Dev supervision tree for local `mix`/`iex` sessions.
  - [Dev.CalibrateHandler](Dev.CalibrateHandler.md): Dev-only command handler that sleeps for a couple of seconds before
succeeding. Useful for eyeballing the executing-command throbber and
the events panel's `command.started`/`command.succeeded` pair without
a real long-running operation.
  - [Dev.EchoHandler](Dev.EchoHandler.md): No-op command handler for dev/UI testing. Echoes the goal map back as
the result, and returns the state machine to the robot's initial
operational state so the runtime doesn't park in `:executing`
forever. Use only from the dev tree.

  - [Dev.MockBridge](Dev.MockBridge.md): Development-only `BB.Bridge` implementation that exposes a small set
of pretend remote parameters with in-memory writes.
  - [Dev.MoveHandler](Dev.MoveHandler.md): Dev/UI command handler that drives a single joint by publishing a
synthetic `JointState` sensor message on `[:sensor, :simulated]`.
  - [Dev.StreamHandler](Dev.StreamHandler.md): Dev-only command that emits a high-rate burst of synthetic `JointState`
sensor messages on `[:sensor, :simulated]`, sweeping a joint through a
sine motion for ~2s at ~100Hz.
  - [Dev.TestRobot](Dev.TestRobot.md): A simulated WidowX-200 style robot arm for development.
  - [Dev.WobbleHandler](Dev.WobbleHandler.md): Dev-only command handler that always fails. Useful for eyeballing the
Events panel's failure rendering and the Commands panel's
`{:error, _}` result formatting without driving a real fault.

## Mix Tasks

- Mix Tasks
  - [mix bb.tui](Mix.Tasks.Bb.Tui.md): Starts the terminal dashboard for a Beam Bots robot.
  - [mix bb_tui.install](Mix.Tasks.BbTui.Install.md): Installs BB.TUI into a project

