Class: Rubino::Commands::Handlers::Status

Inherits:
Object
  • Object
show all
Defined in:
lib/rubino/commands/handlers/status.rb

Overview

The โ€˜/status` at-a-glance state panel, extracted from Commands::Executor (batch B). Assembles the model/mode/session lines plus approval policy, provider/connection, and the tool/mcp/memory/skills rosters over the same services (Modes, Session::Repository, Memory backend, BackgroundTasks, Skills::Registry). A plain collaborator given the live `ui`/`runner`.

Instance Method Summary collapse

Constructor Details

#initialize(ui:, runner:) ⇒ Status

Returns a new instance of Status.



12
13
14
15
# File 'lib/rubino/commands/handlers/status.rb', line 12

def initialize(ui:, runner:)
  @ui = ui
  @runner = runner
end

Instance Method Details

#show_statusObject

Labels dim, values plain, cyan only on the actionable pointers (P8).



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/rubino/commands/handlers/status.rb', line 18

def show_status
  @ui.separator
  @ui.panel_line("model", status_model)
  @ui.panel_line("provider", status_provider_line)
  @ui.panel_line("mode", "#{Rubino::Modes.current} โ€” #{Rubino::Modes.description}")
  @ui.panel_line("display", status_display_line, pointer: "(use /reasoning ยท /think)")
  @ui.panel_line("approvals", status_approvals_line)
  @ui.panel_line("session", status_session_line)
  @ui.panel_line("tools", status_tools_line)
  # MCP only when servers are configured (#182/#186) โ€” a non-MCP user's
  # /status stays exactly as before, and MCP tools stop being invisibly
  # mixed into the truncated tools line as the only trace of MCP.
  @ui.panel_line("mcp", status_mcp_line, pointer: "(use /mcp)") if Rubino::MCP.enabled?
  if (dirs = status_dirs_line)
    @ui.panel_line("dirs", dirs, pointer: "(use /dirs)")
  end
  @ui.panel_line("memory", status_memory_line, pointer: "(use /memory)")
  @ui.panel_line("skills", status_skills_line, pointer: "(use /skills)")
  @ui.panel_line("background", status_background_line, pointer: "(use /agents)")
  if (jobs = status_jobs_line)
    @ui.panel_line("jobs", jobs, pointer: "(use /jobs)")
  end
  @ui.separator
end