"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-07 19:49:14.595156
"""

```python
from typing import List, Dict, Any


class ReasoningEngine:
    """A simple reasoning engine designed to solve limited reasoning problems.
    
    This class provides a basic framework for making decisions based on a set of predefined rules and conditions.
    """
    
    def __init__(self):
        self.rules: Dict[str, Any] = {}
        
    def add_rule(self, rule_name: str, condition_function: callable, action_function: callable) -> None:
        """Add a new rule to the reasoning engine.
        
        :param rule_name: Name of the rule
        :param condition_function: A function that returns True or False based on conditions
        :param action_function: A function to execute when the condition is met
        """
        self.rules[rule_name] = {'condition': condition_function, 'action': action_function}
    
    def run_rule(self, rule_name: str) -> Any:
        """Run a specific rule and perform its action if the conditions are met.
        
        :param rule_name: Name of the rule to be executed
        :return: The result of the action function or None if no action is taken
        """
        if rule_name in self.rules:
            condition_result = self.rules[rule_name]['condition']()
            if condition_result:
                return self.rules[rule_name]['action']()
        return None


# Example usage

def temperature_is_critical(temp: float) -> bool:
    """Check if the temperature is critical."""
    return temp > 100 or temp < -20

def turn_on_heater() -> str:
    """Action to turn on the heater."""
    return "Heater turned on"

reasoning_engine = ReasoningEngine()
reasoning_engine.add_rule('temperature_alert', condition_function=temperature_is_critical, action_function=turn_on_heater)

# Simulate a temperature check
temperature = 105

response = reasoning_engine.run_rule('temperature_alert')
print(response)  # Expected output: "Heater turned on"
```

This example demonstrates how to use the `ReasoningEngine` class to add rules and run them based on conditions. The `temperature_is_critical` function acts as a condition, and `turn_on_heater` is an action that gets executed if the temperature exceeds critical limits.