From 21516531334f57d05ca7923206cb2411a0ef6674 Mon Sep 17 00:00:00 2001 From: PROTHAM <155388736+ProthamD@users.noreply.github.com> Date: Fri, 15 May 2026 02:51:57 +0530 Subject: [PATCH] fix(core): resolve EISDIR errors during file processing (#21527) (#27041) --- packages/core/src/tools/read-many-files.ts | 4 ++-- packages/core/src/utils/fileUtils.ts | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/core/src/tools/read-many-files.ts b/packages/core/src/tools/read-many-files.ts index f97bb77733..bb570e568e 100644 --- a/packages/core/src/tools/read-many-files.ts +++ b/packages/core/src/tools/read-many-files.ts @@ -199,8 +199,8 @@ ${finalExclusionPatternsForDescription const fullPath = path.join(dir, normalizedP); let exists = false; try { - await fsPromises.access(fullPath); - exists = true; + const st = await fsPromises.stat(fullPath); + exists = st.isFile(); } catch { exists = false; } diff --git a/packages/core/src/utils/fileUtils.ts b/packages/core/src/utils/fileUtils.ts index 52191171aa..ad64484783 100644 --- a/packages/core/src/utils/fileUtils.ts +++ b/packages/core/src/utils/fileUtils.ts @@ -15,6 +15,7 @@ import { ToolErrorType } from '../tools/tool-error.js'; import { BINARY_EXTENSIONS } from './ignorePatterns.js'; import { createRequire as createModuleRequire } from 'node:module'; import { debugLogger } from './debugLogger.js'; + import { DEFAULT_MAX_LINES_TEXT_FILE, MAX_LINE_LENGTH_TEXT_FILE, @@ -350,7 +351,9 @@ export async function isEmpty(filePath: string): Promise { */ export async function isBinaryFile(filePath: string): Promise { try { - return await isBinaryFileCheck(filePath); + const stats = await fsPromises.stat(filePath); + if (!stats.isFile()) return false; + return await isBinaryFileCheck(filePath, stats.size); } catch (error) { debugLogger.warn( `Failed to check if file is binary: ${filePath}`,