From 3cf9a060cd9a64b1323ab1115d4e930b9644ffc2 Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 21:47:39 +0000 Subject: [PATCH] feat: add search_files handler with excludePatterns support --- src/filesystem/index.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/filesystem/index.ts b/src/filesystem/index.ts index c674fae0..32c91543 100644 --- a/src/filesystem/index.ts +++ b/src/filesystem/index.ts @@ -163,9 +163,8 @@ const server = new Server( }, { capabilities: { - tools: [ - { - name: "search_files", + tools: { + search_files: { description: "Recursively search for files/directories with optional exclude patterns", inputSchema: zodToJsonSchema(SearchFilesArgsSchema), handler: async (args: z.infer) => { @@ -173,7 +172,7 @@ const server = new Server( return searchFiles(validatedPath, args.pattern, args.excludePatterns); }, }, - ], + }, }, }, ); @@ -546,7 +545,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => { throw new Error(`Invalid arguments for search_files: ${parsed.error}`); } const validPath = await validatePath(parsed.data.path); - const results = await searchFiles(validPath, parsed.data.pattern); + const results = await searchFiles(validPath, parsed.data.pattern, parsed.data.excludePatterns); return { content: [{ type: "text", text: results.length > 0 ? results.join("\n") : "No matches found" }], }; @@ -568,9 +567,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => { case "list_allowed_directories": { return { - content: [{ - type: "text", - text: `Allowed directories:\n${allowedDirectories.join('\n')}` + content: [{ + type: "text", + text: `Allowed directories:\n${allowedDirectories.join('\n')}` }], }; }