class ToolError(Exception): """Raised when a tool encounters an error.""" def __init__(self, message): self.message = message super().__init__(message) def __str__(self): return self.message class EditorToolParameterMissingError(ToolError): """Raised when a required parameter is missing for a tool command.""" def __init__(self, command, parameter): self.command = command self.parameter = parameter self.message = f"Parameter `{parameter}` is required for command: {command}." class EditorToolParameterInvalidError(ToolError): """Raised when a parameter is invalid for a tool command.""" def __init__(self, parameter, value, hint=None): self.parameter = parameter self.value = value self.message = ( f"Invalid `{parameter}` parameter: {value}. {hint}" if hint else f"Invalid `{parameter}` parameter: {value}." ) class FileValidationError(ToolError): """Raised when a file fails validation checks (size, type, etc.).""" def __init__(self, path: str, reason: str): self.path = path self.reason = reason self.message = f"File validation failed for {path}: {reason}" super().__init__(self.message)