services

package
v0.53.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2025 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFileService added in v0.15.0

func NewFileService() domain.FileService

NewFileService creates a new file service

Types

type A2AAgentService added in v0.49.0

type A2AAgentService struct {
	// contains filtered or unexported fields
}

func NewA2AAgentService added in v0.49.0

func NewA2AAgentService(cfg *config.Config) *A2AAgentService

func (*A2AAgentService) GetAgentCard added in v0.49.0

func (s *A2AAgentService) GetAgentCard(ctx context.Context, agentURL string) (*adk.AgentCard, error)

func (*A2AAgentService) GetAgentCards added in v0.49.0

func (s *A2AAgentService) GetAgentCards(ctx context.Context) ([]*domain.CachedAgentCard, error)

func (*A2AAgentService) GetConfiguredAgents added in v0.49.0

func (s *A2AAgentService) GetConfiguredAgents() []string

type A2APollingMonitor added in v0.53.0

type A2APollingMonitor struct {
	// contains filtered or unexported fields
}

func NewA2APollingMonitor added in v0.53.0

func NewA2APollingMonitor(
	taskTracker domain.TaskTracker,
	eventChan chan<- domain.ChatEvent,
	messageQueue domain.MessageQueue,
	requestID string,
	conversationRepo domain.ConversationRepository,
) *A2APollingMonitor

func (*A2APollingMonitor) MonitorPollingState added in v0.53.0

func (m *A2APollingMonitor) MonitorPollingState(ctx context.Context, taskID string, state *domain.TaskPollingState)

func (*A2APollingMonitor) Start added in v0.53.0

func (m *A2APollingMonitor) Start(ctx context.Context)

func (*A2APollingMonitor) Stop added in v0.53.0

func (m *A2APollingMonitor) Stop()

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,
	messageQueue domain.MessageQueue,
	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

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

type ApprovalArgumentFormatter interface {
	FormatArgumentsForApproval(args map[string]any) string
}

ApprovalArgumentFormatter interface for tools that need custom approval argument formatting

type BackgroundJobManager added in v0.46.0

type BackgroundJobManager struct {
	// contains filtered or unexported fields
}

BackgroundJobManager manages background tasks

func NewBackgroundJobManager added in v0.46.0

func NewBackgroundJobManager(titleGenerator TitleGenerator, config *config.Config) *BackgroundJobManager

NewBackgroundJobManager creates a new background job manager

func (*BackgroundJobManager) IsRunning added in v0.46.0

func (m *BackgroundJobManager) IsRunning() bool

IsRunning returns whether the job manager is currently running

func (*BackgroundJobManager) Start added in v0.46.0

func (m *BackgroundJobManager) Start(ctx context.Context)

Start begins running background jobs

func (*BackgroundJobManager) Stop added in v0.46.0

func (m *BackgroundJobManager) Stop()

Stop stops all background jobs gracefully

func (*BackgroundJobManager) TriggerTitleGeneration added in v0.46.0

func (m *BackgroundJobManager) TriggerTitleGeneration(ctx context.Context) error

TriggerTitleGeneration manually triggers title generation for pending conversations

type BackgroundTaskService added in v0.53.3

type BackgroundTaskService struct {
	// contains filtered or unexported fields
}

BackgroundTaskService handles background task operations (A2A-specific) Only instantiated when A2A tools are enabled

func NewBackgroundTaskService added in v0.53.3

func NewBackgroundTaskService(taskTracker domain.TaskTracker) *BackgroundTaskService

NewBackgroundTaskService creates a new background task service

func (*BackgroundTaskService) CancelBackgroundTask added in v0.53.3

func (s *BackgroundTaskService) CancelBackgroundTask(taskID string) error

CancelBackgroundTask cancels a background task by task ID

func (*BackgroundTaskService) GetBackgroundTasks added in v0.53.3

func (s *BackgroundTaskService) GetBackgroundTasks() []domain.TaskPollingState

GetBackgroundTasks returns all current background polling tasks

type ConfigService added in v0.41.0

type ConfigService struct {
	// contains filtered or unexported fields
}

ConfigService handles configuration management and reloading

func NewConfigService added in v0.41.0

func NewConfigService(v *viper.Viper, cfg *config.Config) *ConfigService

NewConfigService creates a new config service

func (*ConfigService) GetConfig added in v0.41.0

func (cs *ConfigService) GetConfig() *config.Config

GetConfig returns the current config

func (*ConfigService) Reload added in v0.41.0

func (cs *ConfigService) Reload() (*config.Config, error)

Reload reloads configuration from disk

func (*ConfigService) SetValue added in v0.41.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.30.0

type ConversationOptimizer struct {
	// contains filtered or unexported fields
}

ConversationOptimizer provides methods to optimize conversation history for token efficiency

func NewConversationOptimizer added in v0.30.0

func NewConversationOptimizer(config OptimizerConfig) *ConversationOptimizer

NewConversationOptimizer creates a new conversation optimizer with configuration

func (*ConversationOptimizer) OptimizeMessages added in v0.30.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.0

type ConversationTitleGenerator struct {
	// contains filtered or unexported fields
}

ConversationTitleGenerator generates titles for conversations using AI

func NewConversationTitleGenerator added in v0.46.0

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.0

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.0

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.0

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.0

func (g *ConversationTitleGenerator) ProcessPendingTitles(ctx context.Context) error

ProcessPendingTitles processes a batch of conversations that need title generation

type FileServiceImpl added in v0.15.0

type FileServiceImpl struct{}

FileServiceImpl implements domain.FileService

func (*FileServiceImpl) GetFileInfo added in v0.15.0

func (s *FileServiceImpl) GetFileInfo(path string) (domain.FileInfo, error)

GetFileInfo returns information about a file

func (*FileServiceImpl) ListProjectFiles added in v0.15.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.15.0

func (s *FileServiceImpl) ReadFile(path string) (string, error)

ReadFile reads the content of a file

func (*FileServiceImpl) ReadFileLines added in v0.15.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.15.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 (*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 (*InMemoryConversationRepository) ClearExceptFirstUserMessage added in v0.49.0

func (r *InMemoryConversationRepository) ClearExceptFirstUserMessage() error

func (*InMemoryConversationRepository) Export

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 (*InMemoryConversationRepository) GetSessionTokens added in v0.28.0

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.49.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

ExecuteTool executes a tool with the given arguments

func (*LLMToolService) GetTaskTracker added in v0.53.0

func (s *LLMToolService) GetTaskTracker() domain.TaskTracker

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 MessageQueueService added in v0.53.0

type MessageQueueService struct {
	// contains filtered or unexported fields
}

MessageQueueService manages a centralized queue for messages waiting to be processed

func NewMessageQueueService added in v0.53.0

func NewMessageQueueService() *MessageQueueService

NewMessageQueueService creates a new message queue service

func (*MessageQueueService) Clear added in v0.53.0

func (mq *MessageQueueService) Clear()

Clear removes all messages from the queue

func (*MessageQueueService) Dequeue added in v0.53.0

func (mq *MessageQueueService) Dequeue() *domain.QueuedMessage

Dequeue removes and returns the next message from the queue Returns nil if the queue is empty

func (*MessageQueueService) Enqueue added in v0.53.0

func (mq *MessageQueueService) Enqueue(message sdk.Message, requestID string)

Enqueue adds a message to the queue

func (*MessageQueueService) GetAll added in v0.53.0

func (mq *MessageQueueService) GetAll() []domain.QueuedMessage

GetAll returns all messages in the queue without removing them

func (*MessageQueueService) IsEmpty added in v0.53.0

func (mq *MessageQueueService) IsEmpty() bool

IsEmpty returns true if the queue has no messages

func (*MessageQueueService) Peek added in v0.53.0

Peek returns the next message without removing it Returns nil if the queue is empty

func (*MessageQueueService) Size added in v0.53.0

func (mq *MessageQueueService) Size() int

Size returns the number of messages in the queue

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 (*NoOpToolService) GetTaskTracker added in v0.53.0

func (s *NoOpToolService) GetTaskTracker() domain.TaskTracker

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.30.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

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

Override Clear to handle conversation state

func (*PersistentConversationRepository) Close added in v0.45.0

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.0

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) AddQueuedMessage added in v0.53.0

func (sm *StateManager) AddQueuedMessage(message sdk.Message, requestID string)

AddQueuedMessage adds a message to the input queue

func (*StateManager) ClearFileSelectionState added in v0.27.0

func (sm *StateManager) ClearFileSelectionState()

ClearFileSelectionState clears the file selection state

func (*StateManager) ClearQueuedMessages added in v0.53.0

func (sm *StateManager) ClearQueuedMessages()

ClearQueuedMessages clears all queued messages

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) GetQueuedMessages added in v0.53.0

func (sm *StateManager) GetQueuedMessages() []domain.QueuedMessage

GetQueuedMessages returns the current queued messages

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) IsAgentBusy added in v0.53.0

func (sm *StateManager) IsAgentBusy() bool

IsAgentBusy returns true if the agent is currently processing a request

func (*StateManager) IsDebugMode added in v0.27.0

func (sm *StateManager) IsDebugMode() bool

IsDebugMode returns whether debug mode is enabled

func (*StateManager) PopQueuedMessage added in v0.53.0

func (sm *StateManager) PopQueuedMessage() *domain.QueuedMessage

PopQueuedMessage removes and returns the first message from the queue (FIFO order)

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 TaskRetentionService added in v0.53.3

type TaskRetentionService struct {
	// contains filtered or unexported fields
}

TaskRetentionService manages in-memory retention of completed/terminal A2A tasks

func NewTaskRetentionService added in v0.53.3

func NewTaskRetentionService(maxRetention int) *TaskRetentionService

NewTaskRetentionService creates a new task retention service

func (*TaskRetentionService) AddTask added in v0.53.3

func (t *TaskRetentionService) AddTask(task domain.TaskInfo)

AddTask adds a terminal task (completed, failed, canceled, etc.) to retention

func (*TaskRetentionService) Clear added in v0.53.3

func (t *TaskRetentionService) Clear()

Clear removes all retained tasks

func (*TaskRetentionService) GetMaxRetention added in v0.53.3

func (t *TaskRetentionService) GetMaxRetention() int

GetMaxRetention returns the current maximum retention count

func (*TaskRetentionService) GetTasks added in v0.53.3

func (t *TaskRetentionService) GetTasks() []domain.TaskInfo

GetTasks returns all retained tasks

func (*TaskRetentionService) SetMaxRetention added in v0.53.3

func (t *TaskRetentionService) SetMaxRetention(maxRetention int)

SetMaxRetention updates the maximum retention count

type TitleGenerator added in v0.46.0

type TitleGenerator interface {
	ProcessPendingTitles(ctx context.Context) error
}

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

type ToolRegistry added in v0.33.4

type ToolRegistry interface {
	GetTool(name string) (domain.Tool, error)
	ListAvailableTools() []string
}

ToolRegistry interface for accessing tools (implemented by tools.Registry)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL