shared

package
v0.44.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 26, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalculateConversationHeight added in v0.27.0

func CalculateConversationHeight(totalHeight int) int

Layout calculation utilities

func CalculateInputHeight added in v0.27.0

func CalculateInputHeight(totalHeight int) int

func CalculateStatusHeight added in v0.27.0

func CalculateStatusHeight(totalHeight int) int

func FormatCurrentTokenUsage added in v0.33.2

func FormatCurrentTokenUsage(conversationRepo domain.ConversationRepository) string

FormatCurrentTokenUsage returns current session token usage string

func FormatResponsiveMessage

func FormatResponsiveMessage(content string, width int) string

FormatResponsiveMessage formats a message with responsive text wrapping

func FormatToolCall

func FormatToolCall(toolName string, args map[string]any) string

FormatToolCall formats a tool call for consistent display across the application

func FormatToolCallWithOptions added in v0.33.3

func FormatToolCallWithOptions(toolName string, args map[string]any, expanded bool) string

FormatToolCallWithOptions formats a tool call with options for expansion

func FormatWarning added in v0.27.0

func FormatWarning(message string) string

FormatWarning creates a properly formatted warning message

func GetResponsiveWidth

func GetResponsiveWidth(terminalWidth int) int

GetResponsiveWidth calculates appropriate width based on terminal size

func TruncateText added in v0.29.6

func TruncateText(text string, maxLength int) string

TruncateText truncates text to fit within maxLength, adding "..." if needed

func WrapText

func WrapText(text string, width int) string

WrapText wraps text to fit within the specified width using wordwrap

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

type ApprovalRequestMsg struct {
	Action      string
	Description string
}

ApprovalRequestMsg requests user approval for an action

type ApprovalResponseMsg

type ApprovalResponseMsg struct {
	Approved   bool
	ApproveAll bool
}

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
	GetSelectedShortcut() string
	Hide()
}

AutocompleteInterface defines the interface for autocomplete functionality

type ClearErrorMsg

type ClearErrorMsg struct{}

ClearErrorMsg clears any displayed error

type ClearInputMsg

type ClearInputMsg struct{}

ClearInputMsg clears the input field

type ConversationLineFormatter added in v0.38.0

type ConversationLineFormatter struct {
	// contains filtered or unexported fields
}

ConversationLineFormatter converts conversation entries to text lines

func NewConversationLineFormatter added in v0.38.0

func NewConversationLineFormatter(width int, toolFormatter domain.ToolFormatter) *ConversationLineFormatter

NewConversationLineFormatter creates a new conversation line formatter

func (*ConversationLineFormatter) FormatConversationToLines added in v0.38.0

func (f *ConversationLineFormatter) FormatConversationToLines(conversation []domain.ConversationEntry) []string

FormatConversationToLines converts conversation entries to plain text lines

func (*ConversationLineFormatter) SetWidth added in v0.38.0

func (f *ConversationLineFormatter) SetWidth(width int)

SetWidth updates the formatter width

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

type DebugKeyMsg struct {
	Key     string
	Handler string
}

DebugKeyMsg provides debug information about key presses

type ExitSelectionModeMsg added in v0.38.0

type ExitSelectionModeMsg struct{}

ExitSelectionModeMsg exits text selection mode

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 InitializeTextSelectionMsg added in v0.38.0

type InitializeTextSelectionMsg struct{}

InitializeTextSelectionMsg initializes text selection mode with current conversation

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
	NavigateHistoryUp()
	NavigateHistoryDown()
	IsAutocompleteVisible() bool
	TryHandleAutocomplete(key tea.KeyMsg) (handled bool, completion string)
	AddToHistory(text string) error
	SetTextSelectionMode(enabled bool)
	IsTextSelectionMode() bool
}

InputComponent interface for input handling

type KeyShortcut

type KeyShortcut struct {
	Key         string
	Description string
}

KeyShortcut represents a keyboard shortcut with description

type ModelSelectedMsg

type ModelSelectedMsg struct {
	Model string
}

ModelSelectedMsg indicates model selection

type ResizeMsg

type ResizeMsg struct {
	Width  int
	Height int
}

ResizeMsg handles terminal resize

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 SetInputMsg

type SetInputMsg struct {
	Text string
}

SetInputMsg sets text in the input field

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

type ShowErrorMsg struct {
	Error  string
	Sticky bool // Whether error persists until dismissed
}

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
	SaveCurrentState()
	RestoreSavedState() tea.Cmd
	HasSavedState() bool
}

StatusComponent interface for status display

type StatusProgress added in v0.27.0

type StatusProgress struct {
	Current int
	Total   int
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL