@@ -82,8 +82,9 @@ type ProviderConfig struct {
8282}
8383
8484type Agent struct {
85− Name string `json:"name"`
86− Description string `json:"description,omitempty"`
85+ ID AgentID `json:"id"`
86+ Name string `json:"name"`
87+ Description string `json:"description,omitempty"`
8788 // This is the id of the system prompt used by the agent
8889 Disabled bool `json:"disabled"`
8990
@@ -229,6 +230,7 @@ func loadConfig(cwd string) (*Config, error) {
229230
230231 agents := map[AgentID]Agent{
231232 AgentCoder: {
233+ ID: AgentCoder,
232234 Name: "Coder",
233235 Description: "An agent that helps with executing coding tasks.",
234236 Provider: preferredProvider.ID,
@@ -237,6 +239,7 @@ func loadConfig(cwd string) (*Config, error) {
237239 // All tools allowed
238240 },
239241 AgentTask: {
242+ ID: AgentTask,
240243 Name: "Task",
241244 Description: "An agent that helps with searching for context and finding implementation details.",
242245 Provider: preferredProvider.ID,
@@ -254,6 +257,7 @@ func loadConfig(cwd string) (*Config, error) {
254257 AllowedLSP: []string{},
255258 },
256259 AgentTitle: {
260+ ID: AgentTitle,
257261 Name: "Title",
258262 Description: "An agent that helps with generating titles for sessions.",
259263 Provider: preferredProvider.ID,
@@ -265,6 +269,7 @@ func loadConfig(cwd string) (*Config, error) {
265269 AllowedLSP: []string{},
266270 },
267271 AgentSummarize: {
272+ ID: AgentSummarize,
268273 Name: "Summarize",
269274 Description: "An agent that helps with summarizing sessions.",
270275 Provider: preferredProvider.ID,
@@ -429,43 +434,44 @@ func mergeAgents(base, global, local *Config) {
429434 if cfg == nil {
430435 continue
431436 }
432− for agentID, globalAgent := range cfg.Agents {
437+ for agentID, newAgent := range cfg.Agents {
433438 if _, ok := base.Agents[agentID]; !ok {
434− base.Agents[agentID] = globalAgent
439+ newAgent.ID = agentID // Ensure the ID is set correctly
440+ base.Agents[agentID] = newAgent
435441 } else {
436442 switch agentID {
437443 case AgentCoder:
438444 baseAgent := base.Agents[agentID]
439− baseAgent.Model = globalAgent.Model
440− baseAgent.Provider = globalAgent.Provider
441− baseAgent.AllowedMCP = globalAgent.AllowedMCP
442− baseAgent.AllowedLSP = globalAgent.AllowedLSP
445+ baseAgent.Model = newAgent.Model
446+ baseAgent.Provider = newAgent.Provider
447+ baseAgent.AllowedMCP = newAgent.AllowedMCP
448+ baseAgent.AllowedLSP = newAgent.AllowedLSP
443449 base.Agents[agentID] = baseAgent
444450 case AgentTask:
445451 baseAgent := base.Agents[agentID]
446− baseAgent.Model = globalAgent.Model
447− baseAgent.Provider = globalAgent.Provider
452+ baseAgent.Model = newAgent.Model
453+ baseAgent.Provider = newAgent.Provider
448454 base.Agents[agentID] = baseAgent
449455 case AgentTitle:
450456 baseAgent := base.Agents[agentID]
451− baseAgent.Model = globalAgent.Model
452− baseAgent.Provider = globalAgent.Provider
457+ baseAgent.Model = newAgent.Model
458+ baseAgent.Provider = newAgent.Provider
453459 base.Agents[agentID] = baseAgent
454460 case AgentSummarize:
455461 baseAgent := base.Agents[agentID]
456− baseAgent.Model = globalAgent.Model
457− baseAgent.Provider = globalAgent.Provider
462+ baseAgent.Model = newAgent.Model
463+ baseAgent.Provider = newAgent.Provider
458464 base.Agents[agentID] = baseAgent
459465 default:
460466 baseAgent := base.Agents[agentID]
461− baseAgent.Name = globalAgent.Name
462− baseAgent.Description = globalAgent.Description
463− baseAgent.Disabled = globalAgent.Disabled
464− baseAgent.Provider = globalAgent.Provider
465− baseAgent.Model = globalAgent.Model
466− baseAgent.AllowedTools = globalAgent.AllowedTools
467− baseAgent.AllowedMCP = globalAgent.AllowedMCP
468− baseAgent.AllowedLSP = globalAgent.AllowedLSP
467+ baseAgent.Name = newAgent.Name
468+ baseAgent.Description = newAgent.Description
469+ baseAgent.Disabled = newAgent.Disabled
470+ baseAgent.Provider = newAgent.Provider
471+ baseAgent.Model = newAgent.Model
472+ baseAgent.AllowedTools = newAgent.AllowedTools
473+ baseAgent.AllowedMCP = newAgent.AllowedMCP
474+ baseAgent.AllowedLSP = newAgent.AllowedLSP
469475 base.Agents[agentID] = baseAgent
470476
471477 }