Documentation
¶
Index ¶
- type AgentRequest
- type AgentService
- type ApplicationState
- func (s *ApplicationState) ApproveCurrentTool() error
- func (s *ApplicationState) ClearApprovalUIState()
- func (s *ApplicationState) ClearFileSelectionState()
- func (s *ApplicationState) CompleteCurrentTool(result *ToolExecutionResult) error
- func (s *ApplicationState) DenyCurrentTool() error
- func (s *ApplicationState) EndChatSession()
- func (s *ApplicationState) EndToolExecution()
- func (s *ApplicationState) FailCurrentTool(result *ToolExecutionResult) error
- 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) GetStateSnapshot() StateSnapshot
- func (s *ApplicationState) GetToolExecution() *ToolExecutionSession
- func (s *ApplicationState) IsDebugMode() bool
- func (s *ApplicationState) SetApprovalSelectedIndex(index int)
- func (s *ApplicationState) SetDebugMode(enabled bool)
- func (s *ApplicationState) SetDimensions(width, height int)
- func (s *ApplicationState) SetFileSelectedIndex(index int)
- func (s *ApplicationState) SetToolApprovalRequired(required bool) error
- func (s *ApplicationState) SetupApprovalUI()
- 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 ApprovalRequestEvent
- type ApprovalResponseEvent
- type ApprovalUIState
- 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 CancelledEvent
- type ChatChunkEvent
- type ChatCompleteEvent
- type ChatErrorEvent
- type ChatEvent
- type ChatEventType
- 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 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 HideHelpBarEvent
- type InitializeConversationSelectionEvent
- type InitializeTextSelectionEvent
- type ModelSelectedEvent
- type ModelService
- type MultiEditToolResult
- type ResizeEvent
- type ScrollDirection
- type ScrollRequestEvent
- type SessionTokenStats
- type SetInputEvent
- type SetStatusEvent
- type SetupFileSelectionEvent
- type ShowErrorEvent
- type StateSnapshot
- type StatusProgress
- type StatusType
- type TodoItem
- type TodoWriteToolResult
- type ToggleHelpBarEvent
- type Tool
- type ToolApprovalRequestEvent
- type ToolApprovalResponseEvent
- type ToolCall
- type ToolCallEvent
- type ToolCallSnapshot
- type ToolCallStartEvent
- type ToolCallStatus
- type ToolDefinition
- type ToolExecutionCompletedEvent
- type ToolExecutionProgressEvent
- type ToolExecutionResult
- type ToolExecutionSession
- type ToolExecutionSnapshot
- type ToolExecutionStartedEvent
- type ToolExecutionStatus
- type ToolFactory
- type ToolFormatter
- type ToolService
- type TreeToolResult
- type UIEvent
- type UIEventType
- type UpdateHistoryEvent
- type UpdateStatusEvent
- type UserInputEvent
- type ViewState
- type WebFetchService
- type WebSearchResponse
- type WebSearchResult
- type WebSearchService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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) ApproveCurrentTool ¶ added in v0.27.0
func (s *ApplicationState) ApproveCurrentTool() error
ApproveCurrentTool approves the current tool for execution
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) 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) DenyCurrentTool ¶ added in v0.27.0
func (s *ApplicationState) DenyCurrentTool() error
DenyCurrentTool denies the current tool execution
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) 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) 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) SetApprovalSelectedIndex ¶ added in v0.27.0
func (s *ApplicationState) SetApprovalSelectedIndex(index int)
SetApprovalSelectedIndex sets the approval selection index
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) SetToolApprovalRequired ¶ added in v0.27.0
func (s *ApplicationState) SetToolApprovalRequired(required bool) error
SetToolApprovalRequired marks the current tool as requiring approval
func (*ApplicationState) SetupApprovalUI ¶ added in v0.27.0
func (s *ApplicationState) SetupApprovalUI()
SetupApprovalUI initializes approval UI state
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 defines the possible approval actions for tool calls
const ( ApprovalApprove ApprovalAction = iota ApprovalReject )
func (ApprovalAction) String ¶ added in v0.27.0
func (a ApprovalAction) String() string
type ApprovalRequestEvent ¶ added in v0.45.0
ApprovalRequestEvent requests user approval for an action
func (ApprovalRequestEvent) GetType ¶ added in v0.45.0
func (e ApprovalRequestEvent) GetType() UIEventType
type ApprovalResponseEvent ¶ added in v0.45.0
ApprovalResponseEvent provides approval response
func (ApprovalResponseEvent) GetType ¶ added in v0.45.0
func (e ApprovalResponseEvent) GetType() UIEventType
type ApprovalUIState ¶ added in v0.27.0
type ApprovalUIState struct {
SelectedIndex int `json:"selected_index"`
}
ApprovalUIState represents the state of approval UI
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
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.14.0
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 CancelledEvent ¶
CancelledEvent indicates a request was cancelled
func (CancelledEvent) GetRequestID ¶
func (e CancelledEvent) GetRequestID() string
func (CancelledEvent) GetTimestamp ¶
func (e CancelledEvent) GetTimestamp() time.Time
func (CancelledEvent) GetType ¶
func (e CancelledEvent) GetType() ChatEventType
type ChatChunkEvent ¶
type ChatChunkEvent struct { RequestID string Timestamp time.Time Content string ReasoningContent string ToolCalls []sdk.ChatCompletionMessageToolCall Delta bool }
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
func (ChatChunkEvent) GetType ¶
func (e ChatChunkEvent) GetType() ChatEventType
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
func (ChatCompleteEvent) GetType ¶
func (e ChatCompleteEvent) GetType() ChatEventType
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
func (ChatErrorEvent) GetType ¶
func (e ChatErrorEvent) GetType() ChatEventType
type ChatEvent ¶
type ChatEvent interface { GetType() ChatEventType GetRequestID() string GetTimestamp() time.Time }
ChatEvent represents events during chat operations
type ChatEventType ¶
type ChatEventType int
ChatEventType defines types of chat events
const ( EventChatStart ChatEventType = iota EventChatChunk EventChatComplete EventChatError EventToolCall EventToolCallStart EventCancelled )
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 PendingMessages []sdk.Message 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
func (ChatStartEvent) GetType ¶
func (e ChatStartEvent) GetType() ChatEventType
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
func (ClearErrorEvent) GetType ¶ added in v0.45.0
func (e ClearErrorEvent) GetType() UIEventType
type ClearInputEvent ¶ added in v0.45.0
type ClearInputEvent struct{}
ClearInputEvent clears the input field
func (ClearInputEvent) GetType ¶ added in v0.45.0
func (e ClearInputEvent) GetType() UIEventType
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 GetSystemPrompt() string GetDefaultModel() string }
ConfigService provides configuration-related functionality
type ConversationEntry ¶
type ConversationEntry struct { Message sdk.Message `json:"message"` Model string `json:"model,omitempty"` Time time.Time `json:"time"` ToolExecution *ToolExecutionResult `json:"tool_execution,omitempty"` IsSystemReminder bool `json:"is_system_reminder,omitempty"` }
ConversationEntry represents a message in the conversation with metadata
type ConversationRepository ¶
type ConversationRepository interface { AddMessage(msg ConversationEntry) error GetMessages() []ConversationEntry Clear() 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 }
ConversationRepository handles conversation storage and retrieval
type ConversationSelectedEvent ¶ added in v0.45.0
type ConversationSelectedEvent struct {
ConversationID string
}
ConversationSelectedEvent indicates conversation selection
func (ConversationSelectedEvent) GetType ¶ added in v0.45.0
func (e ConversationSelectedEvent) GetType() UIEventType
type ConversationsLoadedEvent ¶ added in v0.45.0
type ConversationsLoadedEvent struct { Conversations []interface{} // Will be cast to ConversationSummary in component Error error }
ConversationsLoadedEvent indicates conversations have been loaded
func (ConversationsLoadedEvent) GetType ¶ added in v0.45.0
func (e ConversationsLoadedEvent) GetType() UIEventType
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
func (DebugKeyEvent) GetType ¶ added in v0.45.0
func (e DebugKeyEvent) GetType() UIEventType
type DeleteToolResult ¶ added in v0.18.2
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 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
func (ExitSelectionModeEvent) GetType ¶ added in v0.45.0
func (e ExitSelectionModeEvent) GetType() UIEventType
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.1
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.14.0
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
func (FileSelectedEvent) GetType ¶ added in v0.45.0
func (e FileSelectedEvent) GetType() UIEventType
type FileSelectionRequestEvent ¶ added in v0.45.0
type FileSelectionRequestEvent struct{}
FileSelectionRequestEvent requests file selection UI
func (FileSelectionRequestEvent) GetType ¶ added in v0.45.0
func (e FileSelectionRequestEvent) GetType() UIEventType
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
func (FocusRequestEvent) GetType ¶ added in v0.45.0
func (e FocusRequestEvent) GetType() UIEventType
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.32.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.32.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.32.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.32.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.32.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.32.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.32.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.32.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.32.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 HideHelpBarEvent ¶ added in v0.45.0
type HideHelpBarEvent struct{}
HideHelpBarEvent hides the help bar when typing other characters
func (HideHelpBarEvent) GetType ¶ added in v0.45.0
func (e HideHelpBarEvent) GetType() UIEventType
type InitializeConversationSelectionEvent ¶ added in v0.45.0
type InitializeConversationSelectionEvent struct{}
InitializeConversationSelectionEvent indicates conversation selection view should be initialized
func (InitializeConversationSelectionEvent) GetType ¶ added in v0.45.0
func (e InitializeConversationSelectionEvent) GetType() UIEventType
type InitializeTextSelectionEvent ¶ added in v0.45.0
type InitializeTextSelectionEvent struct{}
InitializeTextSelectionEvent initializes text selection mode with current conversation
func (InitializeTextSelectionEvent) GetType ¶ added in v0.45.0
func (e InitializeTextSelectionEvent) GetType() UIEventType
type ModelSelectedEvent ¶ added in v0.45.0
type ModelSelectedEvent struct {
Model string
}
ModelSelectedEvent indicates model selection
func (ModelSelectedEvent) GetType ¶ added in v0.45.0
func (e ModelSelectedEvent) GetType() UIEventType
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 ResizeEvent ¶ added in v0.45.0
ResizeEvent handles terminal resize
func (ResizeEvent) GetType ¶ added in v0.45.0
func (e ResizeEvent) GetType() UIEventType
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
func (ScrollRequestEvent) GetType ¶ added in v0.45.0
func (e ScrollRequestEvent) GetType() UIEventType
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
func (SetInputEvent) GetType ¶ added in v0.45.0
func (e SetInputEvent) GetType() UIEventType
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
func (SetStatusEvent) GetType ¶ added in v0.45.0
func (e SetStatusEvent) GetType() UIEventType
type SetupFileSelectionEvent ¶ added in v0.45.0
type SetupFileSelectionEvent struct {
Files []string
}
SetupFileSelectionEvent sets up file selection state with files
func (SetupFileSelectionEvent) GetType ¶ added in v0.45.0
func (e SetupFileSelectionEvent) GetType() UIEventType
type ShowErrorEvent ¶ added in v0.45.0
ShowErrorEvent displays an error message
func (ShowErrorEvent) GetType ¶ added in v0.45.0
func (e ShowErrorEvent) GetType() UIEventType
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 )
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
func (ToggleHelpBarEvent) GetType ¶ added in v0.45.0
func (e ToggleHelpBarEvent) GetType() UIEventType
type Tool ¶ added in v0.14.1
type Tool interface { // Definition returns the tool definition for the LLM Definition() ToolDefinition // 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 ToolApprovalRequestEvent ¶ added in v0.45.0
type ToolApprovalRequestEvent struct { SessionID string ToolCall sdk.ChatCompletionMessageToolCall ToolIndex int TotalTools int }
ToolApprovalRequestEvent requests approval for a specific tool
func (ToolApprovalRequestEvent) GetType ¶ added in v0.45.0
func (e ToolApprovalRequestEvent) GetType() UIEventType
type ToolApprovalResponseEvent ¶ added in v0.45.0
ToolApprovalResponseEvent provides the approval response
func (ToolApprovalResponseEvent) GetType ¶ added in v0.45.0
func (e ToolApprovalResponseEvent) GetType() UIEventType
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 ToolCallEvent ¶
type ToolCallEvent struct { RequestID string Timestamp time.Time ToolCallID string ToolName string Args string }
ToolCallEvent represents a tool call request
func (ToolCallEvent) GetRequestID ¶
func (e ToolCallEvent) GetRequestID() string
func (ToolCallEvent) GetTimestamp ¶
func (e ToolCallEvent) GetTimestamp() time.Time
func (ToolCallEvent) GetType ¶
func (e ToolCallEvent) GetType() ChatEventType
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 ToolCallStartEvent ¶ added in v0.27.0
ToolCallStartEvent indicates tool calls have started being received
func (ToolCallStartEvent) GetRequestID ¶ added in v0.27.0
func (e ToolCallStartEvent) GetRequestID() string
func (ToolCallStartEvent) GetTimestamp ¶ added in v0.27.0
func (e ToolCallStartEvent) GetTimestamp() time.Time
func (ToolCallStartEvent) GetType ¶ added in v0.27.0
func (e ToolCallStartEvent) GetType() ChatEventType
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 ToolDefinition ¶
type ToolDefinition struct { Name string `json:"name"` Description string `json:"description"` Parameters any `json:"parameters"` }
ToolDefinition describes an available tool
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
func (ToolExecutionCompletedEvent) GetType ¶ added in v0.45.0
func (e ToolExecutionCompletedEvent) GetType() UIEventType
type ToolExecutionProgressEvent ¶ added in v0.45.0
type ToolExecutionProgressEvent struct { SessionID string CurrentTool int TotalTools int ToolName string Status string RequiresApproval bool }
ToolExecutionProgressEvent indicates progress in tool execution
func (ToolExecutionProgressEvent) GetType ¶ added in v0.45.0
func (e ToolExecutionProgressEvent) GetType() UIEventType
type ToolExecutionResult ¶ added in v0.14.0
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 RequiresApproval bool ApprovalChoice ApprovalAction 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"` RequiresApproval bool `json:"requires_approval"` 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
func (ToolExecutionStartedEvent) GetType ¶ added in v0.45.0
func (e ToolExecutionStartedEvent) GetType() UIEventType
type ToolExecutionStatus ¶ added in v0.27.0
type ToolExecutionStatus int
ToolExecutionStatus represents the overall tool execution session status
const ( ToolExecutionStatusIdle ToolExecutionStatus = iota ToolExecutionStatusProcessing ToolExecutionStatusWaitingApproval 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 // FormatToolArgumentsForApproval formats tool arguments for approval display FormatToolArgumentsForApproval(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() []ToolDefinition ListAvailableTools() []string ExecuteTool(ctx context.Context, name string, args map[string]any) (*ToolExecutionResult, error) IsToolEnabled(name string) bool ValidateTool(name string, args map[string]any) error }
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 UIEvent ¶ added in v0.45.0
type UIEvent interface {
GetType() UIEventType
}
UIEvent interface for all UI-related events
type UIEventType ¶ added in v0.45.0
type UIEventType int
UIEventType defines types of UI events
const ( UIEventUpdateHistory UIEventType = iota UIEventSetStatus UIEventUpdateStatus UIEventShowError UIEventClearError UIEventClearInput UIEventSetInput UIEventUserInput UIEventModelSelected UIEventConversationSelected UIEventInitializeConversationSelection UIEventFileSelected UIEventFileSelectionRequest UIEventSetupFileSelection UIEventApprovalRequest UIEventApprovalResponse UIEventScrollRequest UIEventFocusRequest UIEventResize UIEventDebugKey UIEventToggleHelpBar UIEventHideHelpBar UIEventExitSelectionMode UIEventInitializeTextSelection UIEventConversationsLoaded UIEventToolExecutionStarted UIEventToolExecutionProgress UIEventToolExecutionCompleted UIEventToolApprovalRequest UIEventToolApprovalResponse )
type UpdateHistoryEvent ¶ added in v0.45.0
type UpdateHistoryEvent struct {
History []ConversationEntry
}
UpdateHistoryEvent updates the conversation history display
func (UpdateHistoryEvent) GetType ¶ added in v0.45.0
func (e UpdateHistoryEvent) GetType() UIEventType
type UpdateStatusEvent ¶ added in v0.45.0
type UpdateStatusEvent struct { Message string StatusType StatusType }
UpdateStatusEvent updates an existing status message without resetting timer
func (UpdateStatusEvent) GetType ¶ added in v0.45.0
func (e UpdateStatusEvent) GetType() UIEventType
type UserInputEvent ¶ added in v0.45.0
type UserInputEvent struct {
Content string
}
UserInputEvent represents user input submission
func (UserInputEvent) GetType ¶ added in v0.45.0
func (e UserInputEvent) GetType() UIEventType
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