Documentation
¶
Index ¶
- Constants
- func CreateTitleFromMessage(content string) string
- func IsFallbackTitle(title string) bool
- func IsSimpleUserMessage(title string) bool
- type A2AAgentService
- type A2ATaskCompletedEvent
- type A2ATaskFailedEvent
- type A2ATaskInputRequiredEvent
- type A2ATaskStatusUpdate
- type A2ATaskStatusUpdateEvent
- type A2ATaskSubmittedEvent
- type A2AToolCallExecutedEvent
- type AgentManager
- type AgentMode
- type AgentRequest
- type AgentService
- type ApplicationState
- func (s *ApplicationState) AddQueuedMessage(message sdk.Message, requestID string)
- func (s *ApplicationState) ClearApprovalUIState()
- func (s *ApplicationState) ClearFileSelectionState()
- func (s *ApplicationState) ClearQueuedMessages()
- func (s *ApplicationState) CompleteCurrentTool(result *ToolExecutionResult) error
- func (s *ApplicationState) CycleAgentMode() AgentMode
- func (s *ApplicationState) EndChatSession()
- func (s *ApplicationState) EndToolExecution()
- func (s *ApplicationState) FailCurrentTool(result *ToolExecutionResult) error
- func (s *ApplicationState) GetAgentMode() AgentMode
- func (s *ApplicationState) GetApprovalUIState() *ApprovalUIState
- func (s *ApplicationState) GetChatSession() *ChatSession
- func (s *ApplicationState) GetCurrentView() ViewState
- func (s *ApplicationState) GetDimensions() (int, int)
- func (s *ApplicationState) GetFileSelectionState() *FileSelectionState
- func (s *ApplicationState) GetQueuedMessages() []QueuedMessage
- func (s *ApplicationState) GetStateSnapshot() StateSnapshot
- func (s *ApplicationState) GetTodos() []TodoItem
- func (s *ApplicationState) GetToolExecution() *ToolExecutionSession
- func (s *ApplicationState) IsDebugMode() bool
- func (s *ApplicationState) PopQueuedMessage() *QueuedMessage
- func (s *ApplicationState) SetAgentMode(mode AgentMode)
- func (s *ApplicationState) SetApprovalSelectedIndex(index int)
- func (s *ApplicationState) SetChatPending()
- func (s *ApplicationState) SetDebugMode(enabled bool)
- func (s *ApplicationState) SetDimensions(width, height int)
- func (s *ApplicationState) SetFileSelectedIndex(index int)
- func (s *ApplicationState) SetTodos(todos []TodoItem)
- func (s *ApplicationState) SetupApprovalUIState(toolCall *sdk.ChatCompletionMessageToolCall, responseChan chan ApprovalAction)
- func (s *ApplicationState) SetupFileSelection(files []string)
- func (s *ApplicationState) StartChatSession(requestID, model string, eventChan <-chan ChatEvent)
- func (s *ApplicationState) StartToolExecution(tools []ToolCall)
- func (s *ApplicationState) TransitionToView(newView ViewState) error
- func (s *ApplicationState) UpdateChatStatus(status ChatStatus) error
- func (s *ApplicationState) UpdateFileSearchQuery(query string)
- type ApprovalAction
- type ApprovalUIState
- type BackgroundTaskService
- type BaseChatEvent
- type BaseFormatter
- func (f BaseFormatter) FormatAsJSON(data any) string
- func (f BaseFormatter) FormatDataSection(dataContent string, hasMetadata bool) string
- func (f BaseFormatter) FormatDuration(result *ToolExecutionResult) string
- func (f BaseFormatter) FormatExpandedFooter(result *ToolExecutionResult, hasDataSection bool) string
- func (f BaseFormatter) FormatExpandedHeader(result *ToolExecutionResult) string
- func (f BaseFormatter) FormatStatus(success bool) string
- func (f BaseFormatter) FormatStatusIcon(success bool) string
- func (f BaseFormatter) FormatToolCall(args map[string]any, expanded bool) string
- func (f BaseFormatter) GetDomainFromURL(url string) string
- func (f BaseFormatter) GetFileName(path string) string
- func (f BaseFormatter) ShouldCollapseArg(key string) bool
- func (f BaseFormatter) TruncateText(text string, maxLength int) string
- type BashToolResult
- type CachedAgentCard
- type CancelledEvent
- type ChatChunkEvent
- type ChatCompleteEvent
- type ChatErrorEvent
- type ChatEvent
- type ChatMetrics
- type ChatService
- type ChatSession
- type ChatSessionSnapshot
- type ChatStartEvent
- type ChatStatus
- type ChatSyncResponse
- type ClearErrorEvent
- type ClearInputEvent
- type ConfigService
- type ContextKey
- type ConversationEntry
- type ConversationRepository
- type ConversationSelectedEvent
- type ConversationsLoadedEvent
- type CustomFormatter
- type DebugKeyEvent
- type DeleteToolResult
- type DraculaTheme
- func (t *DraculaTheme) GetAccentColor() string
- func (t *DraculaTheme) GetAssistantColor() string
- func (t *DraculaTheme) GetBorderColor() string
- func (t *DraculaTheme) GetDiffAddColor() string
- func (t *DraculaTheme) GetDiffRemoveColor() string
- func (t *DraculaTheme) GetDimColor() string
- func (t *DraculaTheme) GetErrorColor() string
- func (t *DraculaTheme) GetStatusColor() string
- func (t *DraculaTheme) GetSuccessColor() string
- func (t *DraculaTheme) GetUserColor() string
- type EditOperationResult
- type EditToolResult
- type ExitSelectionModeEvent
- type ExportFormat
- type FetchResult
- type FileInfo
- type FileReadToolResult
- type FileSelectedEvent
- type FileSelectionRequestEvent
- type FileSelectionState
- type FileService
- type FileWriteToolResult
- type FocusRequestEvent
- type FormatterType
- type GatewayManager
- type GitHubBranch
- type GitHubComment
- type GitHubError
- type GitHubIssue
- type GitHubLabel
- type GitHubMilestone
- type GitHubPullRequest
- type GitHubRepository
- type GitHubUser
- type GithubLightTheme
- func (t *GithubLightTheme) GetAccentColor() string
- func (t *GithubLightTheme) GetAssistantColor() string
- func (t *GithubLightTheme) GetBorderColor() string
- func (t *GithubLightTheme) GetDiffAddColor() string
- func (t *GithubLightTheme) GetDiffRemoveColor() string
- func (t *GithubLightTheme) GetDimColor() string
- func (t *GithubLightTheme) GetErrorColor() string
- func (t *GithubLightTheme) GetStatusColor() string
- func (t *GithubLightTheme) GetSuccessColor() string
- func (t *GithubLightTheme) GetUserColor() string
- type HideHelpBarEvent
- type ImageAttachment
- type ImageService
- type InitializeA2ATaskManagementEvent
- type InitializeConversationSelectionEvent
- type InitializeTextSelectionEvent
- type MarkdownRenderer
- type Message
- type MessageQueue
- type MessageQueuedEvent
- type ModelSelectedEvent
- type ModelService
- type MultiEditToolResult
- type OptimizationStatusEvent
- type ParallelToolsCompleteEvent
- type ParallelToolsStartEvent
- type QueuedMessage
- type ResizeEvent
- type SDKClient
- type ScrollDirection
- type ScrollRequestEvent
- type SessionTokenStats
- type SetInputEvent
- type SetStatusEvent
- type SetupFileSelectionEvent
- type ShowErrorEvent
- type ShowToolApprovalEvent
- type StateManager
- type StateSnapshot
- type StatusProgress
- type StatusType
- type StreamingContentEvent
- type TaskCancelledEvent
- type TaskInfo
- type TaskPollingState
- type TaskRetentionService
- type TaskTracker
- type TasksLoadedEvent
- type Theme
- type ThemeProvider
- func (tp *ThemeProvider) GetCurrentTheme() Theme
- func (tp *ThemeProvider) GetCurrentThemeName() string
- func (tp *ThemeProvider) GetTheme(name string) (Theme, error)
- func (tp *ThemeProvider) ListThemes() []string
- func (tp *ThemeProvider) SetCurrentTheme(name string) error
- func (tp *ThemeProvider) SetTheme(name string) error
- type ThemeSelectedEvent
- type ThemeService
- type TodoItem
- type TodoUpdateChatEvent
- type TodoUpdateEvent
- type TodoWriteToolResult
- type ToggleHelpBarEvent
- type ToggleTodoBoxEvent
- type TokyoNightTheme
- func (t *TokyoNightTheme) GetAccentColor() string
- func (t *TokyoNightTheme) GetAssistantColor() string
- func (t *TokyoNightTheme) GetBorderColor() string
- func (t *TokyoNightTheme) GetDiffAddColor() string
- func (t *TokyoNightTheme) GetDiffRemoveColor() string
- func (t *TokyoNightTheme) GetDimColor() string
- func (t *TokyoNightTheme) GetErrorColor() string
- func (t *TokyoNightTheme) GetStatusColor() string
- func (t *TokyoNightTheme) GetSuccessColor() string
- func (t *TokyoNightTheme) GetUserColor() string
- type Tool
- type ToolApprovalRequestedEvent
- type ToolApprovalResponseEvent
- type ToolApprovedEvent
- type ToolCall
- type ToolCallPreviewEvent
- type ToolCallReadyEvent
- type ToolCallSnapshot
- type ToolCallStatus
- type ToolCallStreamStatus
- type ToolCallUpdateEvent
- type ToolExecutionCompletedEvent
- type ToolExecutionProgressEvent
- type ToolExecutionResult
- type ToolExecutionSession
- type ToolExecutionSnapshot
- type ToolExecutionStartedEvent
- type ToolExecutionStatus
- type ToolFactory
- type ToolFormatter
- type ToolInfo
- type ToolRejectedEvent
- type ToolService
- type TreeToolResult
- type UpdateHistoryEvent
- type UpdateStatusEvent
- type UserInputEvent
- type ViewState
- type WebFetchService
- type WebSearchResponse
- type WebSearchResult
- type WebSearchService
Constants ¶
const ( RoleUser = sdk.User RoleAssistant = sdk.Assistant RoleTool = sdk.Tool RoleSystem = sdk.System )
Common role constants
Variables ¶
This section is empty.
Functions ¶
func CreateTitleFromMessage ¶ added in v0.46.0
CreateTitleFromMessage creates a short title from message content (fallback title)
func IsFallbackTitle ¶ added in v0.46.0
IsFallbackTitle checks if a title appears to be a fallback title that needs AI generation
func IsSimpleUserMessage ¶ added in v0.46.0
IsSimpleUserMessage checks if the title looks like a simple user message (hello, hi, help, etc.)
Types ¶
type A2AAgentService ¶ added in v0.49.0
type A2AAgentService interface {
GetAgentCards(ctx context.Context) ([]*CachedAgentCard, error)
GetConfiguredAgents() []string
}
A2AAgentService manages A2A agent operations
type A2ATaskCompletedEvent ¶ added in v0.49.0
type A2ATaskCompletedEvent struct {
RequestID string
Timestamp time.Time
TaskID string
Result ToolExecutionResult
}
A2ATaskCompletedEvent indicates an A2A task was completed successfully
func (A2ATaskCompletedEvent) GetRequestID ¶ added in v0.49.0
func (e A2ATaskCompletedEvent) GetRequestID() string
func (A2ATaskCompletedEvent) GetTimestamp ¶ added in v0.49.0
func (e A2ATaskCompletedEvent) GetTimestamp() time.Time
type A2ATaskFailedEvent ¶ added in v0.53.0
type A2ATaskFailedEvent struct {
RequestID string
Timestamp time.Time
TaskID string
Result ToolExecutionResult
Error string
}
A2ATaskFailedEvent indicates an A2A task failed
func (A2ATaskFailedEvent) GetRequestID ¶ added in v0.53.0
func (e A2ATaskFailedEvent) GetRequestID() string
func (A2ATaskFailedEvent) GetTimestamp ¶ added in v0.53.0
func (e A2ATaskFailedEvent) GetTimestamp() time.Time
type A2ATaskInputRequiredEvent ¶ added in v0.49.0
type A2ATaskInputRequiredEvent struct {
RequestID string
Timestamp time.Time
TaskID string
Message string
Required bool
}
A2ATaskInputRequiredEvent indicates an A2A task requires user input
func (A2ATaskInputRequiredEvent) GetRequestID ¶ added in v0.49.0
func (e A2ATaskInputRequiredEvent) GetRequestID() string
func (A2ATaskInputRequiredEvent) GetTimestamp ¶ added in v0.49.0
func (e A2ATaskInputRequiredEvent) GetTimestamp() time.Time
type A2ATaskStatusUpdate ¶ added in v0.53.0
type A2ATaskStatusUpdate struct {
TaskID string
AgentURL string
State string
Message string
Timestamp time.Time
}
A2ATaskStatusUpdate represents a status update for an ongoing A2A task
type A2ATaskStatusUpdateEvent ¶ added in v0.49.0
type A2ATaskStatusUpdateEvent struct {
RequestID string
Timestamp time.Time
TaskID string
Status string
Progress float64
Message string
}
A2ATaskStatusUpdateEvent indicates an A2A task status update
func (A2ATaskStatusUpdateEvent) GetRequestID ¶ added in v0.49.0
func (e A2ATaskStatusUpdateEvent) GetRequestID() string
func (A2ATaskStatusUpdateEvent) GetTimestamp ¶ added in v0.49.0
func (e A2ATaskStatusUpdateEvent) GetTimestamp() time.Time
type A2ATaskSubmittedEvent ¶ added in v0.49.0
type A2ATaskSubmittedEvent struct {
RequestID string
Timestamp time.Time
TaskID string
AgentName string
TaskType string
}
A2ATaskSubmittedEvent indicates an A2A task was submitted
func (A2ATaskSubmittedEvent) GetRequestID ¶ added in v0.49.0
func (e A2ATaskSubmittedEvent) GetRequestID() string
func (A2ATaskSubmittedEvent) GetTimestamp ¶ added in v0.49.0
func (e A2ATaskSubmittedEvent) GetTimestamp() time.Time
type A2AToolCallExecutedEvent ¶ added in v0.48.0
type A2AToolCallExecutedEvent struct {
RequestID string
Timestamp time.Time
ToolCallID string
ToolName string
Arguments string
ExecutedOnGateway bool
TaskID string
}
A2AToolCallExecutedEvent indicates an A2A tool call was executed on the gateway
func (A2AToolCallExecutedEvent) GetRequestID ¶ added in v0.48.0
func (e A2AToolCallExecutedEvent) GetRequestID() string
func (A2AToolCallExecutedEvent) GetTimestamp ¶ added in v0.48.0
func (e A2AToolCallExecutedEvent) GetTimestamp() time.Time
type AgentManager ¶ added in v0.54.0
type AgentManager interface {
// StartAgents starts all agents configured with run: true
StartAgents(ctx context.Context) error
// StopAgents stops all running agent containers
StopAgents(ctx context.Context) error
// IsRunning returns whether any agents are running
IsRunning() bool
}
AgentManager manages the lifecycle of A2A agent containers
type AgentMode ¶ added in v0.56.0
type AgentMode int
AgentMode represents the operational mode of the agent
func (AgentMode) DisplayName ¶ added in v0.56.0
DisplayName returns a user-friendly display name for the mode
type AgentRequest ¶ added in v0.36.0
type AgentRequest struct {
RequestID string `json:"request_id"`
Model string `json:"model"`
Messages []sdk.Message `json:"messages"`
IsChatMode bool `json:"is_chat_mode"`
}
AgentRequest represents a request to the agent service
type AgentService ¶ added in v0.36.0
type AgentService interface {
// Run executes an agent task synchronously (for background/batch processing)
Run(ctx context.Context, req *AgentRequest) (*ChatSyncResponse, error)
// RunWithStream executes an agent task with streaming (for interactive chat)
RunWithStream(ctx context.Context, req *AgentRequest) (<-chan ChatEvent, error)
// CancelRequest cancels an active request
CancelRequest(requestID string) error
// GetMetrics returns metrics for a completed request
GetMetrics(requestID string) *ChatMetrics
}
AgentService handles agent operations with both sync and streaming modes
type ApplicationState ¶ added in v0.27.0
type ApplicationState struct {
// contains filtered or unexported fields
}
ApplicationState represents the overall application state with proper typing
func NewApplicationState ¶ added in v0.27.0
func NewApplicationState() *ApplicationState
NewApplicationState creates a new application state
func (*ApplicationState) AddQueuedMessage ¶ added in v0.53.0
func (s *ApplicationState) AddQueuedMessage(message sdk.Message, requestID string)
AddQueuedMessage adds a message to the input queue
func (*ApplicationState) ClearApprovalUIState ¶ added in v0.27.0
func (s *ApplicationState) ClearApprovalUIState()
ClearApprovalUIState clears the approval UI state
func (*ApplicationState) ClearFileSelectionState ¶ added in v0.27.0
func (s *ApplicationState) ClearFileSelectionState()
ClearFileSelectionState clears the file selection state
func (*ApplicationState) ClearQueuedMessages ¶ added in v0.53.0
func (s *ApplicationState) ClearQueuedMessages()
ClearQueuedMessages clears all queued messages
func (*ApplicationState) CompleteCurrentTool ¶ added in v0.27.0
func (s *ApplicationState) CompleteCurrentTool(result *ToolExecutionResult) error
CompleteCurrentTool marks the current tool as completed and moves to next
func (*ApplicationState) CycleAgentMode ¶ added in v0.56.0
func (s *ApplicationState) CycleAgentMode() AgentMode
CycleAgentMode cycles to the next agent mode
func (*ApplicationState) EndChatSession ¶ added in v0.27.0
func (s *ApplicationState) EndChatSession()
EndChatSession cleans up the chat session
func (*ApplicationState) EndToolExecution ¶ added in v0.27.0
func (s *ApplicationState) EndToolExecution()
EndToolExecution cleans up the tool execution session
func (*ApplicationState) FailCurrentTool ¶ added in v0.27.0
func (s *ApplicationState) FailCurrentTool(result *ToolExecutionResult) error
FailCurrentTool marks the current tool as failed and moves to next
func (*ApplicationState) GetAgentMode ¶ added in v0.56.0
func (s *ApplicationState) GetAgentMode() AgentMode
GetAgentMode returns the current agent mode
func (*ApplicationState) GetApprovalUIState ¶ added in v0.27.0
func (s *ApplicationState) GetApprovalUIState() *ApprovalUIState
GetApprovalUIState returns the current approval UI state
func (*ApplicationState) GetChatSession ¶ added in v0.27.0
func (s *ApplicationState) GetChatSession() *ChatSession
GetChatSession returns the current chat session
func (*ApplicationState) GetCurrentView ¶ added in v0.27.0
func (s *ApplicationState) GetCurrentView() ViewState
GetCurrentView returns the current view state
func (*ApplicationState) GetDimensions ¶ added in v0.27.0
func (s *ApplicationState) GetDimensions() (int, int)
GetDimensions returns the current UI dimensions
func (*ApplicationState) GetFileSelectionState ¶ added in v0.27.0
func (s *ApplicationState) GetFileSelectionState() *FileSelectionState
GetFileSelectionState returns the current file selection state
func (*ApplicationState) GetQueuedMessages ¶ added in v0.53.0
func (s *ApplicationState) GetQueuedMessages() []QueuedMessage
GetQueuedMessages returns the current queued messages
func (*ApplicationState) GetStateSnapshot ¶ added in v0.27.0
func (s *ApplicationState) GetStateSnapshot() StateSnapshot
GetStateSnapshot returns a complete snapshot of the current state
func (*ApplicationState) GetTodos ¶ added in v0.63.1
func (s *ApplicationState) GetTodos() []TodoItem
GetTodos returns the current todo list
func (*ApplicationState) GetToolExecution ¶ added in v0.27.0
func (s *ApplicationState) GetToolExecution() *ToolExecutionSession
GetToolExecution returns the current tool execution session
func (*ApplicationState) IsDebugMode ¶ added in v0.27.0
func (s *ApplicationState) IsDebugMode() bool
IsDebugMode returns whether debug mode is enabled
func (*ApplicationState) PopQueuedMessage ¶ added in v0.53.0
func (s *ApplicationState) PopQueuedMessage() *QueuedMessage
PopQueuedMessage removes and returns the first message from the queue (FIFO)
func (*ApplicationState) SetAgentMode ¶ added in v0.56.0
func (s *ApplicationState) SetAgentMode(mode AgentMode)
SetAgentMode sets the agent mode
func (*ApplicationState) SetApprovalSelectedIndex ¶ added in v0.27.0
func (s *ApplicationState) SetApprovalSelectedIndex(index int)
SetApprovalSelectedIndex sets the approval selection index
func (*ApplicationState) SetChatPending ¶ added in v0.63.1
func (s *ApplicationState) SetChatPending()
SetChatPending creates a minimal chat session to mark the agent as busy before the actual chat starts. This prevents race conditions.
func (*ApplicationState) SetDebugMode ¶ added in v0.27.0
func (s *ApplicationState) SetDebugMode(enabled bool)
SetDebugMode enables or disables debug mode
func (*ApplicationState) SetDimensions ¶ added in v0.27.0
func (s *ApplicationState) SetDimensions(width, height int)
SetDimensions updates the UI dimensions
func (*ApplicationState) SetFileSelectedIndex ¶ added in v0.27.0
func (s *ApplicationState) SetFileSelectedIndex(index int)
SetFileSelectedIndex sets the selected file index
func (*ApplicationState) SetTodos ¶ added in v0.63.1
func (s *ApplicationState) SetTodos(todos []TodoItem)
SetTodos sets the todo list
func (*ApplicationState) SetupApprovalUIState ¶ added in v0.56.0
func (s *ApplicationState) SetupApprovalUIState(toolCall *sdk.ChatCompletionMessageToolCall, responseChan chan ApprovalAction)
SetupApprovalUIState initializes approval UI state with the pending tool call
func (*ApplicationState) SetupFileSelection ¶ added in v0.27.0
func (s *ApplicationState) SetupFileSelection(files []string)
SetupFileSelection initializes file selection state
func (*ApplicationState) StartChatSession ¶ added in v0.27.0
func (s *ApplicationState) StartChatSession(requestID, model string, eventChan <-chan ChatEvent)
StartChatSession initializes a new chat session
func (*ApplicationState) StartToolExecution ¶ added in v0.27.0
func (s *ApplicationState) StartToolExecution(tools []ToolCall)
StartToolExecution initializes a new tool execution session
func (*ApplicationState) TransitionToView ¶ added in v0.27.0
func (s *ApplicationState) TransitionToView(newView ViewState) error
TransitionToView changes the current view with validation
func (*ApplicationState) UpdateChatStatus ¶ added in v0.27.0
func (s *ApplicationState) UpdateChatStatus(status ChatStatus) error
UpdateChatStatus updates the chat session status
func (*ApplicationState) UpdateFileSearchQuery ¶ added in v0.27.0
func (s *ApplicationState) UpdateFileSearchQuery(query string)
UpdateFileSearchQuery updates the file search query
type ApprovalAction ¶
type ApprovalAction int
ApprovalAction represents the user's choice for tool approval
const ( ApprovalApprove ApprovalAction = iota ApprovalReject ApprovalAutoAccept )
func (ApprovalAction) String ¶ added in v0.27.0
func (a ApprovalAction) String() string
type ApprovalUIState ¶ added in v0.27.0
type ApprovalUIState struct {
SelectedIndex int `json:"selected_index"`
PendingToolCall *sdk.ChatCompletionMessageToolCall `json:"pending_tool_call"`
ResponseChan chan ApprovalAction `json:"-"`
}
ApprovalUIState represents the state of approval UI
type BackgroundTaskService ¶ added in v0.53.3
type BackgroundTaskService interface {
// GetBackgroundTasks returns all current background polling tasks
GetBackgroundTasks() []TaskPollingState
// CancelBackgroundTask cancels a background task by task ID
CancelBackgroundTask(taskID string) error
}
BackgroundTaskService handles background A2A task operations Only enabled when A2A is enabled - provides task cancellation and retrieval
type BaseChatEvent ¶ added in v0.49.0
BaseChatEvent provides common implementation for ChatEvent interface
func (BaseChatEvent) GetRequestID ¶ added in v0.49.0
func (e BaseChatEvent) GetRequestID() string
func (BaseChatEvent) GetTimestamp ¶ added in v0.49.0
func (e BaseChatEvent) GetTimestamp() time.Time
type BaseFormatter ¶ added in v0.33.4
type BaseFormatter struct {
// contains filtered or unexported fields
}
BaseFormatter provides common formatting functionality that tools can embed
func NewBaseFormatter ¶ added in v0.33.4
func NewBaseFormatter(toolName string) BaseFormatter
NewBaseFormatter creates a new base formatter for a tool
func (BaseFormatter) FormatAsJSON ¶ added in v0.33.4
func (f BaseFormatter) FormatAsJSON(data any) string
FormatAsJSON formats data as JSON if possible, falls back to string representation
func (BaseFormatter) FormatDataSection ¶ added in v0.33.4
func (f BaseFormatter) FormatDataSection(dataContent string, hasMetadata bool) string
FormatDataSection formats the data section with proper indentation
func (BaseFormatter) FormatDuration ¶ added in v0.33.4
func (f BaseFormatter) FormatDuration(result *ToolExecutionResult) string
FormatDuration formats a duration for display in a human-friendly way
func (BaseFormatter) FormatExpandedFooter ¶ added in v0.33.4
func (f BaseFormatter) FormatExpandedFooter(result *ToolExecutionResult, hasDataSection bool) string
FormatExpandedFooter formats the expanded view footer with metadata
func (BaseFormatter) FormatExpandedHeader ¶ added in v0.33.4
func (f BaseFormatter) FormatExpandedHeader(result *ToolExecutionResult) string
FormatExpandedHeader formats the expanded view header with tool call and metadata
func (BaseFormatter) FormatStatus ¶ added in v0.33.4
func (f BaseFormatter) FormatStatus(success bool) string
FormatStatus returns a formatted status with icon
func (BaseFormatter) FormatStatusIcon ¶ added in v0.33.4
func (f BaseFormatter) FormatStatusIcon(success bool) string
FormatStatusIcon returns just the status icon
func (BaseFormatter) FormatToolCall ¶ added in v0.33.4
func (f BaseFormatter) FormatToolCall(args map[string]any, expanded bool) string
FormatToolCall formats a tool call for consistent display
func (BaseFormatter) GetDomainFromURL ¶ added in v0.33.4
func (f BaseFormatter) GetDomainFromURL(url string) string
GetDomainFromURL extracts domain from URL
func (BaseFormatter) GetFileName ¶ added in v0.33.4
func (f BaseFormatter) GetFileName(path string) string
GetFileName extracts filename from a path
func (BaseFormatter) ShouldCollapseArg ¶ added in v0.33.4
func (f BaseFormatter) ShouldCollapseArg(key string) bool
ShouldCollapseArg provides default collapse behavior (can be overridden by tools)
func (BaseFormatter) TruncateText ¶ added in v0.33.4
func (f BaseFormatter) TruncateText(text string, maxLength int) string
TruncateText truncates text to specified length with ellipsis
type BashToolResult ¶ added in v0.13.1
type BashToolResult struct {
Command string `json:"command"`
Output string `json:"output"`
Error string `json:"error,omitempty"`
ExitCode int `json:"exit_code"`
Duration string `json:"duration"`
}
BashToolResult represents the result of a bash command execution
type CachedAgentCard ¶ added in v0.49.0
type CachedAgentCard struct {
Card *adk.AgentCard `json:"card"`
URL string `json:"url"`
FetchedAt time.Time `json:"fetched_at"`
}
CachedAgentCard represents a cached agent card with metadata
type CancelledEvent ¶
CancelledEvent indicates a request was cancelled
func (CancelledEvent) GetRequestID ¶
func (e CancelledEvent) GetRequestID() string
func (CancelledEvent) GetTimestamp ¶
func (e CancelledEvent) GetTimestamp() time.Time
type ChatChunkEvent ¶
type ChatChunkEvent struct {
RequestID string
Timestamp time.Time
Content string
ReasoningContent string
ToolCalls []sdk.ChatCompletionMessageToolCallChunk
Delta bool
Usage *sdk.CompletionUsage
}
ChatChunkEvent represents a streaming chunk of chat response
func (ChatChunkEvent) GetRequestID ¶
func (e ChatChunkEvent) GetRequestID() string
func (ChatChunkEvent) GetTimestamp ¶
func (e ChatChunkEvent) GetTimestamp() time.Time
type ChatCompleteEvent ¶
type ChatCompleteEvent struct {
RequestID string
Timestamp time.Time
Message string
ToolCalls []sdk.ChatCompletionMessageToolCall
Metrics *ChatMetrics
}
ChatCompleteEvent indicates chat completion
func (ChatCompleteEvent) GetRequestID ¶
func (e ChatCompleteEvent) GetRequestID() string
func (ChatCompleteEvent) GetTimestamp ¶
func (e ChatCompleteEvent) GetTimestamp() time.Time
type ChatErrorEvent ¶
ChatErrorEvent represents an error during chat
func (ChatErrorEvent) GetRequestID ¶
func (e ChatErrorEvent) GetRequestID() string
func (ChatErrorEvent) GetTimestamp ¶
func (e ChatErrorEvent) GetTimestamp() time.Time
type ChatMetrics ¶
type ChatMetrics struct {
Duration time.Duration
Usage *sdk.CompletionUsage
}
ChatMetrics holds performance and usage metrics
type ChatService ¶
type ChatService interface {
CancelRequest(requestID string) error
GetMetrics(requestID string) *ChatMetrics
}
ChatService handles chat completion operations
type ChatSession ¶ added in v0.27.0
type ChatSession struct {
RequestID string
Status ChatStatus
StartTime time.Time
Model string
EventChannel <-chan ChatEvent
IsFirstChunk bool
HasToolCalls bool
LastActivity time.Time
}
ChatSession represents an active chat session state
type ChatSessionSnapshot ¶ added in v0.27.0
type ChatSessionSnapshot struct {
RequestID string `json:"request_id"`
Status string `json:"status"`
Model string `json:"model"`
StartTime time.Time `json:"start_time"`
IsFirstChunk bool `json:"is_first_chunk"`
HasToolCalls bool `json:"has_tool_calls"`
LastActivity time.Time `json:"last_activity"`
}
ChatSessionSnapshot represents a snapshot of chat session state
type ChatStartEvent ¶
ChatStartEvent indicates a chat request has started
func (ChatStartEvent) GetRequestID ¶
func (e ChatStartEvent) GetRequestID() string
func (ChatStartEvent) GetTimestamp ¶
func (e ChatStartEvent) GetTimestamp() time.Time
type ChatStatus ¶ added in v0.27.0
type ChatStatus int
ChatStatus represents the current chat operation status
const ( ChatStatusIdle ChatStatus = iota ChatStatusStarting ChatStatusThinking ChatStatusGenerating ChatStatusReceivingTools ChatStatusWaitingTools ChatStatusCompleted ChatStatusError ChatStatusCancelled )
func (ChatStatus) String ¶ added in v0.27.0
func (c ChatStatus) String() string
type ChatSyncResponse ¶ added in v0.36.0
type ChatSyncResponse struct {
RequestID string `json:"request_id"`
Content string `json:"content"`
ToolCalls []sdk.ChatCompletionMessageToolCall `json:"tool_calls,omitempty"`
Usage *sdk.CompletionUsage `json:"usage,omitempty"`
Duration time.Duration `json:"duration"`
}
ChatSyncResponse represents a synchronous chat completion response
type ClearErrorEvent ¶ added in v0.45.0
type ClearErrorEvent struct{}
ClearErrorEvent clears any displayed error
type ClearInputEvent ¶ added in v0.45.0
type ClearInputEvent struct{}
ClearInputEvent clears the input field
type ConfigService ¶ added in v0.27.0
type ConfigService interface {
// Tool approval configuration
IsApprovalRequired(toolName string) bool
IsBashCommandWhitelisted(command string) bool
// Debug and output configuration
GetOutputDirectory() string
// Gateway configuration
GetGatewayURL() string
GetAPIKey() string
GetTimeout() int
// Chat configuration
GetAgentConfig() *config.AgentConfig
// Sandbox configuration
GetSandboxDirectories() []string
GetProtectedPaths() []string
}
ConfigService provides configuration-related functionality
type ContextKey ¶ added in v0.56.0
type ContextKey string
ContextKey is the type used for context keys in the application
const ToolApprovedKey ContextKey = "tool_approved"
ToolApprovedKey is the context key for user-approved tool executions When this key is set to true in the context, it indicates that the tool execution was explicitly approved by the user and should bypass whitelist validation
type ConversationEntry ¶
type ConversationEntry struct {
Message Message `json:"message"`
Model string `json:"model,omitempty"`
Time time.Time `json:"time"`
ToolExecution *ToolExecutionResult `json:"tool_execution,omitempty"`
Hidden bool `json:"hidden,omitempty"`
Images []ImageAttachment `json:"images,omitempty"`
}
ConversationEntry represents a message in the conversation with metadata
type ConversationRepository ¶
type ConversationRepository interface {
AddMessage(msg ConversationEntry) error
GetMessages() []ConversationEntry
Clear() error
ClearExceptFirstUserMessage() error
Export(format ExportFormat) ([]byte, error)
GetMessageCount() int
UpdateLastMessage(content string) error
UpdateLastMessageToolCalls(toolCalls *[]sdk.ChatCompletionMessageToolCall) error
AddTokenUsage(inputTokens, outputTokens, totalTokens int) error
GetSessionTokens() SessionTokenStats
FormatToolResultForLLM(result *ToolExecutionResult) string
FormatToolResultForUI(result *ToolExecutionResult, terminalWidth int) string
FormatToolResultExpanded(result *ToolExecutionResult, terminalWidth int) string
}
ConversationRepository handles conversation storage and retrieval
type ConversationSelectedEvent ¶ added in v0.45.0
type ConversationSelectedEvent struct {
ConversationID string
}
ConversationSelectedEvent indicates conversation selection
type ConversationsLoadedEvent ¶ added in v0.45.0
type ConversationsLoadedEvent struct {
Conversations []interface{}
Error error
}
ConversationsLoadedEvent indicates conversations have been loaded
type CustomFormatter ¶ added in v0.33.4
type CustomFormatter struct {
BaseFormatter
// contains filtered or unexported fields
}
CustomFormatter extends BaseFormatter with customizable collapse behavior
func NewCustomFormatter ¶ added in v0.33.4
func NewCustomFormatter(toolName string, collapseFunc func(string) bool) CustomFormatter
NewCustomFormatter creates a formatter with custom collapse logic
func (CustomFormatter) FormatExpandedHeader ¶ added in v0.33.4
func (f CustomFormatter) FormatExpandedHeader(result *ToolExecutionResult) string
FormatExpandedHeader overrides BaseFormatter to use custom collapse logic
func (CustomFormatter) FormatToolCall ¶ added in v0.33.4
func (f CustomFormatter) FormatToolCall(args map[string]any, expanded bool) string
FormatToolCall overrides BaseFormatter to use custom collapse logic
func (CustomFormatter) ShouldCollapseArg ¶ added in v0.33.4
func (f CustomFormatter) ShouldCollapseArg(key string) bool
ShouldCollapseArg uses the custom collapse function if provided
type DebugKeyEvent ¶ added in v0.45.0
DebugKeyEvent provides debug information about key presses
type DeleteToolResult ¶ added in v0.18.0
type DeleteToolResult struct {
Path string `json:"path"`
DeletedFiles []string `json:"deleted_files"`
DeletedDirs []string `json:"deleted_dirs"`
TotalFilesDeleted int `json:"total_files_deleted"`
TotalDirsDeleted int `json:"total_dirs_deleted"`
WildcardExpanded bool `json:"wildcard_expanded"`
Errors []string `json:"errors,omitempty"`
}
DeleteToolResult represents the result of a delete operation
type DraculaTheme ¶ added in v0.47.0
type DraculaTheme struct{}
DraculaTheme provides the popular Dracula color scheme
func NewDraculaTheme ¶ added in v0.47.0
func NewDraculaTheme() *DraculaTheme
func (*DraculaTheme) GetAccentColor ¶ added in v0.47.0
func (t *DraculaTheme) GetAccentColor() string
func (*DraculaTheme) GetAssistantColor ¶ added in v0.47.0
func (t *DraculaTheme) GetAssistantColor() string
func (*DraculaTheme) GetBorderColor ¶ added in v0.47.0
func (t *DraculaTheme) GetBorderColor() string
func (*DraculaTheme) GetDiffAddColor ¶ added in v0.47.0
func (t *DraculaTheme) GetDiffAddColor() string
func (*DraculaTheme) GetDiffRemoveColor ¶ added in v0.47.0
func (t *DraculaTheme) GetDiffRemoveColor() string
func (*DraculaTheme) GetDimColor ¶ added in v0.47.0
func (t *DraculaTheme) GetDimColor() string
func (*DraculaTheme) GetErrorColor ¶ added in v0.47.0
func (t *DraculaTheme) GetErrorColor() string
func (*DraculaTheme) GetStatusColor ¶ added in v0.47.0
func (t *DraculaTheme) GetStatusColor() string
func (*DraculaTheme) GetSuccessColor ¶ added in v0.56.0
func (t *DraculaTheme) GetSuccessColor() string
func (*DraculaTheme) GetUserColor ¶ added in v0.47.0
func (t *DraculaTheme) GetUserColor() string
type EditOperationResult ¶ added in v0.22.0
type EditOperationResult struct {
OldString string `json:"old_string"`
NewString string `json:"new_string"`
ReplaceAll bool `json:"replace_all"`
ReplacedCount int `json:"replaced_count"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
EditOperationResult represents the result of a single edit operation within MultiEdit
type EditToolResult ¶ added in v0.21.0
type EditToolResult struct {
FilePath string `json:"file_path"`
OldString string `json:"old_string"`
NewString string `json:"new_string"`
ReplacedCount int `json:"replaced_count"`
ReplaceAll bool `json:"replace_all"`
FileModified bool `json:"file_modified"`
OriginalSize int64 `json:"original_size"`
NewSize int64 `json:"new_size"`
BytesDifference int64 `json:"bytes_difference"`
OriginalLines int `json:"original_lines"`
NewLines int `json:"new_lines"`
LinesDifference int `json:"lines_difference"`
Diff string `json:"diff,omitempty"`
}
EditToolResult represents the result of an edit operation
type ExitSelectionModeEvent ¶ added in v0.45.0
type ExitSelectionModeEvent struct{}
ExitSelectionModeEvent exits text selection mode
type ExportFormat ¶
type ExportFormat string
ExportFormat defines the format for exporting conversations
const ( ExportMarkdown ExportFormat = "markdown" ExportJSON ExportFormat = "json" ExportText ExportFormat = "text" )
type FetchResult ¶ added in v0.11.0
type FetchResult struct {
Content string `json:"content"`
URL string `json:"url"`
Status int `json:"status"`
Size int64 `json:"size"`
ContentType string `json:"content_type"`
Cached bool `json:"cached"`
Metadata map[string]string `json:"metadata,omitempty"`
Warning string `json:"warning,omitempty"`
}
FetchResult represents the result of a fetch operation
type FileReadToolResult ¶ added in v0.13.1
type FileReadToolResult struct {
FilePath string `json:"file_path"`
Content string `json:"content"`
Size int64 `json:"size"`
StartLine int `json:"start_line,omitempty"`
EndLine int `json:"end_line,omitempty"`
Error string `json:"error,omitempty"`
}
FileReadToolResult represents the result of a file read operation
type FileSelectedEvent ¶ added in v0.45.0
type FileSelectedEvent struct {
FilePath string
}
FileSelectedEvent indicates file selection
type FileSelectionRequestEvent ¶ added in v0.45.0
type FileSelectionRequestEvent struct{}
FileSelectionRequestEvent requests file selection UI
type FileSelectionState ¶ added in v0.27.0
type FileSelectionState struct {
Files []string `json:"files"`
SearchQuery string `json:"search_query"`
SelectedIndex int `json:"selected_index"`
}
FileSelectionState represents the state of file selection UI
type FileService ¶
type FileService interface {
ListProjectFiles() ([]string, error)
ReadFile(path string) (string, error)
ReadFileLines(path string, startLine, endLine int) (string, error)
ValidateFile(path string) error
GetFileInfo(path string) (FileInfo, error)
}
FileService handles file operations
type FileWriteToolResult ¶ added in v0.17.0
type FileWriteToolResult struct {
FilePath string `json:"file_path"`
BytesWritten int64 `json:"bytes_written"`
LinesWritten int `json:"lines_written"`
Created bool `json:"created"`
Overwritten bool `json:"overwritten"`
DirsCreated bool `json:"dirs_created"`
Appended bool `json:"appended"`
ChunkIndex int `json:"chunk_index,omitempty"`
TotalChunks int `json:"total_chunks,omitempty"`
IsComplete bool `json:"is_complete"`
Error string `json:"error,omitempty"`
}
FileWriteToolResult represents the result of a file write operation
type FocusRequestEvent ¶ added in v0.45.0
type FocusRequestEvent struct {
ComponentID string
}
FocusRequestEvent requests focus change
type FormatterType ¶ added in v0.33.4
type FormatterType string
FormatterType defines the context for formatting tool results
const ( FormatterUI FormatterType = "ui" // Compact display for UI FormatterLLM FormatterType = "llm" // Formatted for LLM consumption FormatterShort FormatterType = "short" // Brief summary format )
type GatewayManager ¶ added in v0.54.0
type GatewayManager interface {
// Start starts the gateway container or binary if configured to run locally
Start(ctx context.Context) error
// Stop stops the gateway container or binary
Stop(ctx context.Context) error
// IsRunning returns whether the gateway is running
IsRunning() bool
}
GatewayManager manages the lifecycle of the gateway (container or binary)
type GitHubBranch ¶ added in v0.31.0
type GitHubBranch struct {
Label string `json:"label"`
Ref string `json:"ref"`
SHA string `json:"sha"`
User GitHubUser `json:"user"`
Repo GitHubRepository `json:"repo"`
}
GitHubBranch represents a branch reference in a pull request
type GitHubComment ¶ added in v0.31.0
type GitHubComment struct {
ID int `json:"id"`
Body string `json:"body"`
User GitHubUser `json:"user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
HTMLURL string `json:"html_url"`
}
GitHubComment represents a GitHub comment
type GitHubError ¶ added in v0.31.0
type GitHubError struct {
Message string `json:"message"`
DocumentationURL string `json:"documentation_url,omitempty"`
}
GitHubError represents a GitHub API error response
type GitHubIssue ¶ added in v0.31.0
type GitHubIssue struct {
ID int `json:"id"`
Number int `json:"number"`
Title string `json:"title"`
Body string `json:"body"`
State string `json:"state"`
User GitHubUser `json:"user"`
Assignees []GitHubUser `json:"assignees,omitempty"`
Labels []GitHubLabel `json:"labels,omitempty"`
Milestone *GitHubMilestone `json:"milestone,omitempty"`
Comments int `json:"comments"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
ClosedAt *time.Time `json:"closed_at,omitempty"`
HTMLURL string `json:"html_url"`
PullRequest *struct {
URL string `json:"url"`
HTMLURL string `json:"html_url"`
DiffURL string `json:"diff_url"`
PatchURL string `json:"patch_url"`
} `json:"pull_request,omitempty"`
}
GitHubIssue represents a GitHub issue
type GitHubLabel ¶ added in v0.31.0
type GitHubLabel struct {
ID int `json:"id"`
Name string `json:"name"`
Color string `json:"color"`
Description string `json:"description,omitempty"`
}
GitHubLabel represents a GitHub label
type GitHubMilestone ¶ added in v0.31.0
type GitHubMilestone struct {
ID int `json:"id"`
Number int `json:"number"`
Title string `json:"title"`
Description string `json:"description,omitempty"`
State string `json:"state"`
DueOn *time.Time `json:"due_on,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
GitHubMilestone represents a GitHub milestone
type GitHubPullRequest ¶ added in v0.31.0
type GitHubPullRequest struct {
ID int `json:"id"`
Number int `json:"number"`
Title string `json:"title"`
Body string `json:"body"`
State string `json:"state"`
User GitHubUser `json:"user"`
Assignees []GitHubUser `json:"assignees,omitempty"`
Labels []GitHubLabel `json:"labels,omitempty"`
Milestone *GitHubMilestone `json:"milestone,omitempty"`
Comments int `json:"comments"`
Commits int `json:"commits"`
Additions int `json:"additions"`
Deletions int `json:"deletions"`
ChangedFiles int `json:"changed_files"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
ClosedAt *time.Time `json:"closed_at,omitempty"`
MergedAt *time.Time `json:"merged_at,omitempty"`
Merged bool `json:"merged"`
Mergeable *bool `json:"mergeable,omitempty"`
Head GitHubBranch `json:"head"`
Base GitHubBranch `json:"base"`
HTMLURL string `json:"html_url"`
DiffURL string `json:"diff_url"`
PatchURL string `json:"patch_url"`
}
GitHubPullRequest represents a GitHub pull request
type GitHubRepository ¶ added in v0.31.0
type GitHubRepository struct {
ID int `json:"id"`
Name string `json:"name"`
FullName string `json:"full_name"`
Owner GitHubUser `json:"owner"`
Private bool `json:"private"`
HTMLURL string `json:"html_url"`
CloneURL string `json:"clone_url"`
}
GitHubRepository represents a GitHub repository
type GitHubUser ¶ added in v0.31.0
type GitHubUser struct {
ID int `json:"id"`
Login string `json:"login"`
AvatarURL string `json:"avatar_url"`
HTMLURL string `json:"html_url"`
Type string `json:"type"`
}
GitHubUser represents a GitHub user
type GithubLightTheme ¶ added in v0.47.0
type GithubLightTheme struct{}
GithubLightTheme provides a light theme similar to GitHub's interface
func NewGithubLightTheme ¶ added in v0.47.0
func NewGithubLightTheme() *GithubLightTheme
func (*GithubLightTheme) GetAccentColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetAccentColor() string
func (*GithubLightTheme) GetAssistantColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetAssistantColor() string
func (*GithubLightTheme) GetBorderColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetBorderColor() string
func (*GithubLightTheme) GetDiffAddColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetDiffAddColor() string
func (*GithubLightTheme) GetDiffRemoveColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetDiffRemoveColor() string
func (*GithubLightTheme) GetDimColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetDimColor() string
func (*GithubLightTheme) GetErrorColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetErrorColor() string
func (*GithubLightTheme) GetStatusColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetStatusColor() string
func (*GithubLightTheme) GetSuccessColor ¶ added in v0.56.0
func (t *GithubLightTheme) GetSuccessColor() string
func (*GithubLightTheme) GetUserColor ¶ added in v0.47.0
func (t *GithubLightTheme) GetUserColor() string
type HideHelpBarEvent ¶ added in v0.45.0
type HideHelpBarEvent struct{}
HideHelpBarEvent hides the help bar when typing other characters
type ImageAttachment ¶ added in v0.57.0
type ImageAttachment struct {
Data string `json:"data"`
MimeType string `json:"mime_type"`
Filename string `json:"filename,omitempty"`
DisplayName string `json:"display_name"`
}
ImageAttachment represents an image attachment in a message
type ImageService ¶ added in v0.57.0
type ImageService interface {
// ReadImageFromFile reads an image from a file path and returns it as a base64 attachment
ReadImageFromFile(filePath string) (*ImageAttachment, error)
// ReadImageFromBinary reads an image from binary data and returns it as a base64 attachment
ReadImageFromBinary(imageData []byte, filename string) (*ImageAttachment, error)
// CreateDataURL creates a data URL from an image attachment
CreateDataURL(attachment *ImageAttachment) string
// IsImageFile checks if a file is a supported image format
IsImageFile(filePath string) bool
}
ImageService handles image operations including loading and encoding
type InitializeA2ATaskManagementEvent ¶ added in v0.53.3
type InitializeA2ATaskManagementEvent struct{}
InitializeA2ATaskManagementEvent indicates A2A task management view should be initialized
type InitializeConversationSelectionEvent ¶ added in v0.45.0
type InitializeConversationSelectionEvent struct{}
InitializeConversationSelectionEvent indicates conversation selection view should be initialized
type InitializeTextSelectionEvent ¶ added in v0.45.0
type InitializeTextSelectionEvent struct{}
InitializeTextSelectionEvent initializes text selection mode with current conversation
type MarkdownRenderer ¶ added in v0.61.0
type MarkdownRenderer interface {
// Render converts markdown text to styled terminal output
Render(content string) string
// SetWidth updates the renderer width for responsive rendering
SetWidth(width int)
}
MarkdownRenderer handles conversion of markdown text to styled terminal output
type MessageQueue ¶ added in v0.53.0
type MessageQueue interface {
// Enqueue adds a message to the queue
Enqueue(message Message, requestID string)
// Dequeue removes and returns the next message from the queue
// Returns nil if the queue is empty
Dequeue() *QueuedMessage
// Peek returns the next message without removing it
// Returns nil if the queue is empty
Peek() *QueuedMessage
// Size returns the number of messages in the queue
Size() int
// IsEmpty returns true if the queue has no messages
IsEmpty() bool
// Clear removes all messages from the queue
Clear()
// GetAll returns all messages in the queue without removing them
GetAll() []QueuedMessage
}
MessageQueue handles centralized message queuing for all components
type MessageQueuedEvent ¶ added in v0.53.0
MessageQueuedEvent indicates a message was received from the queue and stored
func (MessageQueuedEvent) GetRequestID ¶ added in v0.53.0
func (e MessageQueuedEvent) GetRequestID() string
func (MessageQueuedEvent) GetTimestamp ¶ added in v0.53.0
func (e MessageQueuedEvent) GetTimestamp() time.Time
type ModelSelectedEvent ¶ added in v0.45.0
type ModelSelectedEvent struct {
Model string
}
ModelSelectedEvent indicates model selection
type ModelService ¶
type ModelService interface {
ListModels(ctx context.Context) ([]string, error)
SelectModel(modelID string) error
GetCurrentModel() string
IsModelAvailable(modelID string) bool
ValidateModel(modelID string) error
IsVisionModel(modelID string) bool
}
ModelService handles model selection and information
type MultiEditToolResult ¶ added in v0.22.0
type MultiEditToolResult struct {
FilePath string `json:"file_path"`
Edits []EditOperationResult `json:"edits"`
TotalEdits int `json:"total_edits"`
SuccessfulEdits int `json:"successful_edits"`
FileModified bool `json:"file_modified"`
OriginalSize int64 `json:"original_size"`
NewSize int64 `json:"new_size"`
BytesDifference int64 `json:"bytes_difference"`
}
MultiEditToolResult represents the result of a MultiEdit operation
type OptimizationStatusEvent ¶ added in v0.48.0
type OptimizationStatusEvent struct {
RequestID string
Timestamp time.Time
Message string
IsActive bool
OriginalCount int
OptimizedCount int
}
OptimizationStatusEvent indicates conversation optimization status
func (OptimizationStatusEvent) GetRequestID ¶ added in v0.48.0
func (e OptimizationStatusEvent) GetRequestID() string
func (OptimizationStatusEvent) GetTimestamp ¶ added in v0.48.0
func (e OptimizationStatusEvent) GetTimestamp() time.Time
type ParallelToolsCompleteEvent ¶ added in v0.49.0
type ParallelToolsCompleteEvent struct {
BaseChatEvent
TotalExecuted int
SuccessCount int
FailureCount int
Duration time.Duration
}
ParallelToolsCompleteEvent indicates all parallel tools have completed
type ParallelToolsStartEvent ¶ added in v0.49.0
type ParallelToolsStartEvent struct {
BaseChatEvent
Tools []ToolInfo
}
ParallelToolsStartEvent indicates parallel tool execution has started
type QueuedMessage ¶ added in v0.53.0
QueuedMessage represents a message in the input queue
type ResizeEvent ¶ added in v0.45.0
ResizeEvent handles terminal resize
type SDKClient ¶ added in v0.46.0
type SDKClient interface {
WithOptions(opts *sdk.CreateChatCompletionRequest) SDKClient
WithMiddlewareOptions(opts *sdk.MiddlewareOptions) SDKClient
WithTools(tools *[]sdk.ChatCompletionTool) SDKClient
GenerateContent(ctx context.Context, provider sdk.Provider, model string, messages []sdk.Message) (*sdk.CreateChatCompletionResponse, error)
GenerateContentStream(ctx context.Context, provider sdk.Provider, model string, messages []sdk.Message) (<-chan sdk.SSEvent, error)
}
SDKClient is our interface wrapper for the SDK client to make it testable
type ScrollDirection ¶ added in v0.45.0
type ScrollDirection int
ScrollDirection defines scroll direction
const ( ScrollUp ScrollDirection = iota ScrollDown ScrollLeft ScrollRight ScrollToTop ScrollToBottom )
type ScrollRequestEvent ¶ added in v0.45.0
type ScrollRequestEvent struct {
ComponentID string
Direction ScrollDirection
Amount int
}
ScrollRequestEvent requests scrolling in a component
type SessionTokenStats ¶ added in v0.28.0
type SessionTokenStats struct {
TotalInputTokens int `json:"total_input_tokens"`
TotalOutputTokens int `json:"total_output_tokens"`
TotalTokens int `json:"total_tokens"`
RequestCount int `json:"request_count"`
LastInputTokens int `json:"last_input_tokens"`
}
SessionTokenStats tracks accumulated token usage across a session
type SetInputEvent ¶ added in v0.45.0
type SetInputEvent struct {
Text string
}
SetInputEvent sets text in the input field
type SetStatusEvent ¶ added in v0.45.0
type SetStatusEvent struct {
Message string
Spinner bool
StatusType StatusType
Progress *StatusProgress
}
SetStatusEvent sets a status message
type SetupFileSelectionEvent ¶ added in v0.45.0
type SetupFileSelectionEvent struct {
Files []string
}
SetupFileSelectionEvent sets up file selection state with files
type ShowErrorEvent ¶ added in v0.45.0
ShowErrorEvent displays an error message
type ShowToolApprovalEvent ¶ added in v0.56.0
type ShowToolApprovalEvent struct {
ToolCall sdk.ChatCompletionMessageToolCall
ResponseChan chan ApprovalAction
}
ShowToolApprovalEvent displays the tool approval modal
type StateManager ¶ added in v0.53.0
type StateManager interface {
// View state management
GetCurrentView() ViewState
TransitionToView(newView ViewState) error
// Agent mode management
GetAgentMode() AgentMode
SetAgentMode(mode AgentMode)
CycleAgentMode() AgentMode
// Chat session management
SetChatPending()
StartChatSession(requestID, model string, eventChan <-chan ChatEvent) error
UpdateChatStatus(status ChatStatus) error
EndChatSession()
GetChatSession() *ChatSession
IsAgentBusy() bool
// Tool execution management
StartToolExecution(toolCalls []sdk.ChatCompletionMessageToolCall) error
CompleteCurrentTool(result *ToolExecutionResult) error
FailCurrentTool(result *ToolExecutionResult) error
EndToolExecution()
GetToolExecution() *ToolExecutionSession
// Dimensions management
SetDimensions(width, height int)
GetDimensions() (int, int)
// File selection management
SetupFileSelection(files []string)
GetFileSelectionState() *FileSelectionState
UpdateFileSearchQuery(query string)
SetFileSelectedIndex(index int)
ClearFileSelectionState()
// Approval management
SetupApprovalUIState(toolCall *sdk.ChatCompletionMessageToolCall, responseChan chan ApprovalAction)
GetApprovalUIState() *ApprovalUIState
SetApprovalSelectedIndex(index int)
ClearApprovalUIState()
// Todo management
SetTodos(todos []TodoItem)
GetTodos() []TodoItem
}
StateManager interface defines state management operations
type StateSnapshot ¶ added in v0.27.0
type StateSnapshot struct {
CurrentView string `json:"current_view"`
PreviousView string `json:"previous_view"`
Width int `json:"width"`
Height int `json:"height"`
DebugMode bool `json:"debug_mode"`
Timestamp time.Time `json:"timestamp"`
ChatSession *ChatSessionSnapshot `json:"chat_session,omitempty"`
ToolExecution *ToolExecutionSnapshot `json:"tool_execution,omitempty"`
}
StateSnapshot represents a point-in-time snapshot of application state
type StatusProgress ¶ added in v0.45.0
StatusProgress represents progress information for status messages
type StatusType ¶ added in v0.45.0
type StatusType int
StatusType represents different types of status messages
const ( StatusDefault StatusType = iota StatusThinking StatusGenerating StatusWorking StatusProcessing StatusPreparing StatusError )
type StreamingContentEvent ¶ added in v0.48.0
StreamingContentEvent delivers live streaming content for immediate UI display
type TaskCancelledEvent ¶ added in v0.53.3
TaskCancelledEvent indicates a task has been cancelled
type TaskInfo ¶ added in v0.53.3
type TaskInfo struct {
// ADK Task contains: ID, ContextID, Status (with State), History, Artifacts, Metadata
Task adk.Task
// UI-specific fields
AgentURL string
StartedAt time.Time
CompletedAt time.Time
}
TaskInfo wraps ADK Task with UI-specific metadata for completed/terminal tasks Used for A2A task retention and display
type TaskPollingState ¶ added in v0.53.0
type TaskPollingState struct {
TaskID string
ContextID string
AgentURL string
TaskDescription string
IsPolling bool
StartedAt time.Time
LastPollAt time.Time
NextPollTime time.Time
CurrentInterval time.Duration
LastKnownState string
CancelFunc context.CancelFunc
ResultChan chan *ToolExecutionResult
ErrorChan chan error
StatusChan chan *A2ATaskStatusUpdate
}
TaskPollingState represents the state of background polling for a task
type TaskRetentionService ¶ added in v0.53.3
type TaskRetentionService interface {
// AddTask adds a terminal task (completed, failed, canceled, etc.) to retention
AddTask(task TaskInfo)
// GetTasks returns all retained tasks
GetTasks() []TaskInfo
// Clear removes all retained tasks
Clear()
// SetMaxRetention updates the maximum retention count
SetMaxRetention(maxRetention int)
// GetMaxRetention returns the current maximum retention count
GetMaxRetention() int
}
TaskRetentionService manages in-memory retention of completed/terminal A2A tasks Only enabled when A2A is enabled - decouples task retention from StateManager
type TaskTracker ¶ added in v0.49.0
type TaskTracker interface {
// Context management (contexts are server-generated and tracked here)
// Multiple contexts per agent enable multi-tenant/multi-session support
RegisterContext(agentURL, contextID string)
GetContextsForAgent(agentURL string) []string
GetAgentForContext(contextID string) string
GetLatestContextForAgent(agentURL string) string
HasContext(contextID string) bool
RemoveContext(contextID string)
// Task management (tasks are server-generated and scoped to contexts per A2A spec)
AddTask(contextID, taskID string)
GetTasksForContext(contextID string) []string
GetLatestTaskForContext(contextID string) string
GetContextForTask(taskID string) string
RemoveTask(taskID string)
HasTask(taskID string) bool
// Agent management
GetAllAgents() []string
GetAllContexts() []string
ClearAllAgents()
// Polling state management (one polling state per task)
StartPolling(taskID string, state *TaskPollingState)
StopPolling(taskID string)
GetPollingState(taskID string) *TaskPollingState
IsPolling(taskID string) bool
GetPollingTasksForContext(contextID string) []string
GetAllPollingTasks() []string
}
TaskTracker handles task ID and context ID tracking within chat sessions Following A2A spec: supports multi-tenant with multiple contexts per agent
type TasksLoadedEvent ¶ added in v0.53.3
type TasksLoadedEvent struct {
ActiveTasks []interface{}
CompletedTasks []interface{}
Error error
}
TasksLoadedEvent indicates tasks have been loaded
type Theme ¶ added in v0.47.0
type Theme interface {
GetUserColor() string
GetAssistantColor() string
GetErrorColor() string
GetSuccessColor() string
GetStatusColor() string
GetAccentColor() string
GetDimColor() string
GetBorderColor() string
GetDiffAddColor() string
GetDiffRemoveColor() string
}
Theme interface for theming support
type ThemeProvider ¶ added in v0.47.0
type ThemeProvider struct {
// contains filtered or unexported fields
}
ThemeProvider implements ThemeService and manages available themes
func NewThemeProvider ¶ added in v0.47.0
func NewThemeProvider() *ThemeProvider
NewThemeProvider creates a new theme provider with default themes
func (*ThemeProvider) GetCurrentTheme ¶ added in v0.47.0
func (tp *ThemeProvider) GetCurrentTheme() Theme
GetCurrentTheme returns the currently active theme (implements ThemeService interface)
func (*ThemeProvider) GetCurrentThemeName ¶ added in v0.47.0
func (tp *ThemeProvider) GetCurrentThemeName() string
GetCurrentThemeName returns the name of the currently active theme (implements ThemeService interface)
func (*ThemeProvider) GetTheme ¶ added in v0.47.0
func (tp *ThemeProvider) GetTheme(name string) (Theme, error)
GetTheme returns the theme by name, or the current theme if name is empty
func (*ThemeProvider) ListThemes ¶ added in v0.47.0
func (tp *ThemeProvider) ListThemes() []string
ListThemes returns all available theme names (implements ThemeService interface)
func (*ThemeProvider) SetCurrentTheme ¶ added in v0.47.0
func (tp *ThemeProvider) SetCurrentTheme(name string) error
SetCurrentTheme is an alias for SetTheme for backward compatibility
func (*ThemeProvider) SetTheme ¶ added in v0.47.0
func (tp *ThemeProvider) SetTheme(name string) error
SetTheme sets the current theme by name (implements ThemeService interface)
type ThemeSelectedEvent ¶ added in v0.47.0
type ThemeSelectedEvent struct {
Theme string
}
ThemeSelectedEvent indicates theme selection
type ThemeService ¶ added in v0.47.0
type ThemeService interface {
ListThemes() []string
GetCurrentTheme() Theme
GetCurrentThemeName() string
SetTheme(themeName string) error
}
ThemeService handles theme management
type TodoItem ¶ added in v0.20.0
type TodoItem struct {
ID string `json:"id"`
Content string `json:"content"`
Status string `json:"status"`
}
TodoItem represents a single todo item
type TodoUpdateChatEvent ¶ added in v0.63.1
type TodoUpdateChatEvent struct {
BaseChatEvent
Todos []TodoItem
}
TodoUpdateChatEvent indicates the todo list has been updated (flows through chat event channel)
type TodoUpdateEvent ¶ added in v0.63.1
type TodoUpdateEvent struct {
Todos []TodoItem
}
TodoUpdateEvent indicates the todo list has been updated
type TodoWriteToolResult ¶ added in v0.20.0
type TodoWriteToolResult struct {
Todos []TodoItem `json:"todos"`
TotalTasks int `json:"total_tasks"`
CompletedTasks int `json:"completed_tasks"`
InProgressTask string `json:"in_progress_task,omitempty"`
ValidationOK bool `json:"validation_ok"`
}
TodoWriteToolResult represents the result of a TodoWrite operation
type ToggleHelpBarEvent ¶ added in v0.45.0
type ToggleHelpBarEvent struct{}
ToggleHelpBarEvent toggles the help bar visibility
type ToggleTodoBoxEvent ¶ added in v0.63.1
type ToggleTodoBoxEvent struct{}
ToggleTodoBoxEvent toggles the todo box expanded/collapsed state
type TokyoNightTheme ¶ added in v0.47.0
type TokyoNightTheme struct{}
TokyoNightTheme is the default theme (same as DefaultTheme)
func NewTokyoNightTheme ¶ added in v0.47.0
func NewTokyoNightTheme() *TokyoNightTheme
func (*TokyoNightTheme) GetAccentColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetAccentColor() string
func (*TokyoNightTheme) GetAssistantColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetAssistantColor() string
func (*TokyoNightTheme) GetBorderColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetBorderColor() string
func (*TokyoNightTheme) GetDiffAddColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetDiffAddColor() string
func (*TokyoNightTheme) GetDiffRemoveColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetDiffRemoveColor() string
func (*TokyoNightTheme) GetDimColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetDimColor() string
func (*TokyoNightTheme) GetErrorColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetErrorColor() string
func (*TokyoNightTheme) GetStatusColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetStatusColor() string
func (*TokyoNightTheme) GetSuccessColor ¶ added in v0.56.0
func (t *TokyoNightTheme) GetSuccessColor() string
func (*TokyoNightTheme) GetUserColor ¶ added in v0.47.0
func (t *TokyoNightTheme) GetUserColor() string
type Tool ¶ added in v0.14.1
type Tool interface {
// Definition returns the tool definition for the LLM
Definition() sdk.ChatCompletionTool
// Execute runs the tool with given arguments
Execute(ctx context.Context, args map[string]any) (*ToolExecutionResult, error)
// Validate checks if the tool arguments are valid
Validate(args map[string]any) error
// IsEnabled returns whether this tool is enabled
IsEnabled() bool
// FormatResult formats tool execution results for different contexts
FormatResult(result *ToolExecutionResult, formatType FormatterType) string
// FormatPreview returns a short preview of the result for UI display
FormatPreview(result *ToolExecutionResult) string
// ShouldCollapseArg determines if an argument should be collapsed in display
ShouldCollapseArg(key string) bool
// ShouldAlwaysExpand determines if tool results should always be expanded in UI
ShouldAlwaysExpand() bool
}
Tool represents a single tool with its definition, handler, and validator
type ToolApprovalRequestedEvent ¶ added in v0.56.0
type ToolApprovalRequestedEvent struct {
RequestID string
Timestamp time.Time
ToolCall sdk.ChatCompletionMessageToolCall
ResponseChan chan ApprovalAction
}
ToolApprovalRequestedEvent indicates a tool requires user approval before execution
func (ToolApprovalRequestedEvent) GetRequestID ¶ added in v0.56.0
func (e ToolApprovalRequestedEvent) GetRequestID() string
func (ToolApprovalRequestedEvent) GetTimestamp ¶ added in v0.56.0
func (e ToolApprovalRequestedEvent) GetTimestamp() time.Time
type ToolApprovalResponseEvent ¶ added in v0.45.0
type ToolApprovalResponseEvent struct {
Action ApprovalAction
ToolCall sdk.ChatCompletionMessageToolCall
}
ToolApprovalResponseEvent captures the user's approval decision
type ToolApprovedEvent ¶ added in v0.56.0
type ToolApprovedEvent struct {
RequestID string
Timestamp time.Time
ToolCall sdk.ChatCompletionMessageToolCall
}
ToolApprovedEvent indicates the user approved the tool execution
func (ToolApprovedEvent) GetRequestID ¶ added in v0.56.0
func (e ToolApprovedEvent) GetRequestID() string
func (ToolApprovedEvent) GetTimestamp ¶ added in v0.56.0
func (e ToolApprovedEvent) GetTimestamp() time.Time
type ToolCall ¶ added in v0.27.0
type ToolCall struct {
ID string `json:"id"`
Name string `json:"name"`
Arguments map[string]any `json:"arguments"`
Status ToolCallStatus `json:"status"`
Result *ToolExecutionResult `json:"result,omitempty"`
StartTime time.Time `json:"start_time"`
EndTime *time.Time `json:"end_time,omitempty"`
}
ToolCall represents a tool call with proper typing
type ToolCallPreviewEvent ¶ added in v0.48.0
type ToolCallPreviewEvent struct {
RequestID string
Timestamp time.Time
ToolCallID string
ToolName string
Arguments string
Status ToolCallStreamStatus
IsComplete bool
}
ToolCallPreviewEvent shows a tool call as it's being streamed (before execution)
func (ToolCallPreviewEvent) GetRequestID ¶ added in v0.48.0
func (e ToolCallPreviewEvent) GetRequestID() string
func (ToolCallPreviewEvent) GetTimestamp ¶ added in v0.48.0
func (e ToolCallPreviewEvent) GetTimestamp() time.Time
type ToolCallReadyEvent ¶ added in v0.48.0
type ToolCallReadyEvent struct {
RequestID string
Timestamp time.Time
ToolCalls []sdk.ChatCompletionMessageToolCall
}
ToolCallReadyEvent indicates all tool calls are ready for approval/execution
func (ToolCallReadyEvent) GetRequestID ¶ added in v0.48.0
func (e ToolCallReadyEvent) GetRequestID() string
func (ToolCallReadyEvent) GetTimestamp ¶ added in v0.48.0
func (e ToolCallReadyEvent) GetTimestamp() time.Time
type ToolCallSnapshot ¶ added in v0.27.0
type ToolCallSnapshot struct {
ID string `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
StartTime time.Time `json:"start_time"`
}
ToolCallSnapshot represents a snapshot of tool call state
type ToolCallStatus ¶ added in v0.27.0
type ToolCallStatus int
ToolCallStatus represents the status of an individual tool call
const ( ToolCallStatusPending ToolCallStatus = iota ToolCallStatusWaitingApproval ToolCallStatusExecuting ToolCallStatusCompleted ToolCallStatusFailed ToolCallStatusCancelled ToolCallStatusDenied )
func (ToolCallStatus) String ¶ added in v0.27.0
func (t ToolCallStatus) String() string
type ToolCallStreamStatus ¶ added in v0.48.0
type ToolCallStreamStatus string
ToolCallStreamStatus represents the status of a tool call during streaming
const ( ToolCallStreamStatusStreaming ToolCallStreamStatus = "streaming" ToolCallStreamStatusComplete ToolCallStreamStatus = "complete" ToolCallStreamStatusReady ToolCallStreamStatus = "ready" )
type ToolCallUpdateEvent ¶ added in v0.48.0
type ToolCallUpdateEvent struct {
RequestID string
Timestamp time.Time
ToolCallID string
ToolName string
Arguments string
Status ToolCallStreamStatus
}
ToolCallUpdateEvent updates a streaming tool call with new content
func (ToolCallUpdateEvent) GetRequestID ¶ added in v0.48.0
func (e ToolCallUpdateEvent) GetRequestID() string
func (ToolCallUpdateEvent) GetTimestamp ¶ added in v0.48.0
func (e ToolCallUpdateEvent) GetTimestamp() time.Time
type ToolExecutionCompletedEvent ¶ added in v0.45.0
type ToolExecutionCompletedEvent struct {
SessionID string
TotalExecuted int
SuccessCount int
FailureCount int
Results []*ToolExecutionResult
}
ToolExecutionCompletedEvent indicates tool execution is complete
type ToolExecutionProgressEvent ¶ added in v0.45.0
type ToolExecutionProgressEvent struct {
BaseChatEvent
ToolCallID string
Status string
Message string
}
ToolExecutionProgressEvent indicates progress in tool execution
type ToolExecutionResult ¶ added in v0.13.1
type ToolExecutionResult struct {
ToolName string `json:"tool_name"`
Arguments map[string]any `json:"arguments"`
Success bool `json:"success"`
Duration time.Duration `json:"duration"`
Error string `json:"error,omitempty"`
Data any `json:"data,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
Diff string `json:"diff,omitempty"`
Rejected bool `json:"rejected,omitempty"`
}
ToolExecutionResult represents the complete result of a tool execution
type ToolExecutionSession ¶ added in v0.27.0
type ToolExecutionSession struct {
CurrentTool *ToolCall
RemainingTools []ToolCall
TotalTools int
CompletedTools int
Status ToolExecutionStatus
StartTime time.Time
}
ToolExecutionSession represents an active tool execution session
type ToolExecutionSnapshot ¶ added in v0.27.0
type ToolExecutionSnapshot struct {
Status string `json:"status"`
TotalTools int `json:"total_tools"`
CompletedTools int `json:"completed_tools"`
StartTime time.Time `json:"start_time"`
CurrentTool *ToolCallSnapshot `json:"current_tool,omitempty"`
}
ToolExecutionSnapshot represents a snapshot of tool execution state
type ToolExecutionStartedEvent ¶ added in v0.45.0
ToolExecutionStartedEvent indicates tool execution has started
type ToolExecutionStatus ¶ added in v0.27.0
type ToolExecutionStatus int
ToolExecutionStatus represents the overall tool execution session status
const ( ToolExecutionStatusIdle ToolExecutionStatus = iota ToolExecutionStatusProcessing ToolExecutionStatusExecuting ToolExecutionStatusCompleted ToolExecutionStatusFailed )
func (ToolExecutionStatus) String ¶ added in v0.27.0
func (t ToolExecutionStatus) String() string
type ToolFactory ¶ added in v0.14.1
type ToolFactory interface {
// CreateTool creates a tool instance by name
CreateTool(name string) (Tool, error)
// ListAvailableTools returns names of all available tools
ListAvailableTools() []string
}
ToolFactory creates tool instances
type ToolFormatter ¶ added in v0.33.4
type ToolFormatter interface {
// FormatToolCall formats a tool call for consistent display
FormatToolCall(toolName string, args map[string]any) string
// FormatToolResultForUI formats tool execution results for UI display
FormatToolResultForUI(result *ToolExecutionResult, terminalWidth int) string
// FormatToolResultExpanded formats expanded tool execution results
FormatToolResultExpanded(result *ToolExecutionResult, terminalWidth int) string
// FormatToolResultForLLM formats tool execution results for LLM consumption
FormatToolResultForLLM(result *ToolExecutionResult) string
// ShouldAlwaysExpandTool checks if a tool result should always be expanded
ShouldAlwaysExpandTool(toolName string) bool
}
ToolFormatter provides formatting capabilities for tool results
type ToolRejectedEvent ¶ added in v0.56.0
type ToolRejectedEvent struct {
RequestID string
Timestamp time.Time
ToolCall sdk.ChatCompletionMessageToolCall
}
ToolRejectedEvent indicates the user rejected the tool execution
func (ToolRejectedEvent) GetRequestID ¶ added in v0.56.0
func (e ToolRejectedEvent) GetRequestID() string
func (ToolRejectedEvent) GetTimestamp ¶ added in v0.56.0
func (e ToolRejectedEvent) GetTimestamp() time.Time
type ToolService ¶
type ToolService interface {
ListTools() []sdk.ChatCompletionTool
ListToolsForMode(mode AgentMode) []sdk.ChatCompletionTool
ListAvailableTools() []string
ExecuteTool(ctx context.Context, tool sdk.ChatCompletionMessageToolCallFunction) (*ToolExecutionResult, error)
IsToolEnabled(name string) bool
ValidateTool(name string, args map[string]any) error
GetTaskTracker() TaskTracker
}
ToolService handles tool execution
type TreeToolResult ¶ added in v0.16.0
type TreeToolResult struct {
Path string `json:"path"`
Output string `json:"output"`
TotalFiles int `json:"total_files"`
TotalDirs int `json:"total_dirs"`
MaxDepth int `json:"max_depth"`
MaxFiles int `json:"max_files"`
ShowHidden bool `json:"show_hidden"`
Format string `json:"format"`
UsingNativeTree bool `json:"using_native_tree"`
Truncated bool `json:"truncated"`
}
TreeToolResult represents the result of a tree operation
type UpdateHistoryEvent ¶ added in v0.45.0
type UpdateHistoryEvent struct {
History []ConversationEntry
}
UpdateHistoryEvent updates the conversation history display
type UpdateStatusEvent ¶ added in v0.45.0
type UpdateStatusEvent struct {
Message string
StatusType StatusType
}
UpdateStatusEvent updates an existing status message without resetting timer
type UserInputEvent ¶ added in v0.45.0
type UserInputEvent struct {
Content string
Images []ImageAttachment
}
UserInputEvent represents user input submission
type ViewState ¶ added in v0.27.0
type ViewState int
ViewState represents the current view with proper state management
type WebFetchService ¶ added in v0.29.2
type WebFetchService interface {
ValidateURL(url string) error
FetchContent(ctx context.Context, target string) (*FetchResult, error)
ClearCache()
GetCacheStats() map[string]any
}
WebFetchService handles content fetching operations
type WebSearchResponse ¶ added in v0.13.0
type WebSearchResponse struct {
Query string `json:"query"`
Engine string `json:"engine"`
Results []WebSearchResult `json:"results"`
Total int `json:"total"`
Time time.Duration `json:"time"`
Error string `json:"error,omitempty"`
}
WebSearchResponse represents the complete search response
type WebSearchResult ¶ added in v0.13.0
type WebSearchResult struct {
Title string `json:"title"`
URL string `json:"url"`
Snippet string `json:"snippet"`
}
WebSearchResult represents a single search result
type WebSearchService ¶ added in v0.13.0
type WebSearchService interface {
SearchGoogle(ctx context.Context, query string, maxResults int) (*WebSearchResponse, error)
SearchDuckDuckGo(ctx context.Context, query string, maxResults int) (*WebSearchResponse, error)
IsEnabled() bool
SetEnabled(enabled bool)
}
WebSearchService handles web search operations