"""Entry-filter gates (doc 02 §1, doc 04 Rule 6). Gates are reusable boolean masks that *filter* entries. They are **caller- side**: a gate is AND-ed into the signal *before* it reaches the engine — ``allow = directional_signal & ~block_condition``. The engine still just consumes a signal array. This means you can add or remove a filter without re-validating the engine. """ from .base import Gate, exhaustion_gate, regime_gate, time_of_day_gate __all__ = ["Gate", "time_of_day_gate", "regime_gate", "exhaustion_gate"]