diff --git a/agent/tools/ls/ls.py b/agent/tools/ls/ls.py index 0bd4f01..35e401b 100644 --- a/agent/tools/ls/ls.py +++ b/agent/tools/ls/ls.py @@ -51,6 +51,13 @@ class Ls(BaseTool): absolute_path = self._resolve_path(path) if not os.path.exists(absolute_path): + # Provide helpful hint if using relative path + if not os.path.isabs(path) and not path.startswith('~'): + return ToolResult.fail( + f"Error: Path not found: {path}\n" + f"Resolved to: {absolute_path}\n" + f"Hint: If accessing files outside workspace ({self.cwd}), use absolute path like ~/{path} or /full/path/{path}" + ) return ToolResult.fail(f"Error: Path not found: {path}") if not os.path.isdir(absolute_path): diff --git a/agent/tools/read/read.py b/agent/tools/read/read.py index 8fad254..9c1d6dc 100644 --- a/agent/tools/read/read.py +++ b/agent/tools/read/read.py @@ -63,6 +63,13 @@ class Read(BaseTool): # Check if file exists if not os.path.exists(absolute_path): + # Provide helpful hint if using relative path + if not os.path.isabs(path) and not path.startswith('~'): + return ToolResult.fail( + f"Error: File not found: {path}\n" + f"Resolved to: {absolute_path}\n" + f"Hint: If accessing files outside workspace ({self.cwd}), use absolute path like ~/{path}" + ) return ToolResult.fail(f"Error: File not found: {path}") # Check if readable