diff --git a/packages/memory-host-sdk/src/host/fs-utils.ts b/packages/memory-host-sdk/src/host/fs-utils.ts index 0842b3ed4e5..f883d864d7e 100644 --- a/packages/memory-host-sdk/src/host/fs-utils.ts +++ b/packages/memory-host-sdk/src/host/fs-utils.ts @@ -18,12 +18,13 @@ if (!hasPythonModeOverride) { export function isFileMissingError( err: unknown, -): err is NodeJS.ErrnoException & { code: "ENOENT" } { +): err is NodeJS.ErrnoException & { code: "ENOENT" | "ENOTDIR" | "not-found" } { return Boolean( err && typeof err === "object" && "code" in err && ((err as Partial).code === "ENOENT" || + (err as Partial).code === "ENOTDIR" || (err as { code?: unknown }).code === "not-found"), ); } diff --git a/packages/memory-host-sdk/src/host/read-file.test.ts b/packages/memory-host-sdk/src/host/read-file.test.ts index 802a757e632..abb4c594141 100644 --- a/packages/memory-host-sdk/src/host/read-file.test.ts +++ b/packages/memory-host-sdk/src/host/read-file.test.ts @@ -37,6 +37,19 @@ describe("readMemoryFile", () => { text: "", path: path.relative(workspaceDir, missingPath).replace(/\\/g, "/"), }); + + const nonDirectoryParentPath = path.join(extraDir, "note.md", "child.md"); + await fs.writeFile(path.join(extraDir, "note.md"), "note", "utf-8"); + await expect( + readMemoryFile({ + workspaceDir, + extraPaths: [extraDir], + relPath: nonDirectoryParentPath, + }), + ).resolves.toEqual({ + text: "", + path: path.relative(workspaceDir, nonDirectoryParentPath).replace(/\\/g, "/"), + }); } finally { await fs.rm(tmpRoot, { recursive: true, force: true }); }