Documentation
¶
Index ¶
- Constants
- Variables
- func CalculateConversationHeight(totalHeight int) int
- func CalculateInputHeight(totalHeight int) int
- func CalculateStatusHeight(totalHeight int) int
- func CreateColoredText(text string, color Color) string
- func CreateDimText(text string) string
- func CreateSeparator(width int, char string) string
- func CreateStrikethroughText(text string) string
- func CreateStyledText(text, colorCode string) string
- func FormatCurrentTokenUsage(conversationRepo domain.ConversationRepository) string
- func FormatResponsiveMessage(content string, width int) string
- func FormatToolCall(toolName string, args map[string]any) string
- func FormatToolResultExpanded(result *domain.ToolExecutionResult) string
- func FormatToolResultExpandedResponsive(result *domain.ToolExecutionResult, terminalWidth int) string
- func FormatToolResultForUI(result *domain.ToolExecutionResult) string
- func FormatToolResultForUIResponsive(result *domain.ToolExecutionResult, terminalWidth int) string
- func FormatWarning(message string) string
- func GetResponsiveWidth(terminalWidth int) int
- func Reset() string
- func RoundedBorder() lipgloss.Border
- func TruncateText(text string, maxLength int) string
- func WrapText(text string, width int) string
- type ApprovalComponent
- type ApprovalRequestMsg
- type ApprovalResponseMsg
- type AutocompleteInterface
- type ClearErrorMsg
- type ClearInputMsg
- type Color
- type CommonStyles
- type ConversationRenderer
- type DebugKeyMsg
- type FileSelectedMsg
- type FileSelectionRequestMsg
- type FocusRequestMsg
- type HelpBarComponent
- type HideHelpBarMsg
- type InputComponent
- type KeyShortcut
- type ModelSelectedMsg
- type ResizeMsg
- type ScrollDirection
- type ScrollRequestMsg
- type SetInputMsg
- type SetStatusMsg
- type SetupFileSelectionMsg
- type ShowErrorMsg
- type StatusComponent
- type StatusProgress
- type StatusType
- type Theme
- type ToggleHelpBarMsg
- type UpdateHistoryMsg
- type UpdateStatusMsg
- type UserInputMsg
Constants ¶
const ( ColorReset = "\033[0m" ColorRed = "\033[38;2;247;118;142m" // #f7768e - soft red for errors ColorGreen = "\033[38;2;158;206;106m" // #9ece6a - green for success ColorBlue = "\033[38;2;122;162;247m" // #7aa2f7 - blue for accent ColorCyan = "\033[38;2;125;207;255m" // #7dcfff - cyan variant ColorMagenta = "\033[38;2;187;154;247m" // #bb9af7 - purple for secondary ColorWhite = "\033[38;2;169;177;214m" // #a9b1d6 - light gray-blue for primary text ColorGray = "\033[38;2;86;95;137m" // #565f89 - dim gray ColorAmber = "\033[38;2;224;175;104m" // #e0af68 - amber for warnings ColorBrightRed = "\033[38;2;247;118;142m" // Same as ColorRed ColorStrikethrough = "\033[9m" ColorDim = "\033[2m" )
ANSI Color Codes - Tokyo Night Theme
const ( LipglossRed = "#f7768e" LipglossGreen = "#9ece6a" LipglossBlue = "#7aa2f7" LipglossCyan = "#7dcfff" LipglossMagenta = "#bb9af7" LipglossWhite = "#a9b1d6" LipglossGray = "#565f89" LipglossAmber = "#e0af68" )
Lipgloss Color Names - Tokyo Night Theme Hex Values
Variables ¶
var ( UserColor = Color{ANSI: ColorBlue, Lipgloss: LipglossBlue} // Blue for user prompts AssistantColor = Color{ANSI: ColorWhite, Lipgloss: LipglossWhite} // Light gray-blue for assistant ErrorColor = Color{ANSI: ColorRed, Lipgloss: LipglossRed} // Soft red for errors SuccessColor = Color{ANSI: ColorGreen, Lipgloss: LipglossGreen} // Green for success StatusColor = Color{ANSI: ColorMagenta, Lipgloss: LipglossMagenta} // Purple for status/info AccentColor = Color{ANSI: ColorBlue, Lipgloss: LipglossBlue} // Blue for accents DimColor = Color{ANSI: ColorGray, Lipgloss: LipglossGray} // Dim gray BorderColor = Color{ANSI: ColorGray, Lipgloss: LipglossGray} // Gray for borders HeaderColor = Color{ANSI: ColorBlue, Lipgloss: LipglossBlue} // Blue for headers SpinnerColor = Color{ANSI: ColorMagenta, Lipgloss: LipglossMagenta} // Purple for spinners DiffAddColor = Color{ANSI: ColorGreen, Lipgloss: LipglossGreen} // Green for additions DiffRemoveColor = Color{ANSI: ColorRed, Lipgloss: LipglossRed} // Red for removals WarningColor = Color{ANSI: ColorAmber, Lipgloss: LipglossAmber} // Amber for warnings )
Predefined colors for consistent theming - Tokyo Night Theme
Functions ¶
func CalculateConversationHeight ¶ added in v0.27.0
Layout calculation utilities
func CalculateInputHeight ¶ added in v0.27.0
func CalculateStatusHeight ¶ added in v0.27.0
func CreateColoredText ¶
CreateColoredText creates colored text with automatic reset
func CreateDimText ¶ added in v0.20.0
CreateDimText creates text with dim/faint styling
func CreateSeparator ¶
CreateSeparator creates a separator line with the given width and character
func CreateStrikethroughText ¶ added in v0.20.0
CreateStrikethroughText creates text with strikethrough styling
func CreateStyledText ¶
CreateStyledText creates text with color and reset, commonly used pattern
func FormatCurrentTokenUsage ¶ added in v0.33.2
func FormatCurrentTokenUsage(conversationRepo domain.ConversationRepository) string
FormatCurrentTokenUsage returns current session token usage string
func FormatResponsiveMessage ¶
FormatResponsiveMessage formats a message with responsive text wrapping
func FormatToolCall ¶
FormatToolCall formats a tool call for consistent display across the application
func FormatToolResultExpanded ¶
func FormatToolResultExpanded(result *domain.ToolExecutionResult) string
FormatToolResultExpanded formats a tool execution result with full details This is shown when user presses Ctrl+R to expand
func FormatToolResultExpandedResponsive ¶
func FormatToolResultExpandedResponsive(result *domain.ToolExecutionResult, terminalWidth int) string
FormatToolResultExpandedResponsive formats a tool execution result with full details and responsive width
func FormatToolResultForUI ¶
func FormatToolResultForUI(result *domain.ToolExecutionResult) string
FormatToolResultForUI formats tool execution results specifically for UI display
func FormatToolResultForUIResponsive ¶
func FormatToolResultForUIResponsive(result *domain.ToolExecutionResult, terminalWidth int) string
FormatToolResultForUIResponsive formats tool execution results for UI display with responsive width
func FormatWarning ¶ added in v0.27.0
FormatWarning creates a properly formatted warning message
func GetResponsiveWidth ¶
GetResponsiveWidth calculates appropriate width based on terminal size
func RoundedBorder ¶ added in v0.33.1
RoundedBorder returns a rounded border style for lipgloss
func TruncateText ¶ added in v0.29.6
TruncateText truncates text to fit within maxLength, adding "..." if needed
Types ¶
type ApprovalComponent ¶ added in v0.27.0
type ApprovalComponent interface {
SetWidth(width int)
SetHeight(height int)
Render(toolExecution *domain.ToolExecutionSession, selectedIndex int) string
}
ApprovalComponent interface for approval display
type ApprovalRequestMsg ¶
ApprovalRequestMsg requests user approval for an action
type ApprovalResponseMsg ¶
ApprovalResponseMsg provides approval response
type AutocompleteInterface ¶
type AutocompleteInterface interface {
Update(inputText string, cursorPos int)
HandleKey(key tea.KeyMsg) (bool, string)
IsVisible() bool
SetWidth(width int)
Render() string
GetSelectedCommand() string
Hide()
}
AutocompleteInterface defines the interface for autocomplete functionality
type Color ¶
Color represents a color that can be used in both ANSI and Lipgloss contexts
func (Color) GetLipglossColor ¶
GetLipglossColor returns a lipgloss color for the given Color
type CommonStyles ¶
type CommonStyles struct {
Header lipgloss.Style
Border lipgloss.Style
Separator lipgloss.Style
Input lipgloss.Style
Status lipgloss.Style
HelpBar lipgloss.Style
Conversation lipgloss.Style
BashIndicator lipgloss.Style
ModelIndicator lipgloss.Style
PlaceholderText lipgloss.Style
}
CommonStyles contains reusable lipgloss styles
func NewCommonStyles ¶
func NewCommonStyles() *CommonStyles
NewCommonStyles creates a new set of common styles with consistent theming
type ConversationRenderer ¶ added in v0.27.0
type ConversationRenderer interface {
SetConversation([]domain.ConversationEntry)
GetScrollOffset() int
CanScrollUp() bool
CanScrollDown() bool
ToggleToolResultExpansion(index int)
ToggleAllToolResultsExpansion()
IsToolResultExpanded(index int) bool
SetWidth(width int)
SetHeight(height int)
Render() string
}
ConversationRenderer interface for conversation display
type DebugKeyMsg ¶
DebugKeyMsg provides debug information about key presses
type FileSelectedMsg ¶
type FileSelectedMsg struct {
FilePath string
}
FileSelectedMsg indicates file selection
type FileSelectionRequestMsg ¶
type FileSelectionRequestMsg struct{}
FileSelectionRequestMsg requests file selection UI
type FocusRequestMsg ¶
type FocusRequestMsg struct {
ComponentID string
}
FocusRequestMsg requests focus change
type HelpBarComponent ¶ added in v0.27.0
type HelpBarComponent interface {
SetShortcuts(shortcuts []KeyShortcut)
IsEnabled() bool
SetEnabled(enabled bool)
SetWidth(width int)
SetHeight(height int)
Render() string
}
HelpBarComponent interface for help bar
type HideHelpBarMsg ¶
type HideHelpBarMsg struct{}
HideHelpBarMsg hides the help bar when typing other characters
type InputComponent ¶ added in v0.27.0
type InputComponent interface {
GetInput() string
ClearInput()
SetPlaceholder(text string)
GetCursor() int
SetCursor(position int)
SetText(text string)
SetWidth(width int)
SetHeight(height int)
Render() string
HandleKey(key tea.KeyMsg) (tea.Model, tea.Cmd)
CanHandle(key tea.KeyMsg) bool
IsAutocompleteVisible() bool
AddToHistory(text string) error
}
InputComponent interface for input handling
type KeyShortcut ¶
KeyShortcut represents a keyboard shortcut with description
type ModelSelectedMsg ¶
type ModelSelectedMsg struct {
Model string
}
ModelSelectedMsg indicates model selection
type ScrollDirection ¶
type ScrollDirection int
ScrollDirection represents different scroll directions
const ( ScrollUp ScrollDirection = iota ScrollDown ScrollToTop ScrollToBottom )
type ScrollRequestMsg ¶
type ScrollRequestMsg struct {
ComponentID string
Direction ScrollDirection
Amount int
}
ScrollRequestMsg requests scrolling in a component
type SetStatusMsg ¶
type SetStatusMsg struct {
Message string
Spinner bool
TokenUsage string
StatusType StatusType
Progress *StatusProgress
}
SetStatusMsg sets a status message
type SetupFileSelectionMsg ¶ added in v0.27.0
type SetupFileSelectionMsg struct {
Files []string
}
SetupFileSelectionMsg sets up file selection state with files
type ShowErrorMsg ¶
ShowErrorMsg displays an error message
type StatusComponent ¶ added in v0.27.0
type StatusComponent interface {
ShowStatus(message string)
ShowError(message string)
ShowSpinner(message string)
ClearStatus()
IsShowingError() bool
IsShowingSpinner() bool
SetTokenUsage(usage string)
SetWidth(width int)
SetHeight(height int)
Render() string
}
StatusComponent interface for status display
type StatusProgress ¶ added in v0.27.0
StatusProgress represents progress information for status messages
type StatusType ¶ added in v0.27.0
type StatusType int
StatusType represents different types of status messages
const ( StatusDefault StatusType = iota StatusThinking StatusGenerating StatusWorking StatusProcessing StatusPreparing )
type Theme ¶ added in v0.27.0
type Theme interface {
GetUserColor() string
GetAssistantColor() string
GetErrorColor() string
GetStatusColor() string
GetAccentColor() string
GetDimColor() string
GetBorderColor() string
GetDiffAddColor() string
GetDiffRemoveColor() string
}
Theme interface for UI theming
type ToggleHelpBarMsg ¶
type ToggleHelpBarMsg struct{}
ToggleHelpBarMsg toggles the help bar visibility
type UpdateHistoryMsg ¶
type UpdateHistoryMsg struct {
History []domain.ConversationEntry
}
UpdateHistoryMsg updates the conversation history display
type UpdateStatusMsg ¶ added in v0.27.0
type UpdateStatusMsg struct {
Message string
StatusType StatusType
}
UpdateStatusMsg updates an existing status message without resetting timer
type UserInputMsg ¶
type UserInputMsg struct {
Content string
}
UserInputMsg represents user input submission