#!/usr/bin/env bash
set -euo pipefail
# Pre-Tool Execution Safety Guardrail
# Intercepts agent tool calls and enforces non-negotiable negative invariants from constitution.md
TOOL_NAME="${1:-}"
TOOL_ARGS="${2:-}"
# 1. Block destructive file deletion commands
if echo "${TOOL_ARGS}" | grep -qiE "rm[[:space:]]+-(r|f|rf|fr)[[:space:]]+(\/|[[:space:]]|\.)|rmdir"; then
echo "ERROR [GUARDRAIL BLOCK]: Destructive recursive deletion command detected in arguments." >&2
exit 1
fi
# 2. Block destructive database mutations without migrations
if echo "${TOOL_ARGS}" | grep -qiE "DROP[[:space:]]+(TABLE|DATABASE|SCHEMA)|TRUNCATE[[:space:]]+TABLE|DELETE[[:space:]]+FROM[[:space:]]+[a-zA-Z0-9_]+[[:space:]]*(;|$)"; then
echo "ERROR [GUARDRAIL BLOCK]: Unbounded destructive database mutation blocked by safety policy." >&2
exit 1
fi
# 3. Block hardcoded secret insertions
if echo "${TOOL_ARGS}" | grep -qiE "(AWS_SECRET_ACCESS_KEY|PRIVATE_KEY|DATABASE_PASSWORD)[[:space:]]*=[[:space:]]*['\"][a-zA-Z0-9_\-\+]{8,}['\"]"; then
echo "ERROR [GUARDRAIL BLOCK]: Plain-text credentials detected in tool invocation." >&2
exit 1
fi
exit 0