@@ -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