@@ -43,6 +43,18 @@ import (
43 "github.com/qjebbs/go-jsons"
43 "github.com/qjebbs/go-jsons"
46+// Coordinator errors.
48+ errCoderAgentNotConfigured = errors.New("coder agent not configured")
49+ errModelProviderNotConfigured = errors.New("model provider not configured")
50+ errLargeModelNotSelected = errors.New("large model not selected")
51+ errSmallModelNotSelected = errors.New("small model not selected")
52+ errLargeModelProviderNotConfigured = errors.New("large model provider not configured")
53+ errSmallModelProviderNotConfigured = errors.New("small model provider not configured")
54+ errLargeModelNotFound = errors.New("large model not found in provider config")
55+ errSmallModelNotFound = errors.New("small model not found in provider config")
46type Coordinator interface {
58type Coordinator interface {
47 // INFO: (kujtim) this is not used yet we will use this when we have multiple agents
59 // INFO: (kujtim) this is not used yet we will use this when we have multiple agents
48 // SetMainAgent(string)
60 // SetMainAgent(string)
@@ -97,7 +109,7 @@ func NewCoordinator(
98 agentCfg, ok := cfg.Agents[config.AgentCoder]
110 agentCfg, ok := cfg.Agents[config.AgentCoder]
100− return nil, errors.New("coder agent not configured")
112+ return nil, errCoderAgentNotConfigured
103 // TODO: make this dynamic when we support multiple agents
115 // TODO: make this dynamic when we support multiple agents
@@ -145,7 +157,7 @@ func (c *coordinator) Run(ctx context.Context, sessionID string, prompt string,
146 providerCfg, ok := c.cfg.Providers.Get(model.ModelCfg.Provider)
158 providerCfg, ok := c.cfg.Providers.Get(model.ModelCfg.Provider)
148− return nil, errors.New("model provider not configured")
160+ return nil, errModelProviderNotConfigured
151 mergedOptions, temp, topP, topK, freqPenalty, presPenalty := mergeCallOptions(model, providerCfg)
163 mergedOptions, temp, topP, topK, freqPenalty, presPenalty := mergeCallOptions(model, providerCfg)
@@ -497,16 +509,16 @@ func (c *coordinator) buildTools(ctx context.Context, agent config.Agent) ([]fan
497func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent bool) (Model, Model, error) {
509func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent bool) (Model, Model, error) {
498 largeModelCfg, ok := c.cfg.Models[config.SelectedModelTypeLarge]
510 largeModelCfg, ok := c.cfg.Models[config.SelectedModelTypeLarge]
500− return Model{}, Model{}, errors.New("large model not selected")
512+ return Model{}, Model{}, errLargeModelNotSelected
502 smallModelCfg, ok := c.cfg.Models[config.SelectedModelTypeSmall]
514 smallModelCfg, ok := c.cfg.Models[config.SelectedModelTypeSmall]
504− return Model{}, Model{}, errors.New("small model not selected")
516+ return Model{}, Model{}, errSmallModelNotSelected
507 largeProviderCfg, ok := c.cfg.Providers.Get(largeModelCfg.Provider)
519 largeProviderCfg, ok := c.cfg.Providers.Get(largeModelCfg.Provider)
509− return Model{}, Model{}, errors.New("large model provider not configured")
521+ return Model{}, Model{}, errLargeModelProviderNotConfigured
512 largeProvider, err := c.buildProvider(largeProviderCfg, largeModelCfg, isSubAgent)
524 largeProvider, err := c.buildProvider(largeProviderCfg, largeModelCfg, isSubAgent)
@@ -516,7 +528,7 @@ func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent bool) (Mo
517 smallProviderCfg, ok := c.cfg.Providers.Get(smallModelCfg.Provider)
529 smallProviderCfg, ok := c.cfg.Providers.Get(smallModelCfg.Provider)
519− return Model{}, Model{}, errors.New("small model provider not configured")
531+ return Model{}, Model{}, errSmallModelProviderNotConfigured
522 smallProvider, err := c.buildProvider(smallProviderCfg, smallModelCfg, true)
534 smallProvider, err := c.buildProvider(smallProviderCfg, smallModelCfg, true)
@@ -539,11 +551,11 @@ func (c *coordinator) buildAgentModels(ctx context.Context, isSubAgent bool) (Mo
541 if largeCatwalkModel == nil {
553 if largeCatwalkModel == nil {
542− return Model{}, Model{}, errors.New("large model not found in provider config")
554+ return Model{}, Model{}, errLargeModelNotFound
545 if smallCatwalkModel == nil {
557 if smallCatwalkModel == nil {
546− return Model{}, Model{}, errors.New("small model not found in provider config")
558+ return Model{}, Model{}, errSmallModelNotFound
549 largeModelID := largeModelCfg.Model
561 largeModelID := largeModelCfg.Model
@@ -871,7 +883,7 @@ func (c *coordinator) UpdateModels(ctx context.Context) error {
872 agentCfg, ok := c.cfg.Agents[config.AgentCoder]
884 agentCfg, ok := c.cfg.Agents[config.AgentCoder]
874− return errors.New("coder agent not configured")
886+ return errCoderAgentNotConfigured
877 tools, err := c.buildTools(ctx, agentCfg)
889 tools, err := c.buildTools(ctx, agentCfg)
@@ -893,7 +905,7 @@ func (c *coordinator) QueuedPromptsList(sessionID string) []string {
893func (c *coordinator) Summarize(ctx context.Context, sessionID string) error {
905func (c *coordinator) Summarize(ctx context.Context, sessionID string) error {
894 providerCfg, ok := c.cfg.Providers.Get(c.currentAgent.Model().ModelCfg.Provider)
906 providerCfg, ok := c.cfg.Providers.Get(c.currentAgent.Model().ModelCfg.Provider)
896− return errors.New("model provider not configured")
908+ return errModelProviderNotConfigured
898 return c.currentAgent.Summarize(ctx, sessionID, getProviderOptions(c.currentAgent.Model(), providerCfg))
910 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
969 providerCfg, ok := c.cfg.Providers.Get(model.ModelCfg.Provider)
981 providerCfg, ok := c.cfg.Providers.Get(model.ModelCfg.Provider)
971− return fantasy.ToolResponse{}, errors.New("model provider not configured")
983+ return fantasy.ToolResponse{}, errModelProviderNotConfigured
974 // Run the agent
986 // Run the agent