@@ -187,6 +187,10 @@ func NewAgent(
188 go func() {
188 go func() {
189 slog.Info("Initializing agent tools", "agent", agentCfg.ID)
189 slog.Info("Initializing agent tools", "agent", agentCfg.ID)
191+ slog.Info("Initialized agent tools", "agent", agentCfg.ID)
192+ agent.toolsDone.Store(true)
191 cwd := cfg.WorkingDir()
195 cwd := cfg.WorkingDir()
192 allTools := []tools.BaseTool{
196 allTools := []tools.BaseTool{
@@ -203,29 +207,28 @@ func NewAgent(
205 mcpTools := GetMCPTools(ctx, permissions, cfg)
209 mcpTools := GetMCPTools(ctx, permissions, cfg)
210+ allTools = append(allTools, mcpTools...)
206 if len(lspClients) > 0 {
212 if len(lspClients) > 0 {
207− mcpTools = append(mcpTools, tools.NewDiagnosticsTool(lspClients))
213+ allTools = append(allTools, tools.NewDiagnosticsTool(lspClients))
209− allTools = append(allTools, mcpTools...)
211 if agentTool != nil {
216 if agentTool != nil {
212 allTools = append(allTools, agentTool)
217 allTools = append(allTools, agentTool)
215− agentTools := []tools.BaseTool{}
216 if agentCfg.AllowedTools == nil {
220 if agentCfg.AllowedTools == nil {
217− agentTools = allTools
221+ agent.tools = allTools
219− for _, tool := range allTools {
220− if slices.Contains(agentCfg.AllowedTools, tool.Name()) {
221− agentTools = append(agentTools, tool)
226− slog.Info("Initialized agent tools", "agent", agentCfg.ID)
225+ var filteredTools []tools.BaseTool
226+ for _, tool := range allTools {
227+ if slices.Contains(agentCfg.AllowedTools, tool.Name()) {
228+ filteredTools = append(filteredTools, tool)
227− agent.tools = agentTools
231+ agent.tools = filteredTools
228− agent.toolsDone.Store(true)
231 return agent, nil
234 return agent, nil