Documentation
¶
Index ¶
- func NewFileService() domain.FileService
- type A2AAgentService
- type AgentServiceImpl
- func (s *AgentServiceImpl) CancelRequest(requestID string) error
- func (s *AgentServiceImpl) GetMetrics(requestID string) *domain.ChatMetrics
- func (s *AgentServiceImpl) Run(ctx context.Context, req *domain.AgentRequest) (*domain.ChatSyncResponse, error)
- func (s *AgentServiceImpl) RunWithStream(ctx context.Context, req *domain.AgentRequest) (<-chan domain.ChatEvent, error)
- type ApprovalArgumentFormatter
- type BackgroundJobManager
- type ConfigService
- type ConversationOptimizer
- type ConversationTitleGenerator
- func (g *ConversationTitleGenerator) GenerateTitleForConversation(ctx context.Context, conversationID string) error
- func (g *ConversationTitleGenerator) InvalidateTitle(ctx context.Context, conversationID string) error
- func (g *ConversationTitleGenerator) ProcessPendingTitles(ctx context.Context) error
- type FileServiceImpl
- func (s *FileServiceImpl) GetFileInfo(path string) (domain.FileInfo, error)
- func (s *FileServiceImpl) ListProjectFiles() ([]string, error)
- func (s *FileServiceImpl) ReadFile(path string) (string, error)
- func (s *FileServiceImpl) ReadFileLines(path string, startLine, endLine int) (string, error)
- func (s *FileServiceImpl) ValidateFile(path string) error
- type HTTPModelService
- func (s *HTTPModelService) GetCurrentModel() string
- func (s *HTTPModelService) IsModelAvailable(modelID string) bool
- func (s *HTTPModelService) ListModels(ctx context.Context) ([]string, error)
- func (s *HTTPModelService) SelectModel(modelID string) error
- func (s *HTTPModelService) ValidateModel(modelID string) error
- type HealthStatus
- type InMemoryConversationRepository
- func (r *InMemoryConversationRepository) AddMessage(msg domain.ConversationEntry) error
- func (r *InMemoryConversationRepository) AddTokenUsage(inputTokens, outputTokens, totalTokens int) error
- func (r *InMemoryConversationRepository) Clear() error
- func (r *InMemoryConversationRepository) ClearExceptFirstUserMessage() error
- func (r *InMemoryConversationRepository) Export(format domain.ExportFormat) ([]byte, error)
- func (r *InMemoryConversationRepository) FormatToolResultExpanded(result *domain.ToolExecutionResult, terminalWidth int) string
- func (r *InMemoryConversationRepository) FormatToolResultForLLM(result *domain.ToolExecutionResult) string
- func (r *InMemoryConversationRepository) FormatToolResultForUI(result *domain.ToolExecutionResult, terminalWidth int) string
- func (r *InMemoryConversationRepository) GetMessageCount() int
- func (r *InMemoryConversationRepository) GetMessages() []domain.ConversationEntry
- func (r *InMemoryConversationRepository) GetSessionTokens() domain.SessionTokenStats
- func (r *InMemoryConversationRepository) UpdateLastMessage(content string) error
- func (r *InMemoryConversationRepository) UpdateLastMessageToolCalls(toolCalls *[]sdk.ChatCompletionMessageToolCall) error
- type IndexedToolResult
- type LLMToolService
- func (s *LLMToolService) ExecuteTool(ctx context.Context, toolCall sdk.ChatCompletionMessageToolCallFunction) (*domain.ToolExecutionResult, error)
- func (s *LLMToolService) IsToolEnabled(name string) bool
- func (s *LLMToolService) ListAvailableTools() []string
- func (s *LLMToolService) ListTools() []sdk.ChatCompletionTool
- func (s *LLMToolService) ValidateTool(name string, args map[string]any) error
- type NoOpToolService
- func (s *NoOpToolService) ExecuteTool(ctx context.Context, toolCall sdk.ChatCompletionMessageToolCallFunction) (*domain.ToolExecutionResult, error)
- func (s *NoOpToolService) IsToolEnabled(name string) bool
- func (s *NoOpToolService) ListAvailableTools() []string
- func (s *NoOpToolService) ListTools() []sdk.ChatCompletionTool
- func (s *NoOpToolService) ValidateTool(name string, args map[string]any) error
- type OptimizerConfig
- type PersistentConversationRepository
- func (r *PersistentConversationRepository) AddMessage(msg domain.ConversationEntry) error
- func (r *PersistentConversationRepository) AddTokenUsage(inputTokens, outputTokens, totalTokens int) error
- func (r *PersistentConversationRepository) Clear() error
- func (r *PersistentConversationRepository) Close() error
- func (r *PersistentConversationRepository) DeleteSavedConversation(ctx context.Context, conversationID string) error
- func (r *PersistentConversationRepository) GetCurrentConversationID() string
- func (r *PersistentConversationRepository) GetCurrentConversationMetadata() storage.ConversationMetadata
- func (r *PersistentConversationRepository) GetOptimizedMessages() []sdk.Message
- func (r *PersistentConversationRepository) ListSavedConversations(ctx context.Context, limit, offset int) ([]storage.ConversationSummary, error)
- func (r *PersistentConversationRepository) LoadConversation(ctx context.Context, conversationID string) error
- func (r *PersistentConversationRepository) SaveConversation(ctx context.Context) error
- func (r *PersistentConversationRepository) SetAutoSave(enabled bool)
- func (r *PersistentConversationRepository) SetConversationTags(tags []string)
- func (r *PersistentConversationRepository) SetConversationTitle(title string)
- func (r *PersistentConversationRepository) SetOptimizedMessages(ctx context.Context, optimizedMessages []sdk.Message) error
- func (r *PersistentConversationRepository) SetTaskTracker(taskTracker domain.TaskTracker)
- func (r *PersistentConversationRepository) SetTitleGenerator(titleGenerator *ConversationTitleGenerator)
- func (r *PersistentConversationRepository) StartNewConversation(title string) error
- type StateChangeEvent
- type StateChangeListener
- type StateChangeType
- type StateManager
- func (sm *StateManager) AddListener(listener StateChangeListener)
- func (sm *StateManager) ClearFileSelectionState()
- func (sm *StateManager) CompleteCurrentTool(result *domain.ToolExecutionResult) error
- func (sm *StateManager) EndChatSession()
- func (sm *StateManager) EndToolExecution()
- func (sm *StateManager) ExportStateHistory() ([]byte, error)
- func (sm *StateManager) FailCurrentTool(result *domain.ToolExecutionResult) error
- func (sm *StateManager) GetChatSession() *domain.ChatSession
- func (sm *StateManager) GetCurrentView() domain.ViewState
- func (sm *StateManager) GetDimensions() (int, int)
- func (sm *StateManager) GetFileSelectionState() *domain.FileSelectionState
- func (sm *StateManager) GetHealthStatus() HealthStatus
- func (sm *StateManager) GetStateHistory() []domain.StateSnapshot
- func (sm *StateManager) GetStateSnapshot() domain.StateSnapshot
- func (sm *StateManager) GetToolExecution() *domain.ToolExecutionSession
- func (sm *StateManager) IsDebugMode() bool
- func (sm *StateManager) RecoverFromInconsistentState() error
- func (sm *StateManager) RemoveListener(listener StateChangeListener)
- func (sm *StateManager) SetDebugMode(enabled bool)
- func (sm *StateManager) SetDimensions(width, height int)
- func (sm *StateManager) SetFileSelectedIndex(index int)
- func (sm *StateManager) SetupFileSelection(files []string)
- func (sm *StateManager) StartChatSession(requestID, model string, eventChan <-chan domain.ChatEvent) error
- func (sm *StateManager) StartToolExecution(toolCalls []sdk.ChatCompletionMessageToolCall) error
- func (sm *StateManager) TransitionToView(newView domain.ViewState) error
- func (sm *StateManager) UpdateChatStatus(status domain.ChatStatus) error
- func (sm *StateManager) UpdateFileSearchQuery(query string)
- func (sm *StateManager) ValidateState() []error
- type StreamingChatService
- type TitleGenerator
- type ToolFormatterService
- func (s *ToolFormatterService) FormatToolArgumentsForApproval(toolName string, args map[string]any) string
- func (s *ToolFormatterService) FormatToolCall(toolName string, args map[string]any) string
- func (s *ToolFormatterService) FormatToolResultExpanded(result *domain.ToolExecutionResult, terminalWidth int) string
- func (s *ToolFormatterService) FormatToolResultForLLM(result *domain.ToolExecutionResult) string
- func (s *ToolFormatterService) FormatToolResultForUI(result *domain.ToolExecutionResult, terminalWidth int) string
- func (s *ToolFormatterService) ShouldAlwaysExpandTool(toolName string) bool
- type ToolRegistry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFileService ¶ added in v0.16.0
func NewFileService() domain.FileService
NewFileService creates a new file service
Types ¶
type A2AAgentService ¶ added in v0.50.0
type A2AAgentService struct {
// contains filtered or unexported fields
}
func NewA2AAgentService ¶ added in v0.50.0
func NewA2AAgentService(cfg *config.Config) *A2AAgentService
func (*A2AAgentService) GetAgentCard ¶ added in v0.50.0
func (*A2AAgentService) GetAgentCards ¶ added in v0.50.0
func (s *A2AAgentService) GetAgentCards(ctx context.Context) ([]*domain.CachedAgentCard, error)
func (*A2AAgentService) GetConfiguredAgents ¶ added in v0.50.0
func (s *A2AAgentService) GetConfiguredAgents() []string
type AgentServiceImpl ¶ added in v0.36.0
type AgentServiceImpl struct {
// contains filtered or unexported fields
}
AgentServiceImpl implements the AgentService interface with direct chat functionality
func NewAgentService ¶ added in v0.36.0
func NewAgentService( client sdk.Client, toolService domain.ToolService, config domain.ConfigService, conversationRepo domain.ConversationRepository, a2aAgentService domain.A2AAgentService, timeoutSeconds int, optimizer *ConversationOptimizer, ) *AgentServiceImpl
NewAgentService creates a new agent service with pre-configured client
func (*AgentServiceImpl) CancelRequest ¶ added in v0.36.0
func (s *AgentServiceImpl) CancelRequest(requestID string) error
CancelRequest cancels an active request
func (*AgentServiceImpl) GetMetrics ¶ added in v0.36.0
func (s *AgentServiceImpl) GetMetrics(requestID string) *domain.ChatMetrics
GetMetrics returns metrics for a completed request
func (*AgentServiceImpl) Run ¶ added in v0.36.0
func (s *AgentServiceImpl) Run(ctx context.Context, req *domain.AgentRequest) (*domain.ChatSyncResponse, error)
Run executes an agent task synchronously (for background/batch processing)
func (*AgentServiceImpl) RunWithStream ¶ added in v0.36.0
func (s *AgentServiceImpl) RunWithStream(ctx context.Context, req *domain.AgentRequest) (<-chan domain.ChatEvent, error)
RunWithStream executes an agent task with streaming (for interactive chat)
type ApprovalArgumentFormatter ¶ added in v0.33.5
ApprovalArgumentFormatter interface for tools that need custom approval argument formatting
type BackgroundJobManager ¶ added in v0.46.1
type BackgroundJobManager struct {
// contains filtered or unexported fields
}
BackgroundJobManager manages background tasks
func NewBackgroundJobManager ¶ added in v0.46.1
func NewBackgroundJobManager(titleGenerator TitleGenerator, config *config.Config) *BackgroundJobManager
NewBackgroundJobManager creates a new background job manager
func (*BackgroundJobManager) IsRunning ¶ added in v0.46.1
func (m *BackgroundJobManager) IsRunning() bool
IsRunning returns whether the job manager is currently running
func (*BackgroundJobManager) Start ¶ added in v0.46.1
func (m *BackgroundJobManager) Start(ctx context.Context)
Start begins running background jobs
func (*BackgroundJobManager) Stop ¶ added in v0.46.1
func (m *BackgroundJobManager) Stop()
Stop stops all background jobs gracefully
func (*BackgroundJobManager) TriggerTitleGeneration ¶ added in v0.46.1
func (m *BackgroundJobManager) TriggerTitleGeneration(ctx context.Context) error
TriggerTitleGeneration manually triggers title generation for pending conversations
type ConfigService ¶ added in v0.42.0
type ConfigService struct {
// contains filtered or unexported fields
}
ConfigService handles configuration management and reloading
func NewConfigService ¶ added in v0.42.0
func NewConfigService(v *viper.Viper, cfg *config.Config) *ConfigService
NewConfigService creates a new config service
func (*ConfigService) GetConfig ¶ added in v0.42.0
func (cs *ConfigService) GetConfig() *config.Config
GetConfig returns the current config
func (*ConfigService) Reload ¶ added in v0.42.0
func (cs *ConfigService) Reload() (*config.Config, error)
Reload reloads configuration from disk
func (*ConfigService) SetValue ¶ added in v0.42.0
func (cs *ConfigService) SetValue(key, value string) error
SetValue sets a configuration value using dot notation and saves it to disk
type ConversationOptimizer ¶ added in v0.32.0
type ConversationOptimizer struct {
// contains filtered or unexported fields
}
ConversationOptimizer provides methods to optimize conversation history for token efficiency
func NewConversationOptimizer ¶ added in v0.32.0
func NewConversationOptimizer(config OptimizerConfig) *ConversationOptimizer
NewConversationOptimizer creates a new conversation optimizer with configuration
func (*ConversationOptimizer) OptimizeMessages ¶ added in v0.32.0
func (co *ConversationOptimizer) OptimizeMessages(messages []sdk.Message) []sdk.Message
OptimizeMessages reduces token usage by intelligently managing conversation history
func (*ConversationOptimizer) OptimizeMessagesWithModel ¶ added in v0.48.0
func (co *ConversationOptimizer) OptimizeMessagesWithModel(messages []sdk.Message, currentModel string) []sdk.Message
OptimizeMessagesWithModel reduces token usage with optional current model for fallback
type ConversationTitleGenerator ¶ added in v0.46.1
type ConversationTitleGenerator struct {
// contains filtered or unexported fields
}
ConversationTitleGenerator generates titles for conversations using AI
func NewConversationTitleGenerator ¶ added in v0.46.1
func NewConversationTitleGenerator(client sdk.Client, storage storage.ConversationStorage, config *config.Config) *ConversationTitleGenerator
NewConversationTitleGenerator creates a new conversation title generator
func NewConversationTitleGeneratorWithSDKClient ¶ added in v0.46.1
func NewConversationTitleGeneratorWithSDKClient(client domain.SDKClient, storage storage.ConversationStorage, config *config.Config) *ConversationTitleGenerator
NewConversationTitleGeneratorWithSDKClient creates a new conversation title generator with a custom SDKClient (for testing)
func (*ConversationTitleGenerator) GenerateTitleForConversation ¶ added in v0.46.1
func (g *ConversationTitleGenerator) GenerateTitleForConversation(ctx context.Context, conversationID string) error
GenerateTitleForConversation generates a title for a specific conversation
func (*ConversationTitleGenerator) InvalidateTitle ¶ added in v0.46.1
func (g *ConversationTitleGenerator) InvalidateTitle(ctx context.Context, conversationID string) error
InvalidateTitle marks a conversation title as needing regeneration
func (*ConversationTitleGenerator) ProcessPendingTitles ¶ added in v0.46.1
func (g *ConversationTitleGenerator) ProcessPendingTitles(ctx context.Context) error
ProcessPendingTitles processes a batch of conversations that need title generation
type FileServiceImpl ¶ added in v0.16.0
type FileServiceImpl struct{}
FileServiceImpl implements domain.FileService
func (*FileServiceImpl) GetFileInfo ¶ added in v0.16.0
func (s *FileServiceImpl) GetFileInfo(path string) (domain.FileInfo, error)
GetFileInfo returns information about a file
func (*FileServiceImpl) ListProjectFiles ¶ added in v0.16.0
func (s *FileServiceImpl) ListProjectFiles() ([]string, error)
ListProjectFiles returns a list of all files in the current directory and subdirectories
func (*FileServiceImpl) ReadFile ¶ added in v0.16.0
func (s *FileServiceImpl) ReadFile(path string) (string, error)
ReadFile reads the content of a file
func (*FileServiceImpl) ReadFileLines ¶ added in v0.16.0
func (s *FileServiceImpl) ReadFileLines(path string, startLine, endLine int) (string, error)
ReadFileLines reads specific lines from a file
func (*FileServiceImpl) ValidateFile ¶ added in v0.16.0
func (s *FileServiceImpl) ValidateFile(path string) error
ValidateFile checks if a file path is valid and accessible
type HTTPModelService ¶
type HTTPModelService struct {
// contains filtered or unexported fields
}
HTTPModelService implements ModelService using SDK client
func NewHTTPModelService ¶
func NewHTTPModelService(client sdk.Client) *HTTPModelService
NewHTTPModelService creates a new HTTP-based model service with pre-configured client
func (*HTTPModelService) GetCurrentModel ¶
func (s *HTTPModelService) GetCurrentModel() string
func (*HTTPModelService) IsModelAvailable ¶
func (s *HTTPModelService) IsModelAvailable(modelID string) bool
func (*HTTPModelService) ListModels ¶
func (s *HTTPModelService) ListModels(ctx context.Context) ([]string, error)
func (*HTTPModelService) SelectModel ¶
func (s *HTTPModelService) SelectModel(modelID string) error
func (*HTTPModelService) ValidateModel ¶
func (s *HTTPModelService) ValidateModel(modelID string) error
type HealthStatus ¶ added in v0.27.0
type HealthStatus struct { Healthy bool `json:"healthy"` ValidationErrors []error `json:"validation_errors"` StateHistorySize int `json:"state_history_size"` LastStateChange time.Time `json:"last_state_change"` MemoryUsageKB int `json:"memory_usage_kb"` }
HealthStatus represents the health status of the state manager
type InMemoryConversationRepository ¶
type InMemoryConversationRepository struct {
// contains filtered or unexported fields
}
InMemoryConversationRepository implements ConversationRepository using in-memory storage
func NewInMemoryConversationRepository ¶
func NewInMemoryConversationRepository(formatterService *ToolFormatterService) *InMemoryConversationRepository
NewInMemoryConversationRepository creates a new in-memory conversation repository
func (*InMemoryConversationRepository) AddMessage ¶
func (r *InMemoryConversationRepository) AddMessage(msg domain.ConversationEntry) error
func (*InMemoryConversationRepository) AddTokenUsage ¶ added in v0.28.0
func (r *InMemoryConversationRepository) AddTokenUsage(inputTokens, outputTokens, totalTokens int) error
AddTokenUsage adds token usage from a single API call to session totals
func (*InMemoryConversationRepository) Clear ¶
func (r *InMemoryConversationRepository) Clear() error
func (*InMemoryConversationRepository) ClearExceptFirstUserMessage ¶ added in v0.50.0
func (r *InMemoryConversationRepository) ClearExceptFirstUserMessage() error
func (*InMemoryConversationRepository) Export ¶
func (r *InMemoryConversationRepository) Export(format domain.ExportFormat) ([]byte, error)
func (*InMemoryConversationRepository) FormatToolResultExpanded ¶ added in v0.48.0
func (r *InMemoryConversationRepository) FormatToolResultExpanded(result *domain.ToolExecutionResult, terminalWidth int) string
FormatToolResultExpanded formats expanded tool execution results
func (*InMemoryConversationRepository) FormatToolResultForLLM ¶ added in v0.48.0
func (r *InMemoryConversationRepository) FormatToolResultForLLM(result *domain.ToolExecutionResult) string
FormatToolResultForLLM formats tool execution results for LLM consumption
func (*InMemoryConversationRepository) FormatToolResultForUI ¶ added in v0.48.0
func (r *InMemoryConversationRepository) FormatToolResultForUI(result *domain.ToolExecutionResult, terminalWidth int) string
FormatToolResultForUI formats tool execution results for UI display
func (*InMemoryConversationRepository) GetMessageCount ¶
func (r *InMemoryConversationRepository) GetMessageCount() int
func (*InMemoryConversationRepository) GetMessages ¶
func (r *InMemoryConversationRepository) GetMessages() []domain.ConversationEntry
func (*InMemoryConversationRepository) GetSessionTokens ¶ added in v0.28.0
func (r *InMemoryConversationRepository) GetSessionTokens() domain.SessionTokenStats
GetSessionTokens returns the accumulated token statistics for the session
func (*InMemoryConversationRepository) UpdateLastMessage ¶
func (r *InMemoryConversationRepository) UpdateLastMessage(content string) error
func (*InMemoryConversationRepository) UpdateLastMessageToolCalls ¶
func (r *InMemoryConversationRepository) UpdateLastMessageToolCalls(toolCalls *[]sdk.ChatCompletionMessageToolCall) error
type IndexedToolResult ¶ added in v0.50.0
type IndexedToolResult struct { Index int Result domain.ConversationEntry }
type LLMToolService ¶
type LLMToolService struct {
// contains filtered or unexported fields
}
LLMToolService implements ToolService with the new tools package architecture
func NewLLMToolService ¶
func NewLLMToolService(cfg *config.Config) *LLMToolService
NewLLMToolService creates a new LLM tool service with a new registry
func NewLLMToolServiceWithRegistry ¶ added in v0.14.1
func NewLLMToolServiceWithRegistry(cfg *config.Config, registry *tools.Registry) *LLMToolService
NewLLMToolServiceWithRegistry creates a new LLM tool service with an existing registry
func (*LLMToolService) ExecuteTool ¶
func (s *LLMToolService) ExecuteTool(ctx context.Context, toolCall sdk.ChatCompletionMessageToolCallFunction) (*domain.ToolExecutionResult, error)
ExecuteTool executes a tool with the given arguments
func (*LLMToolService) IsToolEnabled ¶
func (s *LLMToolService) IsToolEnabled(name string) bool
IsToolEnabled checks if a tool is enabled
func (*LLMToolService) ListAvailableTools ¶ added in v0.32.0
func (s *LLMToolService) ListAvailableTools() []string
ListAvailableTools returns names of all enabled tools
func (*LLMToolService) ListTools ¶
func (s *LLMToolService) ListTools() []sdk.ChatCompletionTool
ListTools returns definitions for all enabled tools
func (*LLMToolService) ValidateTool ¶
func (s *LLMToolService) ValidateTool(name string, args map[string]any) error
ValidateTool validates tool arguments
type NoOpToolService ¶
type NoOpToolService struct{}
NoOpToolService implements ToolService as a no-op (when tools are disabled)
func NewNoOpToolService ¶
func NewNoOpToolService() *NoOpToolService
NewNoOpToolService creates a new no-op tool service
func (*NoOpToolService) ExecuteTool ¶
func (s *NoOpToolService) ExecuteTool(ctx context.Context, toolCall sdk.ChatCompletionMessageToolCallFunction) (*domain.ToolExecutionResult, error)
func (*NoOpToolService) IsToolEnabled ¶
func (s *NoOpToolService) IsToolEnabled(name string) bool
func (*NoOpToolService) ListAvailableTools ¶ added in v0.32.0
func (s *NoOpToolService) ListAvailableTools() []string
func (*NoOpToolService) ListTools ¶
func (s *NoOpToolService) ListTools() []sdk.ChatCompletionTool
func (*NoOpToolService) ValidateTool ¶
func (s *NoOpToolService) ValidateTool(name string, args map[string]any) error
type OptimizerConfig ¶ added in v0.32.0
type OptimizerConfig struct { Enabled bool Model string MinMessages int BufferSize int Client sdk.Client Config *config.Config }
OptimizerConfig represents configuration for the conversation optimizer
type PersistentConversationRepository ¶ added in v0.45.0
type PersistentConversationRepository struct { *InMemoryConversationRepository // contains filtered or unexported fields }
PersistentConversationRepository wraps the InMemoryConversationRepository and adds persistence capabilities using a storage backend
func NewPersistentConversationRepository ¶ added in v0.45.0
func NewPersistentConversationRepository(formatterService *ToolFormatterService, storageBackend storage.ConversationStorage) *PersistentConversationRepository
NewPersistentConversationRepository creates a new persistent conversation repository
func (*PersistentConversationRepository) AddMessage ¶ added in v0.45.0
func (r *PersistentConversationRepository) AddMessage(msg domain.ConversationEntry) error
Override AddMessage to trigger auto-save
func (*PersistentConversationRepository) AddTokenUsage ¶ added in v0.45.0
func (r *PersistentConversationRepository) AddTokenUsage(inputTokens, outputTokens, totalTokens int) error
Override AddTokenUsage to trigger auto-save
func (*PersistentConversationRepository) Clear ¶ added in v0.45.0
func (r *PersistentConversationRepository) Clear() error
Override Clear to handle conversation state
func (*PersistentConversationRepository) Close ¶ added in v0.45.0
func (r *PersistentConversationRepository) Close() error
Close closes the storage connection
func (*PersistentConversationRepository) DeleteSavedConversation ¶ added in v0.45.0
func (r *PersistentConversationRepository) DeleteSavedConversation(ctx context.Context, conversationID string) error
DeleteSavedConversation deletes a saved conversation
func (*PersistentConversationRepository) GetCurrentConversationID ¶ added in v0.45.0
func (r *PersistentConversationRepository) GetCurrentConversationID() string
GetCurrentConversationID returns the current conversation ID
func (*PersistentConversationRepository) GetCurrentConversationMetadata ¶ added in v0.45.0
func (r *PersistentConversationRepository) GetCurrentConversationMetadata() storage.ConversationMetadata
GetCurrentConversationMetadata returns the current conversation metadata
func (*PersistentConversationRepository) GetOptimizedMessages ¶ added in v0.48.0
func (r *PersistentConversationRepository) GetOptimizedMessages() []sdk.Message
GetOptimizedMessages retrieves the stored optimized conversation messages
func (*PersistentConversationRepository) ListSavedConversations ¶ added in v0.45.0
func (r *PersistentConversationRepository) ListSavedConversations(ctx context.Context, limit, offset int) ([]storage.ConversationSummary, error)
ListSavedConversations returns a list of saved conversations
func (*PersistentConversationRepository) LoadConversation ¶ added in v0.45.0
func (r *PersistentConversationRepository) LoadConversation(ctx context.Context, conversationID string) error
LoadConversation loads a conversation from persistent storage
func (*PersistentConversationRepository) SaveConversation ¶ added in v0.45.0
func (r *PersistentConversationRepository) SaveConversation(ctx context.Context) error
SaveConversation saves the current conversation to persistent storage
func (*PersistentConversationRepository) SetAutoSave ¶ added in v0.45.0
func (r *PersistentConversationRepository) SetAutoSave(enabled bool)
SetAutoSave enables or disables automatic saving after each operation
func (*PersistentConversationRepository) SetConversationTags ¶ added in v0.45.0
func (r *PersistentConversationRepository) SetConversationTags(tags []string)
SetConversationTags sets tags for the current conversation
func (*PersistentConversationRepository) SetConversationTitle ¶ added in v0.45.0
func (r *PersistentConversationRepository) SetConversationTitle(title string)
SetConversationTitle sets the title for the current conversation
func (*PersistentConversationRepository) SetOptimizedMessages ¶ added in v0.48.0
func (r *PersistentConversationRepository) SetOptimizedMessages(ctx context.Context, optimizedMessages []sdk.Message) error
SetOptimizedMessages stores the optimized conversation messages
func (*PersistentConversationRepository) SetTaskTracker ¶ added in v0.50.0
func (r *PersistentConversationRepository) SetTaskTracker(taskTracker domain.TaskTracker)
SetTaskTracker sets the task tracker for context ID persistence
func (*PersistentConversationRepository) SetTitleGenerator ¶ added in v0.46.1
func (r *PersistentConversationRepository) SetTitleGenerator(titleGenerator *ConversationTitleGenerator)
SetTitleGenerator sets the title generator for automatic title invalidation
func (*PersistentConversationRepository) StartNewConversation ¶ added in v0.45.0
func (r *PersistentConversationRepository) StartNewConversation(title string) error
StartNewConversation begins a new conversation with a unique ID
type StateChangeEvent ¶ added in v0.27.0
type StateChangeEvent struct { Type StateChangeType OldState domain.StateSnapshot NewState domain.StateSnapshot Timestamp time.Time }
StateChangeEvent represents a state change event
type StateChangeListener ¶ added in v0.27.0
type StateChangeListener interface {
OnStateChanged(oldState, newState domain.StateSnapshot)
}
StateChangeListener interface for components that need to react to state changes
type StateChangeType ¶ added in v0.27.0
type StateChangeType int
StateChangeType represents the type of state change
const ( StateChangeTypeViewTransition StateChangeType = iota StateChangeTypeChatStatus StateChangeTypeToolExecution StateChangeTypeDimensions )
func (StateChangeType) String ¶ added in v0.27.0
func (s StateChangeType) String() string
type StateManager ¶ added in v0.27.0
type StateManager struct {
// contains filtered or unexported fields
}
StateManager provides centralized state management with proper synchronization
func NewStateManager ¶ added in v0.27.0
func NewStateManager(debugMode bool) *StateManager
NewStateManager creates a new state manager
func (*StateManager) AddListener ¶ added in v0.27.0
func (sm *StateManager) AddListener(listener StateChangeListener)
AddListener adds a state change listener
func (*StateManager) ClearFileSelectionState ¶ added in v0.27.0
func (sm *StateManager) ClearFileSelectionState()
ClearFileSelectionState clears the file selection state
func (*StateManager) CompleteCurrentTool ¶ added in v0.27.0
func (sm *StateManager) CompleteCurrentTool(result *domain.ToolExecutionResult) error
CompleteCurrentTool marks the current tool as completed
func (*StateManager) EndChatSession ¶ added in v0.27.0
func (sm *StateManager) EndChatSession()
EndChatSession ends the current chat session
func (*StateManager) EndToolExecution ¶ added in v0.27.0
func (sm *StateManager) EndToolExecution()
EndToolExecution ends the current tool execution session
func (*StateManager) ExportStateHistory ¶ added in v0.27.0
func (sm *StateManager) ExportStateHistory() ([]byte, error)
ExportStateHistory exports the state history as JSON for debugging
func (*StateManager) FailCurrentTool ¶ added in v0.27.0
func (sm *StateManager) FailCurrentTool(result *domain.ToolExecutionResult) error
FailCurrentTool marks the current tool as failed
func (*StateManager) GetChatSession ¶ added in v0.27.0
func (sm *StateManager) GetChatSession() *domain.ChatSession
GetChatSession returns the current chat session (read-only)
func (*StateManager) GetCurrentView ¶ added in v0.27.0
func (sm *StateManager) GetCurrentView() domain.ViewState
GetCurrentView returns the current view state
func (*StateManager) GetDimensions ¶ added in v0.27.0
func (sm *StateManager) GetDimensions() (int, int)
GetDimensions returns the current UI dimensions
func (*StateManager) GetFileSelectionState ¶ added in v0.27.0
func (sm *StateManager) GetFileSelectionState() *domain.FileSelectionState
GetFileSelectionState returns the current file selection state
func (*StateManager) GetHealthStatus ¶ added in v0.27.0
func (sm *StateManager) GetHealthStatus() HealthStatus
GetHealthStatus returns the health status of the state manager
func (*StateManager) GetStateHistory ¶ added in v0.27.0
func (sm *StateManager) GetStateHistory() []domain.StateSnapshot
GetStateHistory returns the state change history
func (*StateManager) GetStateSnapshot ¶ added in v0.27.0
func (sm *StateManager) GetStateSnapshot() domain.StateSnapshot
GetStateSnapshot returns the current state snapshot
func (*StateManager) GetToolExecution ¶ added in v0.27.0
func (sm *StateManager) GetToolExecution() *domain.ToolExecutionSession
GetToolExecution returns the current tool execution session (read-only)
func (*StateManager) IsDebugMode ¶ added in v0.27.0
func (sm *StateManager) IsDebugMode() bool
IsDebugMode returns whether debug mode is enabled
func (*StateManager) RecoverFromInconsistentState ¶ added in v0.27.0
func (sm *StateManager) RecoverFromInconsistentState() error
RecoverFromInconsistentState attempts to recover from an inconsistent state
func (*StateManager) RemoveListener ¶ added in v0.27.0
func (sm *StateManager) RemoveListener(listener StateChangeListener)
RemoveListener removes a state change listener
func (*StateManager) SetDebugMode ¶ added in v0.27.0
func (sm *StateManager) SetDebugMode(enabled bool)
SetDebugMode enables or disables debug mode
func (*StateManager) SetDimensions ¶ added in v0.27.0
func (sm *StateManager) SetDimensions(width, height int)
SetDimensions updates the UI dimensions
func (*StateManager) SetFileSelectedIndex ¶ added in v0.27.0
func (sm *StateManager) SetFileSelectedIndex(index int)
SetFileSelectedIndex sets the selected file index
func (*StateManager) SetupFileSelection ¶ added in v0.27.0
func (sm *StateManager) SetupFileSelection(files []string)
SetupFileSelection initializes file selection state
func (*StateManager) StartChatSession ¶ added in v0.27.0
func (sm *StateManager) StartChatSession(requestID, model string, eventChan <-chan domain.ChatEvent) error
StartChatSession starts a new chat session
func (*StateManager) StartToolExecution ¶ added in v0.27.0
func (sm *StateManager) StartToolExecution(toolCalls []sdk.ChatCompletionMessageToolCall) error
StartToolExecution starts a new tool execution session
func (*StateManager) TransitionToView ¶ added in v0.27.0
func (sm *StateManager) TransitionToView(newView domain.ViewState) error
TransitionToView transitions to a new view with validation and logging
func (*StateManager) UpdateChatStatus ¶ added in v0.27.0
func (sm *StateManager) UpdateChatStatus(status domain.ChatStatus) error
UpdateChatStatus updates the chat session status with validation
func (*StateManager) UpdateFileSearchQuery ¶ added in v0.27.0
func (sm *StateManager) UpdateFileSearchQuery(query string)
UpdateFileSearchQuery updates the file search query
func (*StateManager) ValidateState ¶ added in v0.27.0
func (sm *StateManager) ValidateState() []error
ValidateState performs comprehensive state validation
type StreamingChatService ¶
type StreamingChatService struct {
// contains filtered or unexported fields
}
StreamingChatService implements ChatService by delegating to AgentService
func NewStreamingChatService ¶
func NewStreamingChatService(agentService domain.AgentService) *StreamingChatService
NewStreamingChatService creates a new streaming chat service that delegates to AgentService
func (*StreamingChatService) CancelRequest ¶
func (s *StreamingChatService) CancelRequest(requestID string) error
CancelRequest cancels an active request by delegating to AgentService
func (*StreamingChatService) GetMetrics ¶
func (s *StreamingChatService) GetMetrics(requestID string) *domain.ChatMetrics
GetMetrics returns metrics for a completed request by delegating to AgentService
type TitleGenerator ¶ added in v0.46.1
TitleGenerator interface for conversation title generation
type ToolFormatterService ¶ added in v0.33.4
type ToolFormatterService struct {
// contains filtered or unexported fields
}
ToolFormatterService provides formatting for tool results by delegating to individual tools
func NewToolFormatterService ¶ added in v0.33.4
func NewToolFormatterService(registry ToolRegistry) *ToolFormatterService
NewToolFormatterService creates a new tool formatter service
func (*ToolFormatterService) FormatToolArgumentsForApproval ¶ added in v0.33.5
func (s *ToolFormatterService) FormatToolArgumentsForApproval(toolName string, args map[string]any) string
FormatToolArgumentsForApproval formats tool arguments for approval display This delegates to individual tools if they have special formatting needs
func (*ToolFormatterService) FormatToolCall ¶ added in v0.33.4
func (s *ToolFormatterService) FormatToolCall(toolName string, args map[string]any) string
FormatToolCall formats a tool call for consistent display
func (*ToolFormatterService) FormatToolResultExpanded ¶ added in v0.33.4
func (s *ToolFormatterService) FormatToolResultExpanded(result *domain.ToolExecutionResult, terminalWidth int) string
FormatToolResultExpanded formats expanded tool execution results
func (*ToolFormatterService) FormatToolResultForLLM ¶ added in v0.33.4
func (s *ToolFormatterService) FormatToolResultForLLM(result *domain.ToolExecutionResult) string
FormatToolResultForLLM formats tool execution results for LLM consumption
func (*ToolFormatterService) FormatToolResultForUI ¶ added in v0.33.4
func (s *ToolFormatterService) FormatToolResultForUI(result *domain.ToolExecutionResult, terminalWidth int) string
FormatToolResultForUI formats tool execution results for UI display
func (*ToolFormatterService) ShouldAlwaysExpandTool ¶ added in v0.36.0
func (s *ToolFormatterService) ShouldAlwaysExpandTool(toolName string) bool
ShouldAlwaysExpandTool checks if a tool result should always be expanded