From c571aefa310c0a4643d7619ec0a32434ce31df32 Mon Sep 17 00:00:00 2001 From: kujtimiihoxha Date: Fri, 12 Sep 2025 21:30:46 +0200 Subject: [PATCH] chore: refactor --- internal/llm/agent/agent.go | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/internal/llm/agent/agent.go b/internal/llm/agent/agent.go index f3c4e9b1edbe451184c655031ba92e17494b2655..b86f4dc94436041b76561c97dd52b04610c19bff 100644 --- a/internal/llm/agent/agent.go +++ b/internal/llm/agent/agent.go @@ -197,8 +197,22 @@ func NewAgent( tools.NewWriteTool(lspClients, permissions, history, cwd), } + mcpToolsOnce.Do(func() { + mcpTools = doGetMCPTools(ctx, permissions, cfg) + }) + + withCoderTools := func(t []tools.BaseTool) []tools.BaseTool { + if agentCfg.ID == "coder" { + t = append(t, mcpTools...) + if len(lspClients) > 0 { + t = append(t, tools.NewDiagnosticsTool(lspClients)) + } + } + return t + } + if agentCfg.AllowedTools == nil { - return allTools + return withCoderTools(allTools) } var filteredTools []tools.BaseTool @@ -209,15 +223,9 @@ func NewAgent( } if agentCfg.ID == "coder" { - mcpToolsOnce.Do(func() { - mcpTools = doGetMCPTools(ctx, permissions, cfg) - }) filteredTools = append(filteredTools, mcpTools...) - if len(lspClients) > 0 { - filteredTools = append(filteredTools, tools.NewDiagnosticsTool(lspClients)) - } } - return filteredTools + return withCoderTools(filteredTools) } return &agent{