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 AgentRequest
- type AgentService
- type ApplicationState
- func (s *ApplicationState) AddQueuedMessage(message sdk.Message, requestID string)
- func (s *ApplicationState) ClearFileSelectionState()
- func (s *ApplicationState) ClearQueuedMessages()
- func (s *ApplicationState) CompleteCurrentTool(result *ToolExecutionResult) error
- func (s *ApplicationState) EndChatSession()
- func (s *ApplicationState) EndToolExecution()
- func (s *ApplicationState) FailCurrentTool(result *ToolExecutionResult) error
- 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) GetToolExecution() *ToolExecutionSession
- func (s *ApplicationState) IsDebugMode() bool
- func (s *ApplicationState) PopQueuedMessage() *QueuedMessage
- func (s *ApplicationState) SetDebugMode(enabled bool)
- func (s *ApplicationState) SetDimensions(width, height int)
- func (s *ApplicationState) SetFileSelectedIndex(index int)
- 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 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 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) 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 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) GetUserColor() string
- type HideHelpBarEvent
- type InitializeA2ATaskManagementEvent
- type InitializeConversationSelectionEvent
- type InitializeTextSelectionEvent
- 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 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 TodoWriteToolResult
- type ToggleHelpBarEvent
- 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) GetUserColor() string
- type Tool
- 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 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 AgentRequest ¶ added in v0.36.0
type AgentRequest struct {
RequestID string `json:"request_id"`
Model string `json:"model"`
Messages []sdk.Message `json:"messages"`
}
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) 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) 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) 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) 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) 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) 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 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
// 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 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"`
}
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) 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"`
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 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) 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 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 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
}
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"`
}
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
TokenUsage string
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 StateManager ¶ added in v0.53.0
type StateManager interface {
// View state management
GetCurrentView() ViewState
TransitionToView(newView ViewState) error
// Chat session management
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()
// Message queue management (DEPRECATED - use MessageQueue service instead)
AddQueuedMessage(message Message, requestID string)
PopQueuedMessage() *QueuedMessage
ClearQueuedMessages()
GetQueuedMessages() []QueuedMessage
}
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
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 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 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) 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 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 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"`
}
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 ToolService ¶
type ToolService interface {
ListTools() []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
}
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