Documentation
¶
Index ¶
- Constants
- func FormatAnnotations(root string, sels []SnippetSelection) string
- func ScheduleAutoCollapse() tea.Cmd
- type A2AAgentsViewImpl
- func (m *A2AAgentsViewImpl) Init() tea.Cmd
- func (m *A2AAgentsViewImpl) IsCancelled() bool
- func (m *A2AAgentsViewImpl) Reset()
- func (m *A2AAgentsViewImpl) SetHeight(height int)
- func (m *A2AAgentsViewImpl) SetWidth(width int)
- func (m *A2AAgentsViewImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (m *A2AAgentsViewImpl) View() tea.View
- type ApplicationViewRenderer
- type ApprovalBoxView
- type AutoCollapseTickMsg
- type BackgroundTaskDisplay
- type BackgroundTaskRemovalTickMsg
- type ChatInterfaceData
- type ConversationSelectorImpl
- func (c *ConversationSelectorImpl) GetSelected() shortcuts.ConversationSummary
- func (c *ConversationSelectorImpl) Init() tea.Cmd
- func (c *ConversationSelectorImpl) IsCancelled() bool
- func (c *ConversationSelectorImpl) IsSelected() bool
- func (c *ConversationSelectorImpl) NeedsInitialization() bool
- func (c *ConversationSelectorImpl) Reset()
- func (c *ConversationSelectorImpl) SetHeight(height int)
- func (c *ConversationSelectorImpl) SetWidth(width int)
- func (c *ConversationSelectorImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (c *ConversationSelectorImpl) View() tea.View
- type ConversationView
- func (cv *ConversationView) BackgroundTasksBarHeight() int
- func (cv *ConversationView) CanScrollDown() bool
- func (cv *ConversationView) CanScrollUp() bool
- func (cv *ConversationView) EnterMessageHistoryMode(snapshots []domain.MessageSnapshot)
- func (cv *ConversationView) ExitMessageHistoryMode()
- func (cv *ConversationView) GetPlainTextLines() []string
- func (cv *ConversationView) GetScrollOffset() int
- func (cv *ConversationView) GetSelectedMessageIndex() int
- func (cv *ConversationView) GetSelectedMessageSnapshot() *domain.MessageSnapshot
- func (cv *ConversationView) HasBackgroundTasks() bool
- func (cv *ConversationView) Init() tea.Cmd
- func (cv *ConversationView) IsInMessageHistoryMode() bool
- func (cv *ConversationView) IsRawFormat() bool
- func (cv *ConversationView) IsThinkingExpanded(index int) bool
- func (cv *ConversationView) IsToolResultExpanded(index int) bool
- func (cv *ConversationView) NavigateHistoryDown()
- func (cv *ConversationView) NavigateHistoryUp()
- func (cv *ConversationView) RefreshTheme()
- func (cv *ConversationView) Render() string
- func (cv *ConversationView) RenderBackgroundTasksBar(width int) string
- func (cv *ConversationView) ResetUserScroll()
- func (cv *ConversationView) SetAgentModelResolver(resolver func(url string) string)
- func (cv *ConversationView) SetAgentNameResolver(resolver func(url string) string)
- func (cv *ConversationView) SetConfigPath(configPath string)
- func (cv *ConversationView) SetConversation(conversation []domain.ConversationEntry)
- func (cv *ConversationView) SetDefaultExpandedTools(names map[string]bool)
- func (cv *ConversationView) SetHeight(height int)
- func (cv *ConversationView) SetKeyHintFormatter(formatter *hints.Formatter)
- func (cv *ConversationView) SetStateManager(stateManager domain.StateManager)
- func (cv *ConversationView) SetToolCallRenderer(renderer *ToolCallRenderer)
- func (cv *ConversationView) SetToolFormatter(formatter domain.ToolFormatter)
- func (cv *ConversationView) SetVersionInfo(info domain.VersionInfo)
- func (cv *ConversationView) SetWidth(width int)
- func (cv *ConversationView) ToggleAllThinkingExpansion()
- func (cv *ConversationView) ToggleAllToolResultsExpansion()
- func (cv *ConversationView) ToggleRawFormat()
- func (cv *ConversationView) ToggleToolResultExpansion(index int)
- func (cv *ConversationView) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (cv *ConversationView) View() tea.View
- type DiffInfo
- type DiffRenderer
- func (d *DiffRenderer) RenderColoredDiff(oldContent, newContent string) string
- func (d *DiffRenderer) RenderDiff(info DiffInfo) string
- func (d *DiffRenderer) RenderEditToolArguments(args map[string]any) string
- func (d *DiffRenderer) RenderMultiEditToolArguments(args map[string]any) string
- func (d *DiffRenderer) RenderWriteToolArguments(args map[string]any) string
- func (d *DiffRenderer) SetContextLines(n int) *DiffRenderer
- func (d *DiffRenderer) SetWidth(w int) *DiffRenderer
- type DiffStats
- type DiffViewerImpl
- func (t *DiffViewerImpl) HintText() string
- func (t *DiffViewerImpl) Init() tea.Cmd
- func (t *DiffViewerImpl) IsCancelled() bool
- func (t *DiffViewerImpl) IsDone() bool
- func (t *DiffViewerImpl) PaneWidth() int
- func (t *DiffViewerImpl) Render(inputRow string) string
- func (t *DiffViewerImpl) Reset()
- func (t *DiffViewerImpl) SetHeight(h int)
- func (t *DiffViewerImpl) SetWidth(w int)
- func (t *DiffViewerImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (t *DiffViewerImpl) View() tea.View
- type FileExplorerImpl
- func (t *FileExplorerImpl) HintText() string
- func (t *FileExplorerImpl) Init() tea.Cmd
- func (t *FileExplorerImpl) IsCancelled() bool
- func (t *FileExplorerImpl) IsDone() bool
- func (t *FileExplorerImpl) PaneWidth() int
- func (t *FileExplorerImpl) Render(inputRow string) string
- func (t *FileExplorerImpl) Reset()
- func (t *FileExplorerImpl) Selections() []SnippetSelection
- func (t *FileExplorerImpl) SetHeight(h int)
- func (t *FileExplorerImpl) SetWidth(w int)
- func (t *FileExplorerImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (t *FileExplorerImpl) View() tea.View
- type FileSelectionAction
- type FileSelectionData
- type FileSelectionHandler
- func (h *FileSelectionHandler) CreateStatusMessage(action FileSelectionAction, selectedFile string) tea.Cmd
- func (h *FileSelectionHandler) HandleKeyEvent(keyMsg tea.KeyPressMsg, files []string, searchQuery string, selectedIndex int) (newSearchQuery string, newSelectedIndex int, action FileSelectionAction, ...)
- func (h *FileSelectionHandler) RenderFileSelection(data FileSelectionData) string
- func (h *FileSelectionHandler) UpdateInputWithSelectedFile(currentInput string, cursor int, selectedFile string) (newInput string, newCursor int)
- type FileSelectionView
- type HelpBar
- func (hb *HelpBar) Init() tea.Cmd
- func (hb *HelpBar) IsEnabled() bool
- func (hb *HelpBar) Render() string
- func (hb *HelpBar) SetEnabled(enabled bool)
- func (hb *HelpBar) SetHeight(height int)
- func (hb *HelpBar) SetShortcuts(shortcuts []ui.KeyShortcut)
- func (hb *HelpBar) SetWidth(width int)
- func (hb *HelpBar) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (hb *HelpBar) View() tea.View
- type HelpCommand
- type HelpViewImpl
- func (h *HelpViewImpl) Init() tea.Cmd
- func (h *HelpViewImpl) IsCancelled() bool
- func (h *HelpViewImpl) Reset()
- func (h *HelpViewImpl) SetContent(commands []HelpCommand, keybindings []ui.KeyShortcut)
- func (h *HelpViewImpl) SetHeight(height int)
- func (h *HelpViewImpl) SetWidth(width int)
- func (h *HelpViewImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (h *HelpViewImpl) View() tea.View
- type InitGithubActionView
- func (v *InitGithubActionView) GetInstallationURL(repoOwner, repoName string) string
- func (v *InitGithubActionView) GetResult() (appID, privateKeyPath string, err error)
- func (v *InitGithubActionView) Init() tea.Cmd
- func (v *InitGithubActionView) IsCancelled() bool
- func (v *InitGithubActionView) IsDone() bool
- func (v *InitGithubActionView) Reset()
- func (v *InitGithubActionView) SetHeight(height int)
- func (v *InitGithubActionView) SetRepositoryInfo(owner string, isOrg bool)
- func (v *InitGithubActionView) SetSecretsExistChecker(checker func(appID string) bool)
- func (v *InitGithubActionView) SetWidth(width int)
- func (v *InitGithubActionView) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (v *InitGithubActionView) View() tea.View
- type InputStatusBar
- func (isb *InputStatusBar) Blur()
- func (isb *InputStatusBar) Focus() bool
- func (isb *InputStatusBar) Init() tea.Cmd
- func (isb *InputStatusBar) IsFocused() bool
- func (isb *InputStatusBar) Render() string
- func (isb *InputStatusBar) SelectNext()
- func (isb *InputStatusBar) SelectPrev()
- func (isb *InputStatusBar) SelectedAction() ui.StatusIndicatorAction
- func (isb *InputStatusBar) SetBackgroundShellService(service domain.BackgroundShellService)
- func (isb *InputStatusBar) SetBackgroundTaskRegistry(registry domain.BackgroundTaskRegistry)
- func (isb *InputStatusBar) SetBackgroundTaskService(service domain.BackgroundTaskService)
- func (isb *InputStatusBar) SetConfig(cfg *config.Config)
- func (isb *InputStatusBar) SetConversationRepo(repo domain.ConversationRepository)
- func (isb *InputStatusBar) SetHeight(height int)
- func (isb *InputStatusBar) SetInputText(text string)
- func (isb *InputStatusBar) SetModelService(modelService domain.ModelService)
- func (isb *InputStatusBar) SetStateManager(stateManager domain.StateManager)
- func (isb *InputStatusBar) SetThemeService(themeService domain.ThemeService)
- func (isb *InputStatusBar) SetTokenEstimator(estimator domain.TokenEstimator)
- func (isb *InputStatusBar) SetToolService(toolService domain.ToolService)
- func (isb *InputStatusBar) SetWidth(width int)
- func (isb *InputStatusBar) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (isb *InputStatusBar) UpdateMCPStatus(status *domain.MCPServerStatus)
- func (isb *InputStatusBar) View() tea.View
- type InputView
- func (iv *InputView) AcceptHistorySuggestion() bool
- func (iv *InputView) AddImageAttachment(image domain.ImageAttachment)
- func (iv *InputView) AddToHistory(text string) error
- func (iv *InputView) CanHandle(key tea.KeyPressMsg) bool
- func (iv *InputView) ClearCustomHint()
- func (iv *InputView) ClearImageAttachments()
- func (iv *InputView) ClearInput()
- func (iv *InputView) GetCursor() int
- func (iv *InputView) GetHistoryManager() *history.HistoryManager
- func (iv *InputView) GetImageAttachments() []domain.ImageAttachment
- func (iv *InputView) GetInput() string
- func (iv *InputView) GetUsageHint() string
- func (iv *InputView) HandleKey(key tea.KeyPressMsg) (tea.Model, tea.Cmd)
- func (iv *InputView) HasHistorySuggestion() bool
- func (iv *InputView) Init() tea.Cmd
- func (iv *InputView) InvalidateGitBranchCache()
- func (iv *InputView) IsDisabled() bool
- func (iv *InputView) IsNavigatingHistory() bool
- func (iv *InputView) NavigateHistoryDown()
- func (iv *InputView) NavigateHistoryUp()
- func (iv *InputView) Render() string
- func (iv *InputView) SetConfig(cfg *config.Config)
- func (iv *InputView) SetConversationRepo(repo domain.ConversationRepository)
- func (iv *InputView) SetCursor(position int)
- func (iv *InputView) SetCustomHint(hint string)
- func (iv *InputView) SetDisabled(disabled bool)
- func (iv *InputView) SetFileService(fileService domain.FileService)
- func (iv *InputView) SetGitHubIssueService(s domain.GitHubIssueService)
- func (iv *InputView) SetHeight(height int)
- func (iv *InputView) SetImageService(imageService domain.ImageService)
- func (iv *InputView) SetMessageQueue(mq domain.MessageQueue)
- func (iv *InputView) SetPlaceholder(text string)
- func (iv *InputView) SetShortcutRegistry(registry *shortcuts.Registry)
- func (iv *InputView) SetSkillsService(skillsService domain.SkillsService)
- func (iv *InputView) SetStateManager(stateManager domain.StateManager)
- func (iv *InputView) SetText(text string)
- func (iv *InputView) SetThemeService(themeService domain.ThemeService)
- func (iv *InputView) SetUsageHint(hint string)
- func (iv *InputView) SetWidth(width int)
- func (iv *InputView) TryHandleHistorySuggestionTab() bool
- func (iv *InputView) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (iv *InputView) View() tea.View
- type KeyHintFormatter
- type ModeIndicator
- type ModelSelectorImpl
- func (m *ModelSelectorImpl) GetSelected() string
- func (m *ModelSelectorImpl) Init() tea.Cmd
- func (m *ModelSelectorImpl) IsCancelled() bool
- func (m *ModelSelectorImpl) IsSelected() bool
- func (m *ModelSelectorImpl) SetHeight(height int)
- func (m *ModelSelectorImpl) SetWidth(width int)
- func (m *ModelSelectorImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (m *ModelSelectorImpl) View() tea.View
- type ModelViewMode
- type NavigationMode
- type QuestionFormView
- type QueueBoxView
- func (qv *QueueBoxView) Init() tea.Cmd
- func (qv *QueueBoxView) Render(queuedMessages []domain.QueuedMessage) string
- func (qv *QueueBoxView) SetHeight(height int)
- func (qv *QueueBoxView) SetWidth(width int)
- func (qv *QueueBoxView) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (qv *QueueBoxView) View() tea.View
- type SnippetAttachmentsView
- func (v *SnippetAttachmentsView) Blur()
- func (v *SnippetAttachmentsView) Count() int
- func (v *SnippetAttachmentsView) Focus()
- func (v *SnippetAttachmentsView) GetHeight() int
- func (v *SnippetAttachmentsView) IsFocused() bool
- func (v *SnippetAttachmentsView) MoveCursor(delta int)
- func (v *SnippetAttachmentsView) Render() string
- func (v *SnippetAttachmentsView) SelectedIndex() int
- func (v *SnippetAttachmentsView) SetData(sels []SnippetSelection)
- func (v *SnippetAttachmentsView) SetFocusHint(key string)
- func (v *SnippetAttachmentsView) SetWidth(width int)
- type SnippetSelection
- type StatusState
- type StatusView
- func (sv *StatusView) ClearStatus()
- func (sv *StatusView) HasSavedState() bool
- func (sv *StatusView) Init() tea.Cmd
- func (sv *StatusView) IsShowingError() bool
- func (sv *StatusView) IsShowingSpinner() bool
- func (sv *StatusView) Render() string
- func (sv *StatusView) RestoreSavedState() tea.Cmd
- func (sv *StatusView) SaveCurrentState()
- func (sv *StatusView) SetHeight(height int)
- func (sv *StatusView) SetKeyHintFormatter(formatter *hints.Formatter)
- func (sv *StatusView) SetStateManager(stateManager domain.StateManager)
- func (sv *StatusView) SetWidth(width int)
- func (sv *StatusView) ShowError(message string)
- func (sv *StatusView) ShowSpinner(message string)
- func (sv *StatusView) ShowSpinnerWithType(message string, statusType domain.StatusType, progress *domain.StatusProgress)
- func (sv *StatusView) ShowStatus(message string)
- func (sv *StatusView) ShowStatusWithType(message string, statusType domain.StatusType, progress *domain.StatusProgress)
- func (sv *StatusView) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (sv *StatusView) UpdateSpinnerMessage(message string, statusType domain.StatusType)
- func (sv *StatusView) View() tea.View
- type TaskInfo
- type TaskManagerImpl
- func (t *TaskManagerImpl) GetSelectedTask() *TaskInfo
- func (t *TaskManagerImpl) Init() tea.Cmd
- func (t *TaskManagerImpl) IsCancelled() bool
- func (t *TaskManagerImpl) IsDone() bool
- func (t *TaskManagerImpl) Reset()
- func (t *TaskManagerImpl) SetBackgroundTaskRegistry(registry domain.BackgroundTaskRegistry)
- func (t *TaskManagerImpl) SetHeight(height int)
- func (t *TaskManagerImpl) SetWidth(width int)
- func (t *TaskManagerImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (t *TaskManagerImpl) View() tea.View
- type TaskViewMode
- type ThemeSelectorImpl
- func (m *ThemeSelectorImpl) GetSelected() string
- func (m *ThemeSelectorImpl) Init() tea.Cmd
- func (m *ThemeSelectorImpl) IsCancelled() bool
- func (m *ThemeSelectorImpl) IsSelected() bool
- func (m *ThemeSelectorImpl) Reset()
- func (m *ThemeSelectorImpl) SetHeight(height int)
- func (m *ThemeSelectorImpl) SetWidth(width int)
- func (m *ThemeSelectorImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (m *ThemeSelectorImpl) View() tea.View
- type TodoBoxView
- func (tv *TodoBoxView) AutoCollapse() bool
- func (tv *TodoBoxView) GetHeight() int
- func (tv *TodoBoxView) GetTodos() []domain.TodoItem
- func (tv *TodoBoxView) HasTodos() bool
- func (tv *TodoBoxView) Init() tea.Cmd
- func (tv *TodoBoxView) IsExpanded() bool
- func (tv *TodoBoxView) Render() string
- func (tv *TodoBoxView) SetExpanded(expanded bool)
- func (tv *TodoBoxView) SetHeight(height int)
- func (tv *TodoBoxView) SetTodos(todos []domain.TodoItem)
- func (tv *TodoBoxView) SetWidth(width int)
- func (tv *TodoBoxView) ShouldAutoCollapse() bool
- func (tv *TodoBoxView) Toggle()
- func (tv *TodoBoxView) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (tv *TodoBoxView) View() tea.View
- type ToolCallInfo
- type ToolCallRenderer
- func (r *ToolCallRenderer) ClearPreviews()
- func (r *ToolCallRenderer) HasActivePreviews() bool
- func (r *ToolCallRenderer) Init() tea.Cmd
- func (r *ToolCallRenderer) RenderPreviews() string
- func (r *ToolCallRenderer) RenderToolCalls(toolCalls []sdk.ChatCompletionMessageToolCall, status string) string
- func (r *ToolCallRenderer) SetKeyHintFormatter(formatter KeyHintFormatter)
- func (r *ToolCallRenderer) SetWidth(width int)
- func (r *ToolCallRenderer) Update(msg tea.Msg) (*ToolCallRenderer, tea.Cmd)
- type ToolInfo
- type ToolRenderState
- type ToolsViewImpl
- func (m *ToolsViewImpl) Init() tea.Cmd
- func (m *ToolsViewImpl) IsCancelled() bool
- func (m *ToolsViewImpl) Reset()
- func (m *ToolsViewImpl) SetHeight(height int)
- func (m *ToolsViewImpl) SetWidth(width int)
- func (m *ToolsViewImpl) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (m *ToolsViewImpl) View() tea.View
Constants ¶
const AutoCollapseDelay = 3 * time.Second
AutoCollapseDelay is the duration to wait before auto-collapsing after an update
const InlineDiffContextLines = 2
InlineDiffContextLines is the unchanged-context line count shown above/below each change in the *inline* diffs: the Edit approval preview and the post-run Edit/MultiEdit diffs in the conversation. The full /diff viewer keeps the wider diffview default so it stays a full-file review surface.
Variables ¶
This section is empty.
Functions ¶
func FormatAnnotations ¶ added in v0.122.0
func FormatAnnotations(root string, sels []SnippetSelection) string
FormatAnnotations builds an LLM-ready context block from a set of snippet selections. Selections are grouped by file (deduping file reads). Only the selected line ranges are emitted - never the whole file - each as a fenced block headed by `<file> (lines X-Y):`, optionally followed by a `note:` line when the user attached an instruction.
The output format is:
<file> (lines <start>-<end>): ```<ext> <the selected lines, raw> ``` note: <annotation> (only when an annotation was attached)
This is a pure function (no receiver state) so it is independently unit-testable.
func ScheduleAutoCollapse ¶ added in v0.63.1
ScheduleAutoCollapse returns a command that will send AutoCollapseTickMsg after the delay
Types ¶
type A2AAgentsViewImpl ¶ added in v0.128.0
type A2AAgentsViewImpl struct {
// contains filtered or unexported fields
}
A2AAgentsViewImpl is a read-only, filterable list of the registered A2A agents and their readiness. Like the tools view it is display-only for now.
func NewA2AAgentsView ¶ added in v0.128.0
func NewA2AAgentsView(stateManager domain.StateManager, styleProvider *styles.Provider) *A2AAgentsViewImpl
NewA2AAgentsView creates the A2A agents list view. Items are populated by Reset on every entry because agent readiness changes as agents start up.
func (*A2AAgentsViewImpl) Init ¶ added in v0.128.0
func (m *A2AAgentsViewImpl) Init() tea.Cmd
func (*A2AAgentsViewImpl) IsCancelled ¶ added in v0.128.0
func (m *A2AAgentsViewImpl) IsCancelled() bool
IsCancelled returns true once the user has dismissed the view.
func (*A2AAgentsViewImpl) Reset ¶ added in v0.128.0
func (m *A2AAgentsViewImpl) Reset()
Reset returns the view to its initial state and rebuilds the items so the list reflects the latest agent readiness.
func (*A2AAgentsViewImpl) SetHeight ¶ added in v0.128.0
func (m *A2AAgentsViewImpl) SetHeight(height int)
SetHeight sets the height of the agents view.
func (*A2AAgentsViewImpl) SetWidth ¶ added in v0.128.0
func (m *A2AAgentsViewImpl) SetWidth(width int)
SetWidth sets the width of the agents view.
func (*A2AAgentsViewImpl) View ¶ added in v0.128.0
func (m *A2AAgentsViewImpl) View() tea.View
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, questionFormView *QuestionFormView, snippetAttachments *SnippetAttachmentsView, ) 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, toolFormatter domain.ToolFormatter) *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) 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
func (c *ConversationSelectorImpl) GetSelected() shortcuts.ConversationSummary
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) View ¶ added in v0.45.0
func (c *ConversationSelectorImpl) View() tea.View
type ConversationView ¶
ConversationView handles the chat conversation display. It is confined to the Bubble Tea event loop: all state is read and written from Update/View only, so it holds no locks. Off-loop producers must go through Program.Send.
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 (A2A task or local subagent) to render in the sticky bar.
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) View ¶
func (cv *ConversationView) View() tea.View
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 diff. When the target file can be read and old_string is found in it, it diffs the real file content so the configured context lines surround the change with actual neighbouring file lines; otherwise it falls back to a snippet diff of old_string vs new_string.
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) SetContextLines ¶ added in v0.123.0
func (d *DiffRenderer) SetContextLines(n int) *DiffRenderer
SetContextLines overrides the number of unchanged context lines shown above and below each change. Pass 0 (the default) to keep the diffview default. Returns the renderer for chaining.
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 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
Init loads the current diff once. It refreshes thereafter on view-entry (reopen re-runs this), on in-loop tool/bash completion events, on git stage/unstage/discard actions, and on the manual refresh key - no polling tick.
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) 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
Init does no work: the constructor and Reset already seed the root, and the tree refreshes on view-entry (reopen re-runs this), on in-loop tool/bash completion events, and on the manual refresh key - no polling tick.
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) Selections ¶ added in v0.122.0
func (t *FileExplorerImpl) Selections() []SnippetSelection
Selections returns the annotated line ranges captured during select mode. The app reads this when the explorer closes (IsDone) and carries them into chat as attachments sent with the next message.
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) 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
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.KeyPressMsg, 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 (*HelpBar) Render ¶
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 (*HelpBar) SetShortcuts ¶
func (hb *HelpBar) SetShortcuts(shortcuts []ui.KeyShortcut)
type HelpCommand ¶ added in v0.118.0
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) 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) 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) Blur ¶ added in v0.128.0
func (isb *InputStatusBar) Blur()
Blur returns the indicator row to its passive display-only state.
func (*InputStatusBar) Focus ¶ added in v0.128.0
func (isb *InputStatusBar) Focus() bool
Focus moves keyboard focus onto the indicator row, selecting the first actionable indicator. Reports false when nothing is actionable so the caller can keep focus in the input.
func (*InputStatusBar) Init ¶ added in v0.76.2
func (isb *InputStatusBar) Init() tea.Cmd
Bubble Tea interface
func (*InputStatusBar) IsFocused ¶ added in v0.128.0
func (isb *InputStatusBar) IsFocused() bool
IsFocused reports whether the indicator row holds keyboard focus.
func (*InputStatusBar) Render ¶ added in v0.76.2
func (isb *InputStatusBar) Render() string
func (*InputStatusBar) SelectNext ¶ added in v0.128.0
func (isb *InputStatusBar) SelectNext()
SelectNext moves the selection to the next actionable indicator, wrapping.
func (*InputStatusBar) SelectPrev ¶ added in v0.128.0
func (isb *InputStatusBar) SelectPrev()
SelectPrev moves the selection to the previous actionable indicator, wrapping.
func (*InputStatusBar) SelectedAction ¶ added in v0.128.0
func (isb *InputStatusBar) SelectedAction() ui.StatusIndicatorAction
SelectedAction returns the action of the selected indicator, clamping the selection when indicators disappeared since it was set (e.g. jobs finished).
func (*InputStatusBar) SetBackgroundShellService ¶ added in v0.81.0
func (isb *InputStatusBar) SetBackgroundShellService(service domain.BackgroundShellService)
SetBackgroundShellService sets the background shell service
func (*InputStatusBar) SetBackgroundTaskRegistry ¶ added in v0.126.0
func (isb *InputStatusBar) SetBackgroundTaskRegistry(registry domain.BackgroundTaskRegistry)
SetBackgroundTaskRegistry sets the unified background task registry, the single source for the live A2A/shell/subagent counts shown in the status line.
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) 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, delegating text editing to charm.land/bubbles/v2/textarea.
func NewInputView ¶
func NewInputView(modelService domain.ModelService) *InputView
func NewInputViewWithName ¶ added in v0.127.0
func NewInputViewWithName(modelService domain.ModelService, configDir, name string) *InputView
func (*InputView) AcceptHistorySuggestion ¶ added in v0.73.0
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
AddToHistory adds the current input to the history
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 ¶
GetCursor returns the cursor position as a byte offset into GetInput(). The textarea reports a rune column, so the current line's rune prefix is converted back to bytes before adding it to the preceding lines' lengths.
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) GetUsageHint ¶ added in v0.90.0
GetUsageHint returns the current usage hint
func (*InputView) HasHistorySuggestion ¶ added in v0.73.0
HasHistorySuggestion returns true if there's a history suggestion available
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
IsDisabled returns whether the input is disabled
func (*InputView) IsNavigatingHistory ¶ added in v0.128.0
IsNavigatingHistory reports whether input-history navigation is active, i.e. whether arrow-down still has an entry to return to
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) SetConversationRepo ¶ added in v0.63.0
func (iv *InputView) SetConversationRepo(repo domain.ConversationRepository)
SetConversationRepo sets the conversation repository for context usage display
func (*InputView) SetCustomHint ¶ added in v0.91.0
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
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) SetImageService ¶ added in v0.57.0
func (iv *InputView) SetImageService(imageService domain.ImageService)
SetImageService sets the image service for this input view
func (*InputView) SetMessageQueue ¶ added in v0.139.1
func (iv *InputView) SetMessageQueue(mq domain.MessageQueue)
SetMessageQueue sets the message queue so arrow-up can restore queued message content into the input field instead of navigating history.
func (*InputView) SetPlaceholder ¶
func (*InputView) SetShortcutRegistry ¶ added in v0.117.0
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) 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
SetUsageHint sets the usage hint for ghost text display
func (*InputView) TryHandleHistorySuggestionTab ¶ added in v0.73.0
TryHandleHistorySuggestionTab handles Tab key for history suggestions Returns true if handled (either cycled or accepted), false if no suggestion available
type KeyHintFormatter ¶ added in v0.81.0
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) 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 ModelViewPayAsYouGo ModelViewSubscription )
type NavigationMode ¶ added in v0.91.0
type NavigationMode int
NavigationMode represents the current navigation state of the conversation view
const ( NavigationModeNormal NavigationMode = iota NavigationModeMessageHistory )
type QuestionFormView ¶ added in v0.124.0
type QuestionFormView struct {
// contains filtered or unexported fields
}
QuestionFormView renders the interactive AskUserQuestion form as a bordered box floating above the input (mirroring ApprovalBoxView). It reads the in-progress answer state from the StateManager and renders the current question's options, a checkbox/radio marker per option, the synthesized "Other" free-text row, and a one-line key hint.
func NewQuestionFormView ¶ added in v0.124.0
func NewQuestionFormView(styleProvider *styles.Provider, stateManager domain.StateManager) *QuestionFormView
func (*QuestionFormView) Init ¶ added in v0.124.0
func (qv *QuestionFormView) Init() tea.Cmd
func (*QuestionFormView) Render ¶ added in v0.124.0
func (qv *QuestionFormView) Render() string
func (*QuestionFormView) SetHeight ¶ added in v0.124.0
func (qv *QuestionFormView) SetHeight(height int)
func (*QuestionFormView) SetWidth ¶ added in v0.124.0
func (qv *QuestionFormView) SetWidth(width int)
func (*QuestionFormView) View ¶ added in v0.124.0
func (qv *QuestionFormView) View() tea.View
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) View ¶ added in v0.53.0
func (qv *QueueBoxView) View() tea.View
type SnippetAttachmentsView ¶ added in v0.122.0
type SnippetAttachmentsView struct {
// contains filtered or unexported fields
}
SnippetAttachmentsView renders the pending snippet attachments as a small tree below the chat input: one parent row per file, one indented child row per captured line range. It is a passive renderer driven by ChatApplication (mirroring TodoBoxView) - focus, cursor and the snippet list are pushed in before each render. The selected content is sent with the next chat message.
func NewSnippetAttachmentsView ¶ added in v0.122.0
func NewSnippetAttachmentsView(styleProvider *styles.Provider) *SnippetAttachmentsView
NewSnippetAttachmentsView creates an empty attachments view.
func (*SnippetAttachmentsView) Blur ¶ added in v0.122.0
func (v *SnippetAttachmentsView) Blur()
Blur removes key focus from the tree.
func (*SnippetAttachmentsView) Count ¶ added in v0.122.0
func (v *SnippetAttachmentsView) Count() int
Count returns the number of attached snippets.
func (*SnippetAttachmentsView) Focus ¶ added in v0.122.0
func (v *SnippetAttachmentsView) Focus()
Focus gives the tree key focus, clamping the cursor into range.
func (*SnippetAttachmentsView) GetHeight ¶ added in v0.122.0
func (v *SnippetAttachmentsView) GetHeight() int
GetHeight returns the rendered line count (0 when there is nothing to show).
func (*SnippetAttachmentsView) IsFocused ¶ added in v0.122.0
func (v *SnippetAttachmentsView) IsFocused() bool
IsFocused reports whether the tree currently has key focus.
func (*SnippetAttachmentsView) MoveCursor ¶ added in v0.122.0
func (v *SnippetAttachmentsView) MoveCursor(delta int)
MoveCursor moves the selection by delta rows, clamping to the list bounds.
func (*SnippetAttachmentsView) Render ¶ added in v0.122.0
func (v *SnippetAttachmentsView) Render() string
Render returns the framed tree, or "" when there are no attachments.
func (*SnippetAttachmentsView) SelectedIndex ¶ added in v0.122.0
func (v *SnippetAttachmentsView) SelectedIndex() int
SelectedIndex returns the index into the app's pending list for the focused row, or -1 when empty.
func (*SnippetAttachmentsView) SetData ¶ added in v0.122.0
func (v *SnippetAttachmentsView) SetData(sels []SnippetSelection)
SetData stores a copy of the pending selections and recomputes display order.
func (*SnippetAttachmentsView) SetFocusHint ¶ added in v0.122.0
func (v *SnippetAttachmentsView) SetFocusHint(key string)
SetFocusHint sets the key label shown in the unfocused header.
func (*SnippetAttachmentsView) SetWidth ¶ added in v0.122.0
func (v *SnippetAttachmentsView) SetWidth(width int)
SetWidth sets the component width.
type SnippetSelection ¶ added in v0.122.0
SnippetSelection is one annotated line range captured in explorer select mode. Line numbers are 1-indexed and inclusive. The Annotation is the natural-language instruction the user attached to the highlighted range.
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) 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) SetStateManager ¶ added in v0.142.0
func (sv *StatusView) SetStateManager(stateManager domain.StateManager)
SetStateManager wires the state manager so the spinner line can reflect connection health (retries and stalled streams) while waiting for chunks.
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) 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
Kind domain.JobKind
Label string
Detail string
}
TaskInfo extends TaskPollingState with additional metadata for UI display. Kind/Label/Detail carry the background-work kind (A2A task, shell, subagent) and its kind-specific columns so the view can render one table per kind from a single flat, selectable list. A2A rows keep using the embedded TaskPollingState/TaskRef; shell and subagent rows populate Kind/Label/Detail.
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) SetBackgroundTaskRegistry ¶ added in v0.126.0
func (t *TaskManagerImpl) SetBackgroundTaskRegistry(registry domain.BackgroundTaskRegistry)
SetBackgroundTaskRegistry wires the unified registry so the view can show live counts of every background-work kind (A2A tasks, shells, subagents), not just the A2A tasks listed in the table below.
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) 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) 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) 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 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 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
type ToolsViewImpl ¶ added in v0.128.0
type ToolsViewImpl struct {
// contains filtered or unexported fields
}
ToolsViewImpl is a read-only, filterable list of the tools currently available to the agent. It reuses the bubbles/v2 list plumbing from the theme selector; enter deliberately does nothing yet - selecting a tool to inspect or execute it is future work.
func NewToolsView ¶ added in v0.128.0
func NewToolsView(toolService domain.ToolService, stateManager domain.StateManager, styleProvider *styles.Provider) *ToolsViewImpl
NewToolsView creates the tools list view. Items are populated by Reset on every entry because the tool set changes with the agent mode and with async MCP tool registration.
func (*ToolsViewImpl) Init ¶ added in v0.128.0
func (m *ToolsViewImpl) Init() tea.Cmd
func (*ToolsViewImpl) IsCancelled ¶ added in v0.128.0
func (m *ToolsViewImpl) IsCancelled() bool
IsCancelled returns true once the user has dismissed the view.
func (*ToolsViewImpl) Reset ¶ added in v0.128.0
func (m *ToolsViewImpl) Reset()
Reset returns the view to its initial state and rebuilds the items so the list reflects the current agent mode and any MCP tools registered since it was last shown. The delegate and title styles are rebuilt too so a theme switch is picked up on re-entry.
func (*ToolsViewImpl) SetHeight ¶ added in v0.128.0
func (m *ToolsViewImpl) SetHeight(height int)
SetHeight sets the height of the tools view.
func (*ToolsViewImpl) SetWidth ¶ added in v0.128.0
func (m *ToolsViewImpl) SetWidth(width int)
SetWidth sets the width of the tools view.
func (*ToolsViewImpl) View ¶ added in v0.128.0
func (m *ToolsViewImpl) View() tea.View
Source Files
¶
- a2a_agents_view.go
- application_view.go
- approval_box_view.go
- conversation_selection_view.go
- conversation_view.go
- diff_renderer.go
- diff_viewer.go
- file_explorer.go
- file_selection_handler.go
- file_selection_view.go
- help_bar.go
- help_view.go
- init_github_action_view.go
- input_status_bar.go
- input_view.go
- key_encode.go
- mode_indicator.go
- model_selection_view.go
- pem_scan.go
- pty_editor.go
- question_form_view.go
- queue_box_view.go
- snippet_attachments_view.go
- status_view.go
- task_management_view.go
- theme_selection_view.go
- todo_box_view.go
- tool_call_renderer.go
- tools_view.go
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. |