From 6fc68ff8d4536f35f0ed76af535d5e1e7ac37675 Mon Sep 17 00:00:00 2001 From: Gal Zahavi <38544478+galz10@users.noreply.github.com> Date: Mon, 18 Aug 2025 16:39:05 -0700 Subject: fix(tools): Handle special characters in file paths for glob and read_many_files (#6507) Co-authored-by: Jacob Richman --- packages/core/src/tools/glob.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'packages/core/src/tools/glob.ts') diff --git a/packages/core/src/tools/glob.ts b/packages/core/src/tools/glob.ts index 65454232..ae82de76 100644 --- a/packages/core/src/tools/glob.ts +++ b/packages/core/src/tools/glob.ts @@ -6,7 +6,7 @@ import fs from 'fs'; import path from 'path'; -import { glob } from 'glob'; +import { glob, escape } from 'glob'; import { SchemaValidator } from '../utils/schemaValidator.js'; import { BaseDeclarativeTool, @@ -137,7 +137,13 @@ class GlobToolInvocation extends BaseToolInvocation< let allEntries: GlobPath[] = []; for (const searchDir of searchDirectories) { - const entries = (await glob(this.params.pattern, { + let pattern = this.params.pattern; + const fullPath = path.join(searchDir, pattern); + if (fs.existsSync(fullPath)) { + pattern = escape(pattern); + } + + const entries = (await glob(pattern, { cwd: searchDir, withFileTypes: true, nodir: true, -- cgit v1.2.3