diff --git a/internal/agent/coordinator.go b/internal/agent/coordinator.go index 7a512f239b0bfce56a282f9311087579a1e6770a..6fd36661ed6ee3065b86cceb78e9253ddd5b42b7 100644 --- a/internal/agent/coordinator.go +++ b/internal/agent/coordinator.go @@ -43,6 +43,18 @@ import ( "github.com/qjebbs/go-jsons" ) +// Coordinator errors. +var ( + errCoderAgentNotConfigured = errors.New("coder agent not configured") + errModelProviderNotConfigured = errors.New("model provider not configured") + errLargeModelNotSelected = errors.New("large model not selected") + errSmallModelNotSelected = errors.New("small model not selected") + errLargeModelProviderNotConfigured = errors.New("large model provider not configured") + errSmallModelProviderNotConfigured = errors.New("small model provider not configured") + errLargeModelNotFound = errors.New("large model not found in provider config") + errSmallModelNotFound = errors.New("small model not found in provider config") +) + type Coordinator interface { // INFO: (kujtim) this is not used yet we will use this when we have multiple agents // SetMainAgent(string) @@ -97,7 +109,7 @@ func NewCoordinator( agentCfg, ok := cfg.Agents[config.AgentCoder] if !ok { - return nil, errors.New("coder agent not configured") + return nil, errCoderAgentNotConfigured } // TODO: make this dynamic when we support multiple agents @@ -145,7 +157,7 @@ func (c *coordinator) Run(ctx context.Context, sessionID string, prompt string, providerCfg, ok := c.cfg.Providers.Get(model.ModelCfg.Provider) if !ok { - return nil, errors.New("model provider not configured") + return nil, errModelProviderNotConfigured } mergedOptions, temp, topP, topK, freqPenalty, presPenalty := mergeCallOptions(model, providerCfg) @@ -497,16 +509,16 @@ func (c *coordinator) buildTools(ctx context.Context, agent config.Agent) ([]fan func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent bool) (Model, Model, error) { largeModelCfg, ok := c.cfg.Models[config.SelectedModelTypeLarge] if !ok { - return Model{}, Model{}, errors.New("large model not selected") + return Model{}, Model{}, errLargeModelNotSelected } smallModelCfg, ok := c.cfg.Models[config.SelectedModelTypeSmall] if !ok { - return Model{}, Model{}, errors.New("small model not selected") + return Model{}, Model{}, errSmallModelNotSelected } largeProviderCfg, ok := c.cfg.Providers.Get(largeModelCfg.Provider) if !ok { - return Model{}, Model{}, errors.New("large model provider not configured") + return Model{}, Model{}, errLargeModelProviderNotConfigured } largeProvider, err := c.buildProvider(largeProviderCfg, largeModelCfg, isSubAgent) @@ -516,7 +528,7 @@ func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent bool) (Mo smallProviderCfg, ok := c.cfg.Providers.Get(smallModelCfg.Provider) if !ok { - return Model{}, Model{}, errors.New("small model provider not configured") + return Model{}, Model{}, errSmallModelProviderNotConfigured } smallProvider, err := c.buildProvider(smallProviderCfg, smallModelCfg, true) @@ -539,11 +551,11 @@ func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent bool) (Mo } if largeCatwalkModel == nil { - return Model{}, Model{}, errors.New("large model not found in provider config") + return Model{}, Model{}, errLargeModelNotFound } if smallCatwalkModel == nil { - return Model{}, Model{}, errors.New("small model not found in provider config") + return Model{}, Model{}, errSmallModelNotFound } largeModelID := largeModelCfg.Model @@ -871,7 +883,7 @@ func (c *coordinator) UpdateModels(ctx context.Context) error { agentCfg, ok := c.cfg.Agents[config.AgentCoder] if !ok { - return errors.New("coder agent not configured") + return errCoderAgentNotConfigured } tools, err := c.buildTools(ctx, agentCfg) @@ -893,7 +905,7 @@ func (c *coordinator) QueuedPromptsList(sessionID string) []string { func (c *coordinator) Summarize(ctx context.Context, sessionID string) error { providerCfg, ok := c.cfg.Providers.Get(c.currentAgent.Model().ModelCfg.Provider) if !ok { - return errors.New("model provider not configured") + return errModelProviderNotConfigured } return c.currentAgent.Summarize(ctx, sessionID, getProviderOptions(c.currentAgent.Model(), providerCfg)) } @@ -968,7 +980,7 @@ func (c *coordinator) runSubAgent(ctx context.Context, params subAgentParams) (f providerCfg, ok := c.cfg.Providers.Get(model.ModelCfg.Provider) if !ok { - return fantasy.ToolResponse{}, errors.New("model provider not configured") + return fantasy.ToolResponse{}, errModelProviderNotConfigured } // Run the agent