"""
Calculator tool
"""
def calculate(expression: str):
"""Safely evaluate mathematical expressions."""
try:
allowed_chars = set('0123456789+-*/.() ')
if not all(c in allowed_chars for c in expression):
return {"error": "Invalid characters in expression"}
result = eval(expression, {"__builtins__": {}}, {})
return {"expression": expression, "result": result}
except Exception as e:
return {"error": f"Calculation error: {str(e)}"}
TOOL_INFO = {
"name": "calculate",
"description": "Calculator function for simple maths",
"function": calculate,
"parameters": {
"expression": {
"type": "str",
"required": True,
"description": "Simple math expressions eg: 1 + 1"
}
}
}