on main help sign in
chore: refactor
c571aefkujtimiihoxha
internal/llm/agent/agent.go+16−8
@@ -197,8 +197,22 @@ func NewAgent(
197 tools.NewWriteTool(lspClients, permissions, history, cwd),
197 tools.NewWriteTool(lspClients, permissions, history, cwd),
198 }
198 }
199
199
200+ mcpToolsOnce.Do(func() {
201+ mcpTools = doGetMCPTools(ctx, permissions, cfg)
202+ })
203+
204+ withCoderTools := func(t []tools.BaseTool) []tools.BaseTool {
205+ if agentCfg.ID == "coder" {
206+ t = append(t, mcpTools...)
207+ if len(lspClients) > 0 {
208+ t = append(t, tools.NewDiagnosticsTool(lspClients))
209+ }
210+ }
211+ return t
212+ }
213+
200 if agentCfg.AllowedTools == nil {
214 if agentCfg.AllowedTools == nil {
201− return allTools
215+ return withCoderTools(allTools)
202 }
216 }
203
217
204 var filteredTools []tools.BaseTool
218 var filteredTools []tools.BaseTool
@@ -209,15 +223,9 @@ func NewAgent(
209 }
223 }
210
224
211 if agentCfg.ID == "coder" {
225 if agentCfg.ID == "coder" {
212− mcpToolsOnce.Do(func() {
213− mcpTools = doGetMCPTools(ctx, permissions, cfg)
214− })
215 filteredTools = append(filteredTools, mcpTools...)
226 filteredTools = append(filteredTools, mcpTools...)
216− if len(lspClients) > 0 {
217− filteredTools = append(filteredTools, tools.NewDiagnosticsTool(lspClients))
218− }
219 }
227 }
220− return filteredTools
228+ return withCoderTools(filteredTools)
221 }
229 }
222
230
223 return &agent{
231 return &agent{