Documentation
¶
Index ¶
- type ChatApplication
- func (app *ChatApplication) GetAgentService() agentdomain.AgentService
- func (app *ChatApplication) GetAutocomplete() tui.AutocompleteComponent
- func (app *ChatApplication) GetConfig() *config.Config
- func (app *ChatApplication) GetConfigDir() string
- func (app *ChatApplication) GetConversationRepository() convdomain.ConversationRepository
- func (app *ChatApplication) GetConversationView() tui.ConversationRenderer
- func (app *ChatApplication) GetCurrentConversationID() string
- func (app *ChatApplication) GetImageService() agentdomain.ImageService
- func (app *ChatApplication) GetInputView() tui.InputComponent
- func (app *ChatApplication) GetMouseEnabled() bool
- func (app *ChatApplication) GetPageSize() int
- func (app *ChatApplication) GetStateManager() keybinding.StateManager
- func (app *ChatApplication) GetStatusView() tui.StatusComponent
- func (app *ChatApplication) Init() tea.Cmd
- func (app *ChatApplication) PrintConversationHistory()
- func (app *ChatApplication) SendMessage() tea.Cmd
- func (app *ChatApplication) SetMouseEnabled(enabled bool)
- func (app *ChatApplication) ToggleRawFormat()
- func (app *ChatApplication) ToggleThinkingExpansion()
- func (app *ChatApplication) ToggleToolResultExpansion()
- func (app *ChatApplication) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (app *ChatApplication) View() tea.View
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChatApplication ¶
type ChatApplication struct {
// contains filtered or unexported fields
}
ChatApplication represents the main application model using state management
func NewChatApplication ¶
func NewChatApplication( cfg *config.Config, models []string, defaultModel string, versionInfo tui.VersionInfo, agentManager agentdomain.AgentManager, agentService agentdomain.AgentService, backgroundTaskService scheddomain.BackgroundTaskService, backgroundTaskRegistry scheddomain.BackgroundTaskRegistry, conversationOptimizer convdomain.ConversationOptimizer, conversationRepo convdomain.ConversationRepository, fileService agentdomain.FileService, imageService agentdomain.ImageService, skillsService agentdomain.SkillsService, githubIssueService agentdomain.GitHubIssueService, githubSetupService agentdomain.GitHubSetupService, mcpManager agentdomain.MCPManager, messageQueue convdomain.MessageQueue, modelService convdomain.ModelService, pricingService convdomain.PricingService, sessionRolloverManager *conversation.SessionRolloverManager, stateManager *statemanager.StateManager, taskRetentionService scheddomain.TaskRetentionService, themeService tui.ThemeService, toolService agentdomain.ToolService, shortcutRegistry *shortcuts.Registry, toolRegistry *tools.Registry, a2aTaskCoordinator tui.A2ATaskCoordinator, approvalCoordinator tui.ApprovalCoordinator, chatCompletionRunner tui.ChatCompletionRunner, directExecutionService tui.DirectExecutionService, toolExecutionCoordinator tui.ToolExecutionCoordinator, shellHistoryStore storage.ShellHistoryStorage, ) *ChatApplication
nolint: funlen // NewChatApplication creates a new chat application
func (*ChatApplication) GetAgentService ¶
func (app *ChatApplication) GetAgentService() agentdomain.AgentService
GetAgentService returns the agent service
func (*ChatApplication) GetAutocomplete ¶
func (app *ChatApplication) GetAutocomplete() tui.AutocompleteComponent
GetAutocomplete returns the autocomplete component
func (*ChatApplication) GetConfig ¶
func (app *ChatApplication) GetConfig() *config.Config
GetConfig returns the configuration for keybinding context
func (*ChatApplication) GetConfigDir ¶
func (app *ChatApplication) GetConfigDir() string
GetConfigDir returns the configuration directory path
func (*ChatApplication) GetConversationRepository ¶
func (app *ChatApplication) GetConversationRepository() convdomain.ConversationRepository
GetServices returns the service container
func (*ChatApplication) GetConversationView ¶
func (app *ChatApplication) GetConversationView() tui.ConversationRenderer
GetConversationView returns the conversation view
func (*ChatApplication) GetCurrentConversationID ¶
func (app *ChatApplication) GetCurrentConversationID() string
GetCurrentConversationID returns the current conversation ID from the repository. Returns an empty string for in-memory (non-persistent) repositories.
func (*ChatApplication) GetImageService ¶
func (app *ChatApplication) GetImageService() agentdomain.ImageService
GetImageService returns the image service
func (*ChatApplication) GetInputView ¶
func (app *ChatApplication) GetInputView() tui.InputComponent
GetInputView returns the input view
func (*ChatApplication) GetMouseEnabled ¶
func (app *ChatApplication) GetMouseEnabled() bool
GetMouseEnabled returns the current mouse mode state
func (*ChatApplication) GetPageSize ¶
func (app *ChatApplication) GetPageSize() int
GetPageSize returns the current page size for scrolling
func (*ChatApplication) GetStateManager ¶
func (app *ChatApplication) GetStateManager() keybinding.StateManager
GetStateManager returns the current state manager as the narrow slice key handlers consume.
func (*ChatApplication) GetStatusView ¶
func (app *ChatApplication) GetStatusView() tui.StatusComponent
GetStatusView returns the status view
func (*ChatApplication) Init ¶
func (app *ChatApplication) Init() tea.Cmd
Init initializes the application
func (*ChatApplication) PrintConversationHistory ¶
func (app *ChatApplication) PrintConversationHistory()
PrintConversationHistory outputs the full conversation history to stdout This is called when the application exits to preserve the chat session
func (*ChatApplication) SendMessage ¶
func (app *ChatApplication) SendMessage() tea.Cmd
SendMessage sends the current message
func (*ChatApplication) SetMouseEnabled ¶
func (app *ChatApplication) SetMouseEnabled(enabled bool)
SetMouseEnabled sets the mouse mode state
func (*ChatApplication) ToggleRawFormat ¶
func (app *ChatApplication) ToggleRawFormat()
ToggleRawFormat toggles between raw and rendered markdown display
func (*ChatApplication) ToggleThinkingExpansion ¶
func (app *ChatApplication) ToggleThinkingExpansion()
ToggleThinkingExpansion toggles thinking block expansion
func (*ChatApplication) ToggleToolResultExpansion ¶
func (app *ChatApplication) ToggleToolResultExpansion()
ToggleToolResultExpansion toggles tool result expansion. While an approval is pending, ctrl+o instead expands the pending diff preview so it can be reviewed in full before approving — consistent with expanding tool results inline.
func (*ChatApplication) Update ¶
Update handles all application messages using the state management system. It is the single ingress for every message - background producers push through the UI notifier (program.Send), so this is the one place to measure handler duration: a slow handler in the single-threaded loop is a visible UI freeze.
func (*ChatApplication) View ¶
func (app *ChatApplication) View() tea.View
View renders the current application view using state management. Bubble Tea v2 expects tea.View; viewContent keeps the original string-composition logic and View wraps it. MouseMode is read from the app's mouse-enabled state on every render so the ctrl+s toggle actually takes effect - without this, no mouse/wheel events arrive.