module Riffer::Rig::Terminal::Banner
Constants
- ART_COLUMNS
- INDENT
- INFO_LABEL_WIDTH
- MARKER
- ROW_COLOURS
- VALUE_COLUMN
- WORDMARK
Public Instance Methods
(Riffer::Rig::Terminal::Theme theme, Integer? width) → Array[String]
Source
# File lib/riffer/rig/terminal/banner.rb, line 82 def art(theme, width) tagline = "#{INDENT}#{theme.cyan("♪ let's riff ♪")}" return [tagline] if width && width < ART_COLUMNS WORDMARK.each_index.map { |i| "#{INDENT}#{theme.paint(WORDMARK[i], ROW_COLOURS[i])}" } + [tagline] end
@rbs theme: Riffer::Rig::Terminal::Theme @rbs width: Integer? @rbs return: Array
(Riffer::Rig::Terminal::Theme theme, model: String, reasoning: String?, cwd: String, skills: String, version: String, ?tally: Riffer::Providers::TokenUsage?, ?width: Integer?) → String
Source
# File lib/riffer/rig/terminal/banner.rb, line 43 def call(theme, model:, reasoning:, cwd:, skills:, version:, tally: nil, width: nil) lines( theme, model: model, reasoning: reasoning, cwd: cwd, skills: skills, version: version, tally: tally, width: width ).join("\n") end
@rbs theme: Riffer::Rig::Terminal::Theme @rbs model: String @rbs reasoning: String? @rbs cwd: String @rbs skills: String @rbs version: String @rbs tally: Riffer::Providers::TokenUsage? @rbs width: Integer? @rbs return: String
(Riffer::Rig::Terminal::Theme theme, model: String, reasoning: String?, cwd: String, skills: String, version: String, tally: Riffer::Providers::TokenUsage?, width: Integer?) → Array[String]
Source
# File lib/riffer/rig/terminal/banner.rb, line 98 def info(theme, model:, reasoning:, cwd:, skills:, version:, tally:, width:) room = width && (width - VALUE_COLUMN) session = tally && summary(tally) values = { model: clip(model, room), reasoning: reasoning || Riffer::Rig::Runtime::DEFAULT_REASONING_LABEL, cwd: clip(cwd, room), skills: skills, version: version, session: session }.compact rows = values.map do |label, value| "#{INDENT}#{theme.magenta(MARKER)} #{theme.grey(label.to_s.ljust(INFO_LABEL_WIDTH))}#{value}" end rows + ['', " #{theme.dim('type /help for commands, /exit to quit')}"] end
@rbs theme: Riffer::Rig::Terminal::Theme @rbs model: String @rbs reasoning: String? @rbs cwd: String @rbs skills: String @rbs version: String @rbs tally: Riffer::Providers::TokenUsage? @rbs width: Integer? @rbs return: Array
(Riffer::Rig::Terminal::Theme theme, model: String, reasoning: String?, cwd: String, skills: String, version: String, tally: Riffer::Providers::TokenUsage?, width: Integer?) → Array[String]
Source
# File lib/riffer/rig/terminal/banner.rb, line 65 def lines(theme, model:, reasoning:, cwd:, skills:, version:, tally:, width:) rows = info( theme, model: model, reasoning: reasoning, cwd: cwd, skills: skills, version: version, tally: tally, width: width ) [''] + art(theme, width) + [''] + rows + [''] end
@rbs theme: Riffer::Rig::Terminal::Theme @rbs model: String @rbs reasoning: String? @rbs cwd: String @rbs skills: String @rbs version: String @rbs tally: Riffer::Providers::TokenUsage? @rbs width: Integer? @rbs return: Array