components

package
v0.120.1 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2026 License: Apache-2.0 Imports: 55 Imported by: 0

Documentation

Index

Constants

View Source
const AutoCollapseDelay = 3 * time.Second

AutoCollapseDelay is the duration to wait before auto-collapsing after an update

Variables

This section is empty.

Functions

func ScheduleAutoCollapse added in v0.63.1

func ScheduleAutoCollapse() tea.Cmd

ScheduleAutoCollapse returns a command that will send AutoCollapseTickMsg after the delay

Types

type ApplicationViewRenderer added in v0.27.0

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

ApplicationViewRenderer handles rendering of different application views

func NewApplicationViewRenderer added in v0.27.0

func NewApplicationViewRenderer(styleProvider *styles.Provider) *ApplicationViewRenderer

NewApplicationViewRenderer creates a new application view renderer

func (*ApplicationViewRenderer) RenderChatInterface added in v0.27.0

func (r *ApplicationViewRenderer) RenderChatInterface(
	data ChatInterfaceData,
	conversationView ui.ConversationRenderer,
	inputView ui.InputComponent,
	autocomplete ui.AutocompleteComponent,
	inputStatusBar ui.InputStatusBarComponent,
	statusView ui.StatusComponent,
	modeIndicator *ModeIndicator,
	helpBar ui.HelpBarComponent,
	queueBoxView *QueueBoxView,
	todoBoxView *TodoBoxView,
	approvalBoxView *ApprovalBoxView,
) string

RenderChatInterface renders the main chat interface

func (*ApplicationViewRenderer) RenderFileSelection added in v0.27.0

func (r *ApplicationViewRenderer) RenderFileSelection(
	data FileSelectionData,
	fileSelectionView *FileSelectionView,
) string

RenderFileSelection renders the file selection view

type ApprovalBoxView added in v0.99.2

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

func NewApprovalBoxView added in v0.99.2

func NewApprovalBoxView(styleProvider *styles.Provider, stateManager domain.StateManager) *ApprovalBoxView

func (*ApprovalBoxView) Init added in v0.99.2

func (av *ApprovalBoxView) Init() tea.Cmd

func (*ApprovalBoxView) Render added in v0.99.2

func (av *ApprovalBoxView) Render() string

func (*ApprovalBoxView) SetHeight added in v0.99.2

func (av *ApprovalBoxView) SetHeight(height int)

func (*ApprovalBoxView) SetWidth added in v0.99.2

func (av *ApprovalBoxView) SetWidth(width int)

func (*ApprovalBoxView) Update added in v0.99.2

func (av *ApprovalBoxView) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*ApprovalBoxView) View added in v0.99.2

func (av *ApprovalBoxView) View() tea.View

type AutoCollapseTickMsg added in v0.63.1

type AutoCollapseTickMsg struct{}

AutoCollapseTickMsg is sent to trigger auto-collapse check

type BackgroundTaskDisplay added in v0.111.0

type BackgroundTaskDisplay struct {
	TaskID             string
	AgentName          string
	AgentURL           string
	Model              string
	State              string
	Message            string
	UsageJSON          string
	ExecutionStatsJSON string
	ErrorMsg           string
	IsTerminal         bool
	StartedAt          time.Time
	CompletedAt        time.Time
}

BackgroundTaskDisplay tracks the live state of a remote A2A task for inline visualisation under the originating A2A_SubmitTask tool result. It is UI-only ephemeral state and is not persisted with the conversation.

type BackgroundTaskRemovalTickMsg added in v0.111.0

type BackgroundTaskRemovalTickMsg struct {
	TaskID string
}

BackgroundTaskRemovalTickMsg is dispatched backgroundTaskRemovalDelay after a task reaches a terminal state to remove its inline indicator from the view.

type ChatInterfaceData added in v0.27.0

type ChatInterfaceData struct {
	Width          int
	Height         int
	ToolExecution  *domain.ToolExecutionSession
	CurrentView    domain.ViewState
	QueuedMessages []domain.QueuedMessage
}

ChatInterfaceData holds the data needed to render the chat interface

type ConversationSelectorImpl added in v0.45.0

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

ConversationSelectorImpl implements conversation selection UI

func NewConversationSelector added in v0.45.0

func NewConversationSelector(repo shortcuts.PersistentConversationRepository, styleProvider *styles.Provider) *ConversationSelectorImpl

NewConversationSelector creates a new conversation selector

func (*ConversationSelectorImpl) GetSelected added in v0.45.0

GetSelected returns the selected conversation

func (*ConversationSelectorImpl) Init added in v0.45.0

func (c *ConversationSelectorImpl) Init() tea.Cmd

func (*ConversationSelectorImpl) IsCancelled added in v0.45.0

func (c *ConversationSelectorImpl) IsCancelled() bool

IsCancelled returns true if selection was cancelled

func (*ConversationSelectorImpl) IsSelected added in v0.45.0

func (c *ConversationSelectorImpl) IsSelected() bool

IsSelected returns true if a conversation was selected

func (*ConversationSelectorImpl) NeedsInitialization added in v0.86.0

func (c *ConversationSelectorImpl) NeedsInitialization() bool

NeedsInitialization returns true if the component needs to load data

func (*ConversationSelectorImpl) Reset added in v0.45.0

func (c *ConversationSelectorImpl) Reset()

Reset resets the conversation selector state for reuse

func (*ConversationSelectorImpl) SetHeight added in v0.45.0

func (c *ConversationSelectorImpl) SetHeight(height int)

SetHeight sets the height of the conversation selector

func (*ConversationSelectorImpl) SetWidth added in v0.45.0

func (c *ConversationSelectorImpl) SetWidth(width int)

SetWidth sets the width of the conversation selector

func (*ConversationSelectorImpl) Update added in v0.45.0

func (c *ConversationSelectorImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*ConversationSelectorImpl) View added in v0.45.0

func (c *ConversationSelectorImpl) View() tea.View

type ConversationView

type ConversationView struct {
	Viewport viewport.Model
	// contains filtered or unexported fields
}

ConversationView handles the chat conversation display

func NewConversationView

func NewConversationView(styleProvider *styles.Provider) *ConversationView

func (*ConversationView) BackgroundTasksBarHeight added in v0.111.0

func (cv *ConversationView) BackgroundTasksBarHeight() int

BackgroundTasksBarHeight returns the line count the sticky indicator will occupy, for use in the parent layout's height budgeting. Terminal states render across multiple lines (header + usage + execution_stats), so this counts the actual rendered newlines rather than just the task count.

func (*ConversationView) CanScrollDown

func (cv *ConversationView) CanScrollDown() bool

func (*ConversationView) CanScrollUp

func (cv *ConversationView) CanScrollUp() bool

func (*ConversationView) EnterMessageHistoryMode added in v0.91.0

func (cv *ConversationView) EnterMessageHistoryMode(snapshots []domain.MessageSnapshot)

EnterMessageHistoryMode switches the conversation view to message history navigation mode

func (*ConversationView) ExitMessageHistoryMode added in v0.91.0

func (cv *ConversationView) ExitMessageHistoryMode()

ExitMessageHistoryMode returns the conversation view to normal mode

func (*ConversationView) GetPlainTextLines added in v0.37.0

func (cv *ConversationView) GetPlainTextLines() []string

GetPlainTextLines returns the conversation as plain text lines for selection mode This returns the actual rendered content that was displayed in the viewport, preserving the same text wrapping and formatting

func (*ConversationView) GetScrollOffset

func (cv *ConversationView) GetScrollOffset() int

func (*ConversationView) GetSelectedMessageIndex added in v0.91.0

func (cv *ConversationView) GetSelectedMessageIndex() int

GetSelectedMessageIndex returns the conversation index of the selected message

func (*ConversationView) GetSelectedMessageSnapshot added in v0.92.0

func (cv *ConversationView) GetSelectedMessageSnapshot() *domain.MessageSnapshot

GetSelectedMessageSnapshot returns the full snapshot of the selected message

func (*ConversationView) HasBackgroundTasks added in v0.111.0

func (cv *ConversationView) HasBackgroundTasks() bool

HasBackgroundTasks reports whether there is at least one tracked background task to render in the sticky indicator bar.

func (*ConversationView) Init

func (cv *ConversationView) Init() tea.Cmd

Bubble Tea interface

func (*ConversationView) IsInMessageHistoryMode added in v0.91.0

func (cv *ConversationView) IsInMessageHistoryMode() bool

IsInMessageHistoryMode returns true if currently in message history navigation mode

func (*ConversationView) IsRawFormat added in v0.61.0

func (cv *ConversationView) IsRawFormat() bool

IsRawFormat returns true if raw format (no markdown rendering) is enabled

func (*ConversationView) IsThinkingExpanded added in v0.97.0

func (cv *ConversationView) IsThinkingExpanded(index int) bool

func (*ConversationView) IsToolResultExpanded

func (cv *ConversationView) IsToolResultExpanded(index int) bool

IsToolResultExpanded returns the effective expansion of a tool result: an explicit user choice (set via ctrl+o or a per-entry toggle) if present, otherwise the per-tool default from defaultExpandedTools.

func (*ConversationView) NavigateHistoryDown added in v0.91.0

func (cv *ConversationView) NavigateHistoryDown()

NavigateHistoryDown moves the selection down in message history

func (*ConversationView) NavigateHistoryUp added in v0.91.0

func (cv *ConversationView) NavigateHistoryUp()

NavigateHistoryUp moves the selection up in message history

func (*ConversationView) RefreshTheme added in v0.61.0

func (cv *ConversationView) RefreshTheme()

RefreshTheme rebuilds the markdown renderer with current theme colors

func (*ConversationView) Render

func (cv *ConversationView) Render() string

func (*ConversationView) RenderBackgroundTasksBar added in v0.111.0

func (cv *ConversationView) RenderBackgroundTasksBar(width int) string

RenderBackgroundTasksBar returns the sticky multi-line indicator block rendered above the input area. Each tracked task gets one line. Order is stable (lexicographic by TaskID) so concurrent tasks don't jitter between renders. Returns "" when there are no tasks to show. The width controls non-terminal truncation of the model= segment; pass 0 to disable truncation entirely (used in some tests).

func (*ConversationView) ResetUserScroll added in v0.63.1

func (cv *ConversationView) ResetUserScroll()

ResetUserScroll resets the user scroll state, enabling auto-scroll to bottom. Call this when a new message is sent to ensure the user sees the latest response.

func (*ConversationView) SetAgentModelResolver added in v0.112.0

func (cv *ConversationView) SetAgentModelResolver(resolver func(url string) string)

SetAgentModelResolver injects a URL→model lookup used when rendering the background-agent indicator's "model=" segment. Pass nil to omit that segment (the visual then drops "model=" cleanly).

func (*ConversationView) SetAgentNameResolver added in v0.111.0

func (cv *ConversationView) SetAgentNameResolver(resolver func(url string) string)

SetAgentNameResolver injects a URL→friendly-name lookup used when rendering background-agent indicators. Pass nil to disable resolution (the visual then falls back to the agent URL).

func (*ConversationView) SetConfigPath added in v0.39.0

func (cv *ConversationView) SetConfigPath(configPath string)

SetConfigPath sets the config path for the welcome message

func (*ConversationView) SetConversation

func (cv *ConversationView) SetConversation(conversation []domain.ConversationEntry)

func (*ConversationView) SetDefaultExpandedTools added in v0.118.0

func (cv *ConversationView) SetDefaultExpandedTools(names map[string]bool)

SetDefaultExpandedTools overrides which tool names render expanded by default.

func (*ConversationView) SetHeight

func (cv *ConversationView) SetHeight(height int)

func (*ConversationView) SetKeyHintFormatter added in v0.77.0

func (cv *ConversationView) SetKeyHintFormatter(formatter *hints.Formatter)

SetKeyHintFormatter sets the key hint formatter for displaying keybinding hints

func (*ConversationView) SetStateManager added in v0.68.0

func (cv *ConversationView) SetStateManager(stateManager domain.StateManager)

SetStateManager sets the state manager for accessing plan approval state

func (*ConversationView) SetToolCallRenderer added in v0.49.0

func (cv *ConversationView) SetToolCallRenderer(renderer *ToolCallRenderer)

SetToolCallRenderer sets the tool call renderer for displaying real-time tool execution status

func (*ConversationView) SetToolFormatter added in v0.33.4

func (cv *ConversationView) SetToolFormatter(formatter domain.ToolFormatter)

SetToolFormatter sets the tool formatter for this conversation view

func (*ConversationView) SetVersionInfo added in v0.85.0

func (cv *ConversationView) SetVersionInfo(info domain.VersionInfo)

SetVersionInfo sets the version information for the welcome message

func (*ConversationView) SetWidth

func (cv *ConversationView) SetWidth(width int)

func (*ConversationView) ToggleAllThinkingExpansion added in v0.97.0

func (cv *ConversationView) ToggleAllThinkingExpansion()

func (*ConversationView) ToggleAllToolResultsExpansion added in v0.26.0

func (cv *ConversationView) ToggleAllToolResultsExpansion()

func (*ConversationView) ToggleRawFormat added in v0.61.0

func (cv *ConversationView) ToggleRawFormat()

ToggleRawFormat toggles between raw and rendered markdown display

func (*ConversationView) ToggleToolResultExpansion

func (cv *ConversationView) ToggleToolResultExpansion(index int)

func (*ConversationView) Update

func (cv *ConversationView) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*ConversationView) View

func (cv *ConversationView) View() tea.View

type DiffInfo added in v0.38.0

type DiffInfo struct {
	FilePath   string
	OldContent string
	NewContent string
	Title      string
}

DiffInfo carries the inputs for a single diff render.

type DiffRenderer added in v0.27.0

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

DiffRenderer is a thin adapter that preserves the legacy public surface (RenderEditToolArguments / RenderMultiEditToolArguments / RenderWriteToolArguments / RenderDiff / RenderColoredDiff) and delegates the actual diff rendering to the diffview package. The internal renderer there uses go-udiff for a correct LCS-based diff algorithm and optional chroma syntax highlighting.

func NewDiffRenderer added in v0.27.0

func NewDiffRenderer(styleProvider *styles.Provider) *DiffRenderer

NewDiffRenderer creates a new diff renderer with colored output.

func NewToolDiffRenderer added in v0.38.0

func NewToolDiffRenderer(styleProvider *styles.Provider) *DiffRenderer

NewToolDiffRenderer creates a tool diff renderer (alias for NewDiffRenderer).

func (*DiffRenderer) RenderColoredDiff added in v0.27.0

func (d *DiffRenderer) RenderColoredDiff(oldContent, newContent string) string

RenderColoredDiff is a minimal compatibility wrapper that renders a simple diff with a placeholder title and file path.

func (*DiffRenderer) RenderDiff added in v0.38.0

func (d *DiffRenderer) RenderDiff(info DiffInfo) string

RenderDiff renders a full diff between OldContent and NewContent with a title, file header with addition/removal stats, and the underlying DiffView body. Empty contents are handled gracefully (new file, deleted file).

func (*DiffRenderer) RenderEditToolArguments added in v0.27.0

func (d *DiffRenderer) RenderEditToolArguments(args map[string]any) string

RenderEditToolArguments renders Edit tool arguments as a snippet diff.

func (*DiffRenderer) RenderMultiEditToolArguments added in v0.27.0

func (d *DiffRenderer) RenderMultiEditToolArguments(args map[string]any) string

RenderMultiEditToolArguments renders MultiEdit tool arguments as a sequence of snippet diffs (one per edit).

func (*DiffRenderer) RenderWriteToolArguments added in v0.38.0

func (d *DiffRenderer) RenderWriteToolArguments(args map[string]any) string

RenderWriteToolArguments renders Write tool arguments. If the target file already exists, the rendered output is a full diff against the new content; otherwise it's a NEW FILE badge plus a numbered preview of the first lines.

func (*DiffRenderer) SetWidth added in v0.118.0

func (d *DiffRenderer) SetWidth(w int) *DiffRenderer

SetWidth tells the renderer the available terminal width so the underlying DiffView can pick a width-adaptive layout (split when >= 160 cols).

type DiffStats added in v0.56.0

type DiffStats struct {
	LinesAdded   int
	LinesRemoved int
	LinesChanged int
}

DiffStats represents statistics about a diff.

type DiffViewerImpl added in v0.118.0

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

DiffViewerImpl is the VS Code-style "Changes" side panel: a left tree of changed files (grouped Staged/Changes → folder → file) plus a scrollable diff pane for the selected file. It owns its full [sidebar | divider | diff] region; the chat input row is composed beneath the diff pane by the caller.

func NewDiffViewer added in v0.118.0

func NewDiffViewer(source gitdiff.Source, styleProvider *styles.Provider, themeService domain.ThemeService, kb config.KeybindingsConfig) *DiffViewerImpl

NewDiffViewer creates a changes panel backed by the given git source.

func (*DiffViewerImpl) HintText added in v0.118.0

func (t *DiffViewerImpl) HintText() string

HintText returns the footer hint for the current mode (tree vs patch).

func (*DiffViewerImpl) Init added in v0.118.0

func (t *DiffViewerImpl) Init() tea.Cmd

func (*DiffViewerImpl) IsCancelled added in v0.118.0

func (t *DiffViewerImpl) IsCancelled() bool

func (*DiffViewerImpl) IsDone added in v0.118.0

func (t *DiffViewerImpl) IsDone() bool

func (*DiffViewerImpl) PaneWidth added in v0.118.0

func (t *DiffViewerImpl) PaneWidth() int

PaneWidth returns the current diff-pane width (after SetWidth), so the caller can size the input row that sits beneath the diff pane.

func (*DiffViewerImpl) Render added in v0.118.0

func (t *DiffViewerImpl) Render(inputRow string) string

Render lays out the full region: a full-height sidebar and divider on the left, and on the right the diff pane with the (already-rendered) input row stacked beneath it - so the input visibly shifts right of the sidebar. Pass "" for inputRow to render the diff pane at full height (no input).

func (*DiffViewerImpl) Reset added in v0.118.0

func (t *DiffViewerImpl) Reset()

Reset clears state so the panel can be reused on a later open.

func (*DiffViewerImpl) SetHeight added in v0.118.0

func (t *DiffViewerImpl) SetHeight(h int)

func (*DiffViewerImpl) SetWidth added in v0.118.0

func (t *DiffViewerImpl) SetWidth(w int)

func (*DiffViewerImpl) Update added in v0.118.0

func (t *DiffViewerImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*DiffViewerImpl) View added in v0.118.0

func (t *DiffViewerImpl) View() tea.View

View satisfies tea.Model. The app composes the real layout via Render (which stacks the input beneath the diff pane); this is a standalone fallback.

type FileExplorerImpl added in v0.118.0

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

FileExplorerImpl is the VS Code-style file explorer side panel: a left tree of the working directory (lazy, collapsible, .gitignore-aware) plus a scrollable, syntax-highlighted preview of the selected file. A `/` fuzzy finder jumps to any file; `v` opens the selection in the user's real editor. It owns its full [sidebar | divider | pane] region; the chat input is composed beneath the pane.

func NewFileExplorer added in v0.118.0

func NewFileExplorer(root string, styleProvider *styles.Provider, themeService domain.ThemeService, kb config.KeybindingsConfig) *FileExplorerImpl

NewFileExplorer creates an explorer rooted at the given working directory.

func (*FileExplorerImpl) HintText added in v0.118.0

func (t *FileExplorerImpl) HintText() string

HintText returns the footer hint for the current mode.

func (*FileExplorerImpl) Init added in v0.118.0

func (t *FileExplorerImpl) Init() tea.Cmd

func (*FileExplorerImpl) IsCancelled added in v0.118.0

func (t *FileExplorerImpl) IsCancelled() bool

func (*FileExplorerImpl) IsDone added in v0.118.0

func (t *FileExplorerImpl) IsDone() bool

func (*FileExplorerImpl) PaneWidth added in v0.118.0

func (t *FileExplorerImpl) PaneWidth() int

PaneWidth returns the current preview-pane width so the caller can size the input row that sits beneath the pane.

func (*FileExplorerImpl) Render added in v0.118.0

func (t *FileExplorerImpl) Render(inputRow string) string

Render lays out the full region: a full-height sidebar and divider on the left, and on the right the preview pane with the (already-rendered) input row stacked beneath it. Pass "" for inputRow to render the pane at full height.

func (*FileExplorerImpl) Reset added in v0.118.0

func (t *FileExplorerImpl) Reset()

Reset clears state so the panel can be reused on a later open.

func (*FileExplorerImpl) SetHeight added in v0.118.0

func (t *FileExplorerImpl) SetHeight(h int)

func (*FileExplorerImpl) SetWidth added in v0.118.0

func (t *FileExplorerImpl) SetWidth(w int)

func (*FileExplorerImpl) Update added in v0.118.0

func (t *FileExplorerImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*FileExplorerImpl) View added in v0.118.0

func (t *FileExplorerImpl) View() tea.View

View satisfies tea.Model. The app composes the real layout via Render.

type FileSelectionAction added in v0.27.0

type FileSelectionAction int

FileSelectionAction represents the type of action taken in file selection

const (
	FileSelectionActionNone FileSelectionAction = iota
	FileSelectionActionSelect
	FileSelectionActionCancel
)

type FileSelectionData added in v0.27.0

type FileSelectionData struct {
	Width         int
	Files         []string
	SearchQuery   string
	SelectedIndex int
}

FileSelectionData holds the data needed to render the file selection view

type FileSelectionHandler added in v0.27.0

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

FileSelectionHandler handles file selection logic and state management

func NewFileSelectionHandler added in v0.27.0

func NewFileSelectionHandler(styleProvider *styles.Provider) *FileSelectionHandler

NewFileSelectionHandler creates a new file selection handler

func (*FileSelectionHandler) CreateStatusMessage added in v0.27.0

func (h *FileSelectionHandler) CreateStatusMessage(action FileSelectionAction, selectedFile string) tea.Cmd

CreateStatusMessage creates appropriate status messages for file selection actions

func (*FileSelectionHandler) HandleKeyEvent added in v0.27.0

func (h *FileSelectionHandler) HandleKeyEvent(
	keyMsg tea.KeyMsg,
	files []string,
	searchQuery string,
	selectedIndex int,
) (newSearchQuery string, newSelectedIndex int, action FileSelectionAction, selectedFile string)

HandleKeyEvent processes key events for file selection

func (*FileSelectionHandler) RenderFileSelection added in v0.27.0

func (h *FileSelectionHandler) RenderFileSelection(data FileSelectionData) string

RenderFileSelection renders the file selection view

func (*FileSelectionHandler) UpdateInputWithSelectedFile added in v0.27.0

func (h *FileSelectionHandler) UpdateInputWithSelectedFile(currentInput string, cursor int, selectedFile string) (newInput string, newCursor int)

UpdateInputWithSelectedFile updates input text with the selected file

type FileSelectionView added in v0.27.0

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

func NewFileSelectionView added in v0.27.0

func NewFileSelectionView(styleProvider *styles.Provider) *FileSelectionView

func (*FileSelectionView) RenderView added in v0.27.0

func (f *FileSelectionView) RenderView(allFiles []string, searchQuery string, selectedIndex int) string

func (*FileSelectionView) SetWidth added in v0.27.0

func (f *FileSelectionView) SetWidth(width int)

type HelpBar

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

HelpBar displays keyboard shortcuts at the bottom of the screen

func NewHelpBar

func NewHelpBar(styleProvider *styles.Provider) *HelpBar

func (*HelpBar) Init

func (hb *HelpBar) Init() tea.Cmd

Bubble Tea interface

func (*HelpBar) IsEnabled

func (hb *HelpBar) IsEnabled() bool

func (*HelpBar) Render

func (hb *HelpBar) Render() string

Render draws the shortcuts as a multi-column cheat sheet using bubbles/v2/help, which handles column layout, key/description alignment, and width-aware truncation. Colours follow the active theme.

func (*HelpBar) SetEnabled

func (hb *HelpBar) SetEnabled(enabled bool)

func (*HelpBar) SetHeight

func (hb *HelpBar) SetHeight(height int)

func (*HelpBar) SetShortcuts

func (hb *HelpBar) SetShortcuts(shortcuts []ui.KeyShortcut)

func (*HelpBar) SetWidth

func (hb *HelpBar) SetWidth(width int)

func (*HelpBar) Update

func (hb *HelpBar) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*HelpBar) View

func (hb *HelpBar) View() tea.View

type HelpCommand added in v0.118.0

type HelpCommand struct {
	Name        string
	Description string
}

HelpCommand is a single slash-command row in the help overlay.

type HelpViewImpl added in v0.118.0

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

HelpViewImpl is a full-screen, scrollable overlay documenting every available slash command and keybinding in two lipgloss tables. Both tables are sized to the terminal width - long descriptions wrap rather than truncate - and the whole view lives inside a viewport, so every row stays reachable even on a narrow or short terminal. It is read-only: esc/q returns to the chat.

func NewHelpView added in v0.118.0

func NewHelpView(themeService domain.ThemeService, styleProvider *styles.Provider) *HelpViewImpl

NewHelpView creates a new help overlay component.

func (*HelpViewImpl) Init added in v0.118.0

func (h *HelpViewImpl) Init() tea.Cmd

func (*HelpViewImpl) IsCancelled added in v0.118.0

func (h *HelpViewImpl) IsCancelled() bool

IsCancelled reports whether the user dismissed the help overlay.

func (*HelpViewImpl) Reset added in v0.118.0

func (h *HelpViewImpl) Reset()

Reset clears the cancelled flag and scroll position for reuse.

func (*HelpViewImpl) SetContent added in v0.118.0

func (h *HelpViewImpl) SetContent(commands []HelpCommand, keybindings []ui.KeyShortcut)

SetContent loads the rows to display, rebuilds the rendered tables and resets the scroll position to the top.

func (*HelpViewImpl) SetHeight added in v0.118.0

func (h *HelpViewImpl) SetHeight(height int)

SetHeight sets the overlay height, reserving the bottom two lines for the footer hint. The rendered tables depend only on width, so changing the height just resizes the viewport window - no rebuild required.

func (*HelpViewImpl) SetWidth added in v0.118.0

func (h *HelpViewImpl) SetWidth(width int)

SetWidth sets the overlay width and rebuilds the tables to fit. Rebuilding is skipped when the width is unchanged so steady-state renders stay cheap.

func (*HelpViewImpl) Update added in v0.118.0

func (h *HelpViewImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*HelpViewImpl) View added in v0.118.0

func (h *HelpViewImpl) View() tea.View

type InitGithubActionView added in v0.69.19

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

InitGithubActionView drives the GitHub App setup wizard with huh forms. The flow is split across two forms so that the browser can be opened between the "create a new app?" answer and the App ID prompt: confirm -> (open browser when creating new) -> App ID -> private key (skipped when org secrets already exist for that App ID).

func NewInitGithubActionView added in v0.69.19

func NewInitGithubActionView(styleProvider *styles.Provider) *InitGithubActionView

NewInitGithubActionView creates a new GitHub App setup wizard.

func (*InitGithubActionView) GetInstallationURL added in v0.69.19

func (v *InitGithubActionView) GetInstallationURL(repoOwner, repoName string) string

GetInstallationURL returns the URL to install the GitHub App on a repository

func (*InitGithubActionView) GetResult added in v0.69.19

func (v *InitGithubActionView) GetResult() (appID, privateKeyPath string, err error)

GetResult returns the wizard result.

func (*InitGithubActionView) Init added in v0.69.19

func (v *InitGithubActionView) Init() tea.Cmd

func (*InitGithubActionView) IsCancelled added in v0.69.19

func (v *InitGithubActionView) IsCancelled() bool

IsCancelled returns whether the wizard was cancelled.

func (*InitGithubActionView) IsDone added in v0.69.19

func (v *InitGithubActionView) IsDone() bool

IsDone returns whether the wizard is complete.

func (*InitGithubActionView) Reset added in v0.69.19

func (v *InitGithubActionView) Reset()

Reset resets the view state for reuse.

func (*InitGithubActionView) SetHeight added in v0.69.19

func (v *InitGithubActionView) SetHeight(height int)

SetHeight sets the height of the view.

func (*InitGithubActionView) SetRepositoryInfo added in v0.69.19

func (v *InitGithubActionView) SetRepositoryInfo(owner string, isOrg bool)

SetRepositoryInfo sets the repository owner and whether it's an org.

func (*InitGithubActionView) SetSecretsExistChecker added in v0.69.19

func (v *InitGithubActionView) SetSecretsExistChecker(checker func(appID string) bool)

SetSecretsExistChecker sets the callback to check if org secrets exist.

func (*InitGithubActionView) SetWidth added in v0.69.19

func (v *InitGithubActionView) SetWidth(width int)

SetWidth sets the width of the view.

func (*InitGithubActionView) Update added in v0.69.19

func (v *InitGithubActionView) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*InitGithubActionView) View added in v0.69.19

func (v *InitGithubActionView) View() tea.View

type InputStatusBar added in v0.76.2

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

InputStatusBar displays input status information like model, theme, agents

func NewInputStatusBar added in v0.76.2

func NewInputStatusBar(styleProvider *styles.Provider) *InputStatusBar

NewInputStatusBar creates a new input status bar

func (*InputStatusBar) Init added in v0.76.2

func (isb *InputStatusBar) Init() tea.Cmd

Bubble Tea interface

func (*InputStatusBar) Render added in v0.76.2

func (isb *InputStatusBar) Render() string

func (*InputStatusBar) SetBackgroundShellService added in v0.81.0

func (isb *InputStatusBar) SetBackgroundShellService(service domain.BackgroundShellService)

SetBackgroundShellService sets the background shell service

func (*InputStatusBar) SetBackgroundTaskService added in v0.90.0

func (isb *InputStatusBar) SetBackgroundTaskService(service domain.BackgroundTaskService)

SetBackgroundTaskService sets the background task service

func (*InputStatusBar) SetConfig added in v0.104.1

func (isb *InputStatusBar) SetConfig(cfg *config.Config)

SetConfig sets the config for the status bar

func (*InputStatusBar) SetConversationRepo added in v0.76.2

func (isb *InputStatusBar) SetConversationRepo(repo domain.ConversationRepository)

SetConversationRepo sets the conversation repository

func (*InputStatusBar) SetHeight added in v0.76.2

func (isb *InputStatusBar) SetHeight(height int)

func (*InputStatusBar) SetInputText added in v0.76.2

func (isb *InputStatusBar) SetInputText(text string)

SetInputText sets the current input text for mode detection

func (*InputStatusBar) SetModelService added in v0.76.2

func (isb *InputStatusBar) SetModelService(modelService domain.ModelService)

SetModelService sets the model service

func (*InputStatusBar) SetStateManager added in v0.76.2

func (isb *InputStatusBar) SetStateManager(stateManager domain.StateManager)

SetStateManager sets the state manager

func (*InputStatusBar) SetThemeService added in v0.76.2

func (isb *InputStatusBar) SetThemeService(themeService domain.ThemeService)

SetThemeService sets the theme service

func (*InputStatusBar) SetTokenEstimator added in v0.81.0

func (isb *InputStatusBar) SetTokenEstimator(estimator domain.TokenEstimator)

SetTokenEstimator sets the token estimator

func (*InputStatusBar) SetToolService added in v0.81.0

func (isb *InputStatusBar) SetToolService(toolService domain.ToolService)

SetToolService sets the tool service

func (*InputStatusBar) SetWidth added in v0.76.2

func (isb *InputStatusBar) SetWidth(width int)

func (*InputStatusBar) Update added in v0.76.2

func (isb *InputStatusBar) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*InputStatusBar) UpdateMCPStatus added in v0.79.0

func (isb *InputStatusBar) UpdateMCPStatus(status *domain.MCPServerStatus)

UpdateMCPStatus updates the MCP server status (called by event handler)

func (*InputStatusBar) View added in v0.76.2

func (isb *InputStatusBar) View() tea.View

type InputView

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

InputView handles user input with history

func NewInputView

func NewInputView(modelService domain.ModelService) *InputView

func NewInputViewWithConfigDir added in v0.41.0

func NewInputViewWithConfigDir(modelService domain.ModelService, configDir string) *InputView

func (*InputView) AcceptHistorySuggestion added in v0.73.0

func (iv *InputView) AcceptHistorySuggestion() bool

AcceptHistorySuggestion applies the current suggestion to the input

func (*InputView) AddImageAttachment added in v0.57.0

func (iv *InputView) AddImageAttachment(image domain.ImageAttachment)

AddImageAttachment adds an image attachment to the pending list

func (*InputView) AddToHistory added in v0.27.0

func (iv *InputView) AddToHistory(text string) error

AddToHistory adds the current input to the history

func (*InputView) CanHandle

func (iv *InputView) CanHandle(key tea.KeyMsg) bool

func (*InputView) ClearCustomHint added in v0.91.0

func (iv *InputView) ClearCustomHint()

ClearCustomHint clears the custom hint Note: The input is re-enabled separately by handleViewSpecificMessages when exiting navigation mode

func (*InputView) ClearImageAttachments added in v0.57.0

func (iv *InputView) ClearImageAttachments()

ClearImageAttachments clears all pending image attachments

func (*InputView) ClearInput

func (iv *InputView) ClearInput()

func (*InputView) GetCursor

func (iv *InputView) GetCursor() int

func (*InputView) GetHistoryManager added in v0.73.0

func (iv *InputView) GetHistoryManager() *history.HistoryManager

GetHistoryManager returns the history manager for external use

func (*InputView) GetImageAttachments added in v0.57.0

func (iv *InputView) GetImageAttachments() []domain.ImageAttachment

GetImageAttachments returns the list of pending image attachments

func (*InputView) GetInput

func (iv *InputView) GetInput() string

func (*InputView) GetUsageHint added in v0.90.0

func (iv *InputView) GetUsageHint() string

GetUsageHint returns the current usage hint

func (*InputView) HandleKey

func (iv *InputView) HandleKey(key tea.KeyMsg) (tea.Model, tea.Cmd)

func (*InputView) HasHistorySuggestion added in v0.73.0

func (iv *InputView) HasHistorySuggestion() bool

HasHistorySuggestion returns true if there's a history suggestion available

func (*InputView) Init

func (iv *InputView) Init() tea.Cmd

Bubble Tea interface

func (*InputView) InvalidateGitBranchCache added in v0.118.0

func (iv *InputView) InvalidateGitBranchCache()

InvalidateGitBranchCache clears the git branch cache to force a refresh.

func (*InputView) IsDisabled added in v0.76.0

func (iv *InputView) IsDisabled() bool

IsDisabled returns whether the input is disabled

func (*InputView) NavigateHistoryDown added in v0.27.0

func (iv *InputView) NavigateHistoryDown()

NavigateHistoryDown moves down in history (to newer messages) - public method for interface

func (*InputView) NavigateHistoryUp added in v0.27.0

func (iv *InputView) NavigateHistoryUp()

NavigateHistoryUp moves up in history (to older messages) - public method for interface

func (*InputView) Render

func (iv *InputView) Render() string

func (*InputView) SetConfig added in v0.104.1

func (iv *InputView) SetConfig(cfg *config.Config)

SetConfig sets the config for this input view

func (*InputView) SetConversationRepo added in v0.63.0

func (iv *InputView) SetConversationRepo(repo domain.ConversationRepository)

SetConversationRepo sets the conversation repository for context usage display

func (*InputView) SetCursor

func (iv *InputView) SetCursor(position int)

func (*InputView) SetCustomHint added in v0.91.0

func (iv *InputView) SetCustomHint(hint string)

SetCustomHint sets a custom hint Note: The input is disabled separately by handleViewSpecificMessages based on navigation mode

func (*InputView) SetDisabled added in v0.76.0

func (iv *InputView) SetDisabled(disabled bool)

SetDisabled sets whether the input is disabled (prevents typing) When disabling, saves the current text and clears the input When re-enabling, restores the saved text

func (*InputView) SetFileService added in v0.117.0

func (iv *InputView) SetFileService(fileService domain.FileService)

SetFileService sets the file service so "@<path>" references to real files can be highlighted in the input.

func (*InputView) SetGitHubIssueService added in v0.117.0

func (iv *InputView) SetGitHubIssueService(s domain.GitHubIssueService)

SetGitHubIssueService enables "#<number>" highlighting in the input. The validator only checks the digit shape - resolution against actual repo issues happens at submit time in the expansion path.

func (*InputView) SetHeight

func (iv *InputView) SetHeight(height int)

func (*InputView) SetImageService added in v0.57.0

func (iv *InputView) SetImageService(imageService domain.ImageService)

SetImageService sets the image service for this input view

func (*InputView) SetPlaceholder

func (iv *InputView) SetPlaceholder(text string)

func (*InputView) SetShortcutRegistry added in v0.117.0

func (iv *InputView) SetShortcutRegistry(registry *shortcuts.Registry)

SetShortcutRegistry sets the shortcut registry so "/<shortcut>" tokens can be highlighted in the input.

func (*InputView) SetSkillsService added in v0.117.0

func (iv *InputView) SetSkillsService(skillsService domain.SkillsService)

SetSkillsService sets the skills service so "/<skill>" tokens can be highlighted in the input to signal they route to the agent.

func (*InputView) SetStateManager added in v0.56.0

func (iv *InputView) SetStateManager(stateManager domain.StateManager)

SetStateManager sets the state manager for this input view

func (*InputView) SetText

func (iv *InputView) SetText(text string)

func (*InputView) SetThemeService added in v0.47.0

func (iv *InputView) SetThemeService(themeService domain.ThemeService)

SetThemeService sets the theme service for this input view

func (*InputView) SetUsageHint added in v0.90.0

func (iv *InputView) SetUsageHint(hint string)

SetUsageHint sets the usage hint for ghost text display

func (*InputView) SetWidth

func (iv *InputView) SetWidth(width int)

func (*InputView) TryHandleHistorySuggestionTab added in v0.73.0

func (iv *InputView) TryHandleHistorySuggestionTab() bool

TryHandleHistorySuggestionTab handles Tab key for history suggestions Returns true if handled (either cycled or accepted), false if no suggestion available

func (*InputView) Update

func (iv *InputView) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*InputView) View

func (iv *InputView) View() tea.View

type KeyHintFormatter added in v0.81.0

type KeyHintFormatter interface {
	GetKeyHint(actionID, defaultLabel string) string
}

KeyHintFormatter provides formatted key hints for actions

type ModeIndicator added in v0.84.0

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

ModeIndicator displays the current agent mode (PLAN/AUTO) on its own line

func NewModeIndicator added in v0.84.0

func NewModeIndicator(styleProvider *styles.Provider) *ModeIndicator

NewModeIndicator creates a new mode indicator

func (*ModeIndicator) Render added in v0.84.0

func (mi *ModeIndicator) Render() string

Render renders the mode indicator line

func (*ModeIndicator) SetStateManager added in v0.84.0

func (mi *ModeIndicator) SetStateManager(stateManager domain.StateManager)

SetStateManager sets the state manager

func (*ModeIndicator) SetWidth added in v0.84.0

func (mi *ModeIndicator) SetWidth(width int)

SetWidth sets the width of the mode indicator

type ModelSelectorImpl added in v0.27.0

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

ModelSelectorImpl implements model selection UI

func NewModelSelector added in v0.27.0

func NewModelSelector(models []string, modelService domain.ModelService, pricingService domain.PricingService, cfg *config.Config, styleProvider *styles.Provider) *ModelSelectorImpl

NewModelSelector creates a new model selector

func (*ModelSelectorImpl) GetSelected added in v0.27.0

func (m *ModelSelectorImpl) GetSelected() string

GetSelected returns the selected model

func (*ModelSelectorImpl) Init added in v0.27.0

func (m *ModelSelectorImpl) Init() tea.Cmd

func (*ModelSelectorImpl) IsCancelled added in v0.27.0

func (m *ModelSelectorImpl) IsCancelled() bool

IsCancelled returns true if selection was cancelled

func (*ModelSelectorImpl) IsSelected added in v0.27.0

func (m *ModelSelectorImpl) IsSelected() bool

IsSelected returns true if a model was selected

func (*ModelSelectorImpl) SetHeight added in v0.27.0

func (m *ModelSelectorImpl) SetHeight(height int)

SetHeight sets the height of the model selector

func (*ModelSelectorImpl) SetWidth added in v0.27.0

func (m *ModelSelectorImpl) SetWidth(width int)

SetWidth sets the width of the model selector

func (*ModelSelectorImpl) Update added in v0.27.0

func (m *ModelSelectorImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*ModelSelectorImpl) View added in v0.27.0

func (m *ModelSelectorImpl) View() tea.View

type ModelViewMode added in v0.86.0

type ModelViewMode int

ModelViewMode defines the different filter modes for models

const (
	ModelViewAll ModelViewMode = iota
	ModelViewFree
	ModelViewPaid
	ModelViewPro
)
type NavigationMode int

NavigationMode represents the current navigation state of the conversation view

const (
	// NavigationModeNormal is the default mode for displaying conversation
	NavigationModeNormal NavigationMode = iota
	// NavigationModeMessageHistory is the mode for navigating message history
	NavigationModeMessageHistory
)

type QueueBoxView added in v0.53.0

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

func NewQueueBoxView added in v0.53.0

func NewQueueBoxView(styleProvider *styles.Provider) *QueueBoxView

func (*QueueBoxView) Init added in v0.53.0

func (qv *QueueBoxView) Init() tea.Cmd

func (*QueueBoxView) Render added in v0.53.0

func (qv *QueueBoxView) Render(queuedMessages []domain.QueuedMessage) string

func (*QueueBoxView) SetHeight added in v0.53.0

func (qv *QueueBoxView) SetHeight(height int)

func (*QueueBoxView) SetWidth added in v0.53.0

func (qv *QueueBoxView) SetWidth(width int)

func (*QueueBoxView) Update added in v0.53.0

func (qv *QueueBoxView) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*QueueBoxView) View added in v0.53.0

func (qv *QueueBoxView) View() tea.View

type StatusState added in v0.37.0

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

StatusState represents a saved status state

type StatusView

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

StatusView handles status messages, errors, and loading spinners

func NewStatusView

func NewStatusView(styleProvider *styles.Provider) *StatusView

func (*StatusView) ClearStatus

func (sv *StatusView) ClearStatus()

func (*StatusView) HasSavedState added in v0.37.0

func (sv *StatusView) HasSavedState() bool

HasSavedState returns true if there's a saved state that can be restored

func (*StatusView) Init

func (sv *StatusView) Init() tea.Cmd

Bubble Tea interface

func (*StatusView) IsShowingError

func (sv *StatusView) IsShowingError() bool

func (*StatusView) IsShowingSpinner

func (sv *StatusView) IsShowingSpinner() bool

func (*StatusView) Render

func (sv *StatusView) Render() string

func (*StatusView) RestoreSavedState added in v0.37.0

func (sv *StatusView) RestoreSavedState() tea.Cmd

RestoreSavedState restores the previously saved status state

func (*StatusView) SaveCurrentState added in v0.37.0

func (sv *StatusView) SaveCurrentState()

SaveCurrentState saves the current status state for later restoration

func (*StatusView) SetHeight

func (sv *StatusView) SetHeight(height int)

func (*StatusView) SetKeyHintFormatter added in v0.77.0

func (sv *StatusView) SetKeyHintFormatter(formatter *hints.Formatter)

SetKeyHintFormatter sets the key hint formatter for displaying keybinding hints

func (*StatusView) SetWidth

func (sv *StatusView) SetWidth(width int)

func (*StatusView) ShowError

func (sv *StatusView) ShowError(message string)

func (*StatusView) ShowSpinner

func (sv *StatusView) ShowSpinner(message string)

func (*StatusView) ShowSpinnerWithType added in v0.27.0

func (sv *StatusView) ShowSpinnerWithType(message string, statusType domain.StatusType, progress *domain.StatusProgress)

func (*StatusView) ShowStatus

func (sv *StatusView) ShowStatus(message string)

func (*StatusView) ShowStatusWithType added in v0.27.0

func (sv *StatusView) ShowStatusWithType(message string, statusType domain.StatusType, progress *domain.StatusProgress)

func (*StatusView) Update

func (sv *StatusView) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*StatusView) UpdateSpinnerMessage added in v0.27.0

func (sv *StatusView) UpdateSpinnerMessage(message string, statusType domain.StatusType)

func (*StatusView) View

func (sv *StatusView) View() tea.View

type TaskInfo added in v0.53.3

type TaskInfo struct {
	domain.TaskPollingState
	Status      string
	ElapsedTime time.Duration
	TaskRef     *domain.TaskInfo
}

TaskInfo extends TaskPollingState with additional metadata for UI display

type TaskManagerImpl added in v0.53.3

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

TaskManagerImpl implements task management UI similar to conversation selection

func NewTaskManager added in v0.53.3

func NewTaskManager(
	themeService domain.ThemeService,
	styleProvider *styles.Provider,
	taskRetentionService domain.TaskRetentionService,
	backgroundTaskService domain.BackgroundTaskService,
) *TaskManagerImpl

NewTaskManager creates a new task manager UI component

func (*TaskManagerImpl) GetSelectedTask added in v0.53.3

func (t *TaskManagerImpl) GetSelectedTask() *TaskInfo

GetSelectedTask returns the currently selected task (used by parent components)

func (*TaskManagerImpl) Init added in v0.53.3

func (t *TaskManagerImpl) Init() tea.Cmd

func (*TaskManagerImpl) IsCancelled added in v0.53.3

func (t *TaskManagerImpl) IsCancelled() bool

IsCancelled returns true if the user cancelled the task manager

func (*TaskManagerImpl) IsDone added in v0.53.3

func (t *TaskManagerImpl) IsDone() bool

IsDone returns true if the user has finished with the task manager

func (*TaskManagerImpl) Reset added in v0.53.3

func (t *TaskManagerImpl) Reset()

Reset resets the task manager state for reuse

func (*TaskManagerImpl) SetHeight added in v0.53.3

func (t *TaskManagerImpl) SetHeight(height int)

SetHeight sets the height of the task manager

func (*TaskManagerImpl) SetWidth added in v0.53.3

func (t *TaskManagerImpl) SetWidth(width int)

SetWidth sets the width of the task manager

func (*TaskManagerImpl) Update added in v0.53.3

func (t *TaskManagerImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*TaskManagerImpl) View added in v0.53.3

func (t *TaskManagerImpl) View() tea.View

type TaskViewMode added in v0.53.3

type TaskViewMode int
const (
	TaskViewAll TaskViewMode = iota
	TaskViewActive
	TaskViewInputRequired
	TaskViewCompleted
	TaskViewCanceled
)

type ThemeSelectorImpl added in v0.47.0

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

ThemeSelectorImpl implements theme selection UI on top of bubbles/v2/list, which provides cursor movement, fuzzy filtering (press /), pagination and help for free.

func NewThemeSelector added in v0.47.0

func NewThemeSelector(themeService domain.ThemeService, styleProvider *styles.Provider) *ThemeSelectorImpl

NewThemeSelector creates a new theme selector.

func (*ThemeSelectorImpl) GetSelected added in v0.47.0

func (m *ThemeSelectorImpl) GetSelected() string

GetSelected returns the selected theme.

func (*ThemeSelectorImpl) Init added in v0.47.0

func (m *ThemeSelectorImpl) Init() tea.Cmd

func (*ThemeSelectorImpl) IsCancelled added in v0.47.0

func (m *ThemeSelectorImpl) IsCancelled() bool

IsCancelled returns true if selection was cancelled.

func (*ThemeSelectorImpl) IsSelected added in v0.47.0

func (m *ThemeSelectorImpl) IsSelected() bool

IsSelected returns true if a theme was selected.

func (*ThemeSelectorImpl) Reset added in v0.47.0

func (m *ThemeSelectorImpl) Reset()

Reset returns the selector to its initial state, rebuilding the items so the active-theme marker reflects any theme change since it was last shown.

func (*ThemeSelectorImpl) SetHeight added in v0.47.0

func (m *ThemeSelectorImpl) SetHeight(height int)

SetHeight sets the height of the theme selector.

func (*ThemeSelectorImpl) SetWidth added in v0.47.0

func (m *ThemeSelectorImpl) SetWidth(width int)

SetWidth sets the width of the theme selector.

func (*ThemeSelectorImpl) Update added in v0.47.0

func (m *ThemeSelectorImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*ThemeSelectorImpl) View added in v0.47.0

func (m *ThemeSelectorImpl) View() tea.View

type TodoBoxView added in v0.63.1

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

TodoBoxView displays a collapsible todo list component

func NewTodoBoxView added in v0.63.1

func NewTodoBoxView(styleProvider *styles.Provider) *TodoBoxView

NewTodoBoxView creates a new todo box view

func (*TodoBoxView) AutoCollapse added in v0.63.1

func (tv *TodoBoxView) AutoCollapse() bool

AutoCollapse collapses if auto-expanded and delay has passed

func (*TodoBoxView) GetHeight added in v0.63.1

func (tv *TodoBoxView) GetHeight() int

GetHeight returns the height of the rendered component

func (*TodoBoxView) GetTodos added in v0.63.1

func (tv *TodoBoxView) GetTodos() []domain.TodoItem

GetTodos returns the current todos

func (*TodoBoxView) HasTodos added in v0.63.1

func (tv *TodoBoxView) HasTodos() bool

HasTodos returns whether there are any todos

func (*TodoBoxView) Init added in v0.63.1

func (tv *TodoBoxView) Init() tea.Cmd

Init initializes the component

func (*TodoBoxView) IsExpanded added in v0.63.1

func (tv *TodoBoxView) IsExpanded() bool

IsExpanded returns whether the component is expanded

func (*TodoBoxView) Render added in v0.63.1

func (tv *TodoBoxView) Render() string

Render renders the todo box

func (*TodoBoxView) SetExpanded added in v0.63.1

func (tv *TodoBoxView) SetExpanded(expanded bool)

SetExpanded sets the expanded state (user action)

func (*TodoBoxView) SetHeight added in v0.63.1

func (tv *TodoBoxView) SetHeight(height int)

SetHeight sets the component height

func (*TodoBoxView) SetTodos added in v0.63.1

func (tv *TodoBoxView) SetTodos(todos []domain.TodoItem)

SetTodos updates the todo list and triggers auto-expand

func (*TodoBoxView) SetWidth added in v0.63.1

func (tv *TodoBoxView) SetWidth(width int)

SetWidth sets the component width

func (*TodoBoxView) ShouldAutoCollapse added in v0.63.1

func (tv *TodoBoxView) ShouldAutoCollapse() bool

ShouldAutoCollapse returns true if the component should auto-collapse

func (*TodoBoxView) Toggle added in v0.63.1

func (tv *TodoBoxView) Toggle()

Toggle toggles the expanded state

func (*TodoBoxView) Update added in v0.63.1

func (tv *TodoBoxView) Update(msg tea.Msg) (tea.Model, tea.Cmd)

Update handles messages

func (*TodoBoxView) View added in v0.63.1

func (tv *TodoBoxView) View() tea.View

View returns the rendered view

type ToolCallInfo added in v0.33.4

type ToolCallInfo struct {
	Name string
	Args map[string]any
}

type ToolCallRenderer added in v0.48.0

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

func NewToolCallRenderer added in v0.48.0

func NewToolCallRenderer(styleProvider *styles.Provider) *ToolCallRenderer

func (*ToolCallRenderer) ClearPreviews added in v0.48.0

func (r *ToolCallRenderer) ClearPreviews()

func (*ToolCallRenderer) HasActivePreviews added in v0.48.0

func (r *ToolCallRenderer) HasActivePreviews() bool

func (*ToolCallRenderer) Init added in v0.48.0

func (r *ToolCallRenderer) Init() tea.Cmd

func (*ToolCallRenderer) RenderPreviews added in v0.48.0

func (r *ToolCallRenderer) RenderPreviews() string

func (*ToolCallRenderer) RenderToolCalls added in v0.48.0

func (r *ToolCallRenderer) RenderToolCalls(toolCalls []sdk.ChatCompletionMessageToolCall, status string) string

func (*ToolCallRenderer) SetKeyHintFormatter added in v0.81.0

func (r *ToolCallRenderer) SetKeyHintFormatter(formatter KeyHintFormatter)

SetKeyHintFormatter sets the key hint formatter for dynamic keybinding hints

func (*ToolCallRenderer) SetWidth added in v0.48.0

func (r *ToolCallRenderer) SetWidth(width int)

func (*ToolCallRenderer) Update added in v0.48.0

func (r *ToolCallRenderer) Update(msg tea.Msg) (*ToolCallRenderer, tea.Cmd)

type ToolInfo added in v0.48.0

type ToolInfo struct {
	Name   string
	Prefix string
}

type ToolRenderState added in v0.81.0

type ToolRenderState struct {
	CallID           string
	ToolName         string
	Status           string
	Arguments        string
	StartTime        time.Time
	EndTime          *time.Time
	LastUpdate       time.Time
	OutputBuffer     []string
	TotalOutputLines int
	IsComplete       bool
	IsExpanded       bool
}

ToolRenderState represents the unified rendering state for all tool executions

Directories

Path Synopsis
Package diffview renders unified or side-by-side file diffs to a string of ANSI-styled output, using go-udiff for the underlying diff algorithm and chroma for in-line syntax highlighting.
Package diffview renders unified or side-by-side file diffs to a string of ANSI-styled output, using go-udiff for the underlying diff algorithm and chroma for in-line syntax highlighting.

Jump to

Keyboard shortcuts

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