class DecisionType(Enum): STRATEGY = "strategy" # How to approach the task TOOL_CHOICE = "tool" # Which tool to use OUTPUT_FORMAT = "format" # How to format output DELEGATION = "delegate" # Who to hand off to CUSTOM = "custom" # Your own types
# Auto-lock: Lock immediately after first decisionenforcer = DecisionEnforcer(auto_lock=True)# Manual lock: You control when to lockenforcer = DecisionEnforcer(auto_lock=False)enforcer.record_decision("strategy", "planner", DecisionType.STRATEGY, "parallel")# ... agent can still change ...enforcer.lock("strategy") # Now locked# Timed lock: Lock after N secondsenforcer = DecisionEnforcer(lock_after_seconds=30)
# Is it locked?if enforcer.is_locked("strategy"): print("Strategy is locked")# What was decided?decision = enforcer.get_decision("strategy")print(f"Strategy: {decision.value}") # "parallel"# Who decided?print(f"Decided by: {decision.agent_id}") # "planner"