"""Basic policy guard for Bridge prompts.""" from __future__ import annotations MAX_PROMPT_LENGTH = 4000 _BLOCKED_PHRASES = frozenset({ "", "TODO", "FIXME", "your prompt here", }) def check(prompt: str) -> tuple[bool, str]: """Check a prompt against policy rules. Returns: (True, "") if prompt passes (False, reason) if prompt is blocked """ if not prompt or not prompt.strip(): return False, "prompt is empty" if len(prompt) > MAX_PROMPT_LENGTH: return False, f"prompt exceeds {MAX_PROMPT_LENGTH} chars (got {len(prompt)})" lower = prompt.lower() for phrase in _BLOCKED_PHRASES: if phrase.lower() in lower: return False, f"prompt contains blocked phrase: '{phrase}'" return True, ""