Treat grep no matches as nonfatal
This commit is contained in:
@@ -24,10 +24,12 @@ class Tool(BaseTool):
|
||||
stdin_data=str(stdin_secret) if stdin_secret is not None else None,
|
||||
)
|
||||
output = completed.stdout if completed.returncode == 0 else completed.stderr or completed.stdout
|
||||
grep_no_matches = "grep" in command and completed.returncode == 1 and not completed.stderr
|
||||
ok = completed.returncode == 0 or grep_no_matches
|
||||
return ToolResult(
|
||||
tool=self.name,
|
||||
ok=completed.returncode == 0,
|
||||
ok=ok,
|
||||
output=output,
|
||||
error=None if completed.returncode == 0 else f"Command failed with exit code {completed.returncode}",
|
||||
metadata={"exit_code": completed.returncode},
|
||||
)
|
||||
error=None if ok else f"Command failed with exit code {completed.returncode}",
|
||||
metadata={"exit_code": completed.returncode, "no_matches": grep_no_matches},
|
||||
)
|
||||
|
||||
@@ -29,6 +29,8 @@ class ShellExecTool(BaseTool):
|
||||
)
|
||||
output = completed.stdout if completed.returncode == 0 else completed.stderr or completed.stdout
|
||||
error_output = completed.stderr or completed.stdout
|
||||
grep_no_matches = "grep" in command and completed.returncode == 1 and not completed.stderr
|
||||
ok = completed.returncode == 0 or grep_no_matches
|
||||
|
||||
is_sudo_error = (
|
||||
completed.returncode != 0 and
|
||||
@@ -40,8 +42,8 @@ class ShellExecTool(BaseTool):
|
||||
|
||||
return ToolResult(
|
||||
tool=self.name,
|
||||
ok=completed.returncode == 0,
|
||||
ok=ok,
|
||||
output=output,
|
||||
error=None if completed.returncode == 0 else f"Command failed with exit code {completed.returncode}",
|
||||
metadata={"exit_code": completed.returncode, "needs_sudo": is_sudo_error},
|
||||
error=None if ok else f"Command failed with exit code {completed.returncode}",
|
||||
metadata={"exit_code": completed.returncode, "needs_sudo": is_sudo_error, "no_matches": grep_no_matches},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user