From 9260b12b675fdf53789c37b94895c5a7c9da4bde Mon Sep 17 00:00:00 2001 From: jayhack Date: Wed, 19 Mar 2025 16:00:29 -0700 Subject: [PATCH 1/2] . --- .../examples/deep_code_research/run.py | 4 ++-- .../examples/langchain_agent/README.md | 2 +- codegen-examples/examples/langchain_agent/run.py | 14 ++++++-------- src/codegen/cli/commands/agent/main.py | 4 ++-- src/codegen/extensions/langchain/__init__.py | 6 +++--- src/codegen/extensions/langchain/agent.py | 8 ++++---- src/codegen/extensions/langchain/tools.py | 11 +++++------ 7 files changed, 23 insertions(+), 26 deletions(-) diff --git a/codegen-examples/examples/deep_code_research/run.py b/codegen-examples/examples/deep_code_research/run.py index 1172590bb..314d4f0cf 100644 --- a/codegen-examples/examples/deep_code_research/run.py +++ b/codegen-examples/examples/deep_code_research/run.py @@ -11,7 +11,7 @@ from codegen.extensions.langchain.tools import ( ListDirectoryTool, RevealSymbolTool, - SearchTool, + RipGrepTool, SemanticSearchTool, ViewFileTool, ) @@ -100,7 +100,7 @@ def research(repo_name: Optional[str] = None, query: Optional[str] = None, threa tools = [ ViewFileTool(codebase), ListDirectoryTool(codebase), - SearchTool(codebase), + RipGrepTool(codebase), SemanticSearchTool(codebase), RevealSymbolTool(codebase), ] diff --git a/codegen-examples/examples/langchain_agent/README.md b/codegen-examples/examples/langchain_agent/README.md index 113610302..32e450f90 100644 --- a/codegen-examples/examples/langchain_agent/README.md +++ b/codegen-examples/examples/langchain_agent/README.md @@ -57,7 +57,7 @@ The agent comes with several built-in tools for code operations: - `ViewFileTool`: View file contents and metadata - `ListDirectoryTool`: List directory contents -- `SearchTool`: Search code using regex +- `SearchTool`: Search code using ripgrep - `EditFileTool`: Edit file contents - `CreateFileTool`: Create new files - `DeleteFileTool`: Delete files diff --git a/codegen-examples/examples/langchain_agent/run.py b/codegen-examples/examples/langchain_agent/run.py index 5c6891889..30de9ed49 100644 --- a/codegen-examples/examples/langchain_agent/run.py +++ b/codegen-examples/examples/langchain_agent/run.py @@ -1,6 +1,9 @@ """Demo implementation of an agent with Codegen tools.""" from codegen import Codebase +from codegen.extensions.langchain.graph import create_react_agent +from codegen.extensions.langchain.llm import LLM +from codegen.extensions.langchain.prompts import REASONER_SYSTEM_MESSAGE from codegen.extensions.langchain.tools import ( CommitTool, CreateFileTool, @@ -10,18 +13,13 @@ MoveSymbolTool, RenameFileTool, RevealSymbolTool, - SearchTool, + RipGrepTool, SemanticEditTool, ViewFileTool, ) - -from codegen.extensions.langchain.llm import LLM -from codegen.extensions.langchain.prompts import REASONER_SYSTEM_MESSAGE - +from langchain_core.messages import SystemMessage from langgraph.checkpoint.memory import MemorySaver from langgraph.graph.graph import CompiledGraph -from codegen.extensions.langchain.graph import create_react_agent -from langchain_core.messages import SystemMessage def create_codebase_agent( @@ -57,7 +55,7 @@ def create_codebase_agent( tools = [ ViewFileTool(codebase), ListDirectoryTool(codebase), - SearchTool(codebase), + RipGrepTool(codebase), EditFileTool(codebase), CreateFileTool(codebase), DeleteFileTool(codebase), diff --git a/src/codegen/cli/commands/agent/main.py b/src/codegen/cli/commands/agent/main.py index 9862c1e5a..617c170aa 100644 --- a/src/codegen/cli/commands/agent/main.py +++ b/src/codegen/cli/commands/agent/main.py @@ -16,7 +16,7 @@ MoveSymbolTool, RenameFileTool, RevealSymbolTool, - SearchTool, + RipGrepTool, ViewFileTool, ) from codegen.sdk.core.codebase import Codebase @@ -62,7 +62,7 @@ def say(message: str): tools = [ ViewFileTool(codebase), ListDirectoryTool(codebase), - SearchTool(codebase), + RipGrepTool(codebase), CreateFileTool(codebase), DeleteFileTool(codebase), RenameFileTool(codebase), diff --git a/src/codegen/extensions/langchain/__init__.py b/src/codegen/extensions/langchain/__init__.py index 0df13e62b..301756a01 100644 --- a/src/codegen/extensions/langchain/__init__.py +++ b/src/codegen/extensions/langchain/__init__.py @@ -11,7 +11,7 @@ EditFileTool, ListDirectoryTool, RevealSymbolTool, - SearchTool, + RipGrepTool, SemanticEditTool, ViewFileTool, ) @@ -24,7 +24,7 @@ "EditFileTool", "ListDirectoryTool", "RevealSymbolTool", - "SearchTool", + "RipGrepTool", "SemanticEditTool", "ViewFileTool", # Helper functions @@ -44,7 +44,7 @@ def get_workspace_tools(codebase: Codebase) -> list[BaseTool]: return [ ViewFileTool(codebase), ListDirectoryTool(codebase), - SearchTool(codebase), + RipGrepTool(codebase), EditFileTool(codebase), CreateFileTool(codebase), DeleteFileTool(codebase), diff --git a/src/codegen/extensions/langchain/agent.py b/src/codegen/extensions/langchain/agent.py index 167aa3128..42493c1fc 100644 --- a/src/codegen/extensions/langchain/agent.py +++ b/src/codegen/extensions/langchain/agent.py @@ -21,8 +21,8 @@ RenameFileTool, ReplacementEditTool, RevealSymbolTool, + RipGrepTool, SearchFilesByNameTool, - SearchTool, # SemanticEditTool, ViewFileTool, ) @@ -67,7 +67,7 @@ def create_codebase_agent( tools = [ ViewFileTool(codebase), ListDirectoryTool(codebase), - SearchTool(codebase), + RipGrepTool(codebase), # EditFileTool(codebase), CreateFileTool(codebase), DeleteFileTool(codebase), @@ -131,7 +131,7 @@ def create_chat_agent( tools = [ ViewFileTool(codebase), ListDirectoryTool(codebase), - SearchTool(codebase), + RipGrepTool(codebase), CreateFileTool(codebase), DeleteFileTool(codebase), RenameFileTool(codebase), @@ -177,7 +177,7 @@ def create_codebase_inspector_agent( tools = [ ViewFileTool(codebase), ListDirectoryTool(codebase), - SearchTool(codebase), + RipGrepTool(codebase), DeleteFileTool(codebase), RevealSymbolTool(codebase), ] diff --git a/src/codegen/extensions/langchain/tools.py b/src/codegen/extensions/langchain/tools.py index 1ef9df85f..fe446f107 100644 --- a/src/codegen/extensions/langchain/tools.py +++ b/src/codegen/extensions/langchain/tools.py @@ -119,8 +119,7 @@ class SearchInput(BaseModel): query: str = Field( ..., - description="""The search query to find in the codebase. When ripgrep is available, this will be passed as a ripgrep pattern. For regex searches, set use_regex=True. - Ripgrep is the preferred method.""", + description="""ripgrep query (or regex pattern) to run. For regex searches, set use_regex=True. Ripgrep is the preferred method.""", ) file_extensions: list[str] | None = Field(default=None, description="Optional list of file extensions to search (e.g. ['.py', '.ts'])") page: int = Field(default=1, description="Page number to return (1-based, default: 1)") @@ -128,11 +127,11 @@ class SearchInput(BaseModel): use_regex: bool = Field(default=False, description="Whether to treat query as a regex pattern (default: False)") -class SearchTool(BaseTool): - """Tool for searching the codebase.""" +class RipGrepTool(BaseTool): + """Tool for searching the codebase via RipGrep.""" name: ClassVar[str] = "search" - description: ClassVar[str] = "Search the codebase using text search or regex pattern matching" + description: ClassVar[str] = "Search the codebase using `ripgrep` or regex pattern matching" args_schema: ClassVar[type[BaseModel]] = SearchInput codebase: Codebase = Field(exclude=True) @@ -853,7 +852,7 @@ def get_workspace_tools(codebase: Codebase) -> list["BaseTool"]: RevealSymbolTool(codebase), GlobalReplacementEditTool(codebase), RunBashCommandTool(), # Note: This tool doesn't need the codebase - SearchTool(codebase), + RipGrepTool(codebase), SearchFilesByNameTool(codebase), # SemanticEditTool(codebase), # SemanticSearchTool(codebase), From cbfb3842bebdf83a555f7f44dd14677a95040605 Mon Sep 17 00:00:00 2001 From: Jay Hack Date: Wed, 19 Mar 2025 16:14:51 -0700 Subject: [PATCH 2/2] Update README.md --- codegen-examples/examples/langchain_agent/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen-examples/examples/langchain_agent/README.md b/codegen-examples/examples/langchain_agent/README.md index 32e450f90..4744cdec3 100644 --- a/codegen-examples/examples/langchain_agent/README.md +++ b/codegen-examples/examples/langchain_agent/README.md @@ -57,7 +57,7 @@ The agent comes with several built-in tools for code operations: - `ViewFileTool`: View file contents and metadata - `ListDirectoryTool`: List directory contents -- `SearchTool`: Search code using ripgrep +- `RipGrepTool`: Search code using ripgrep - `EditFileTool`: Edit file contents - `CreateFileTool`: Create new files - `DeleteFileTool`: Delete files