diff options
Diffstat (limited to 'internal/llm/agent')
| -rw-r--r-- | internal/llm/agent/tools.go | 64 |
1 files changed, 43 insertions, 21 deletions
diff --git a/internal/llm/agent/tools.go b/internal/llm/agent/tools.go index dba437bd2..157b5bf59 100644 --- a/internal/llm/agent/tools.go +++ b/internal/llm/agent/tools.go @@ -21,30 +21,41 @@ func PrimaryAgentTools( ctx := context.Background() mcpTools := GetMcpTools(ctx, permissions) - return append( - []tools.BaseTool{ - tools.NewBashTool(permissions), - tools.NewEditTool(lspClients, permissions, history), - tools.NewFetchTool(permissions), - tools.NewGlobTool(), - tools.NewGrepTool(), - tools.NewLsTool(), - tools.NewViewTool(lspClients), - tools.NewPatchTool(lspClients, permissions, history), - tools.NewWriteTool(lspClients, permissions, history), - tools.NewDiagnosticsTool(lspClients), - tools.NewDefinitionTool(lspClients), - tools.NewReferencesTool(lspClients), - tools.NewDocSymbolsTool(lspClients), - tools.NewWorkspaceSymbolsTool(lspClients), - tools.NewCodeActionTool(lspClients), - NewAgentTool(sessions, messages, lspClients), - }, mcpTools..., - ) + // Create the list of tools + toolsList := []tools.BaseTool{ + tools.NewBashTool(permissions), + tools.NewEditTool(lspClients, permissions, history), + tools.NewFetchTool(permissions), + tools.NewGlobTool(), + tools.NewGrepTool(), + tools.NewLsTool(), + tools.NewViewTool(lspClients), + tools.NewPatchTool(lspClients, permissions, history), + tools.NewWriteTool(lspClients, permissions, history), + tools.NewDiagnosticsTool(lspClients), + tools.NewDefinitionTool(lspClients), + tools.NewReferencesTool(lspClients), + tools.NewDocSymbolsTool(lspClients), + tools.NewWorkspaceSymbolsTool(lspClients), + tools.NewCodeActionTool(lspClients), + NewAgentTool(sessions, messages, lspClients), + } + + // Create a map of tools for the batch tool + toolsMap := make(map[string]tools.BaseTool) + for _, tool := range toolsList { + toolsMap[tool.Info().Name] = tool + } + + // Add the batch tool with access to all other tools + toolsList = append(toolsList, tools.NewBatchTool(toolsMap)) + + return append(toolsList, mcpTools...) } func TaskAgentTools(lspClients map[string]*lsp.Client) []tools.BaseTool { - return []tools.BaseTool{ + // Create the list of tools + toolsList := []tools.BaseTool{ tools.NewGlobTool(), tools.NewGrepTool(), tools.NewLsTool(), @@ -54,4 +65,15 @@ func TaskAgentTools(lspClients map[string]*lsp.Client) []tools.BaseTool { tools.NewDocSymbolsTool(lspClients), tools.NewWorkspaceSymbolsTool(lspClients), } + + // Create a map of tools for the batch tool + toolsMap := make(map[string]tools.BaseTool) + for _, tool := range toolsList { + toolsMap[tool.Info().Name] = tool + } + + // Add the batch tool with access to all other tools + toolsList = append(toolsList, tools.NewBatchTool(toolsMap)) + + return toolsList } |
