from praisonai.recipe.policy import (
PolicyPack,
get_default_policy,
load_policy,
check_tool_policy,
PolicyDeniedError,
)
# Get default policy
policy = get_default_policy("dev")
# Load from file
policy = PolicyPack.load("my-policy.yaml")
# Create custom policy
policy = PolicyPack(
name="my-policy",
config={
"tools": {
"allow": ["web.search"],
"deny": ["shell.exec"],
},
"pii": {"mode": "redact"},
},
)
# Check tool permission
try:
policy.check_tool("web.search", mode="prod")
print("Tool allowed")
except PolicyDeniedError as e:
print(f"Tool denied: {e}")
# Save policy
policy.save("output-policy.yaml")
# Merge policies
base = get_default_policy("dev")
override = PolicyPack.load("custom.yaml")
merged = base.merge(override)
# Get data policy
data_policy = policy.get_data_policy()