@reshimu/aryeh · v0.1.0 · MIT · ● Live

ARYEH — Scope & Boundary Enforcement

ARYEH is the first of the four Chayyot — the face of the lion, scope enforcer. It classifies whether an agent action falls within a registered covenant scope before execution fires. If the action is out of scope, ARYEH blocks it. If it is at the boundary, ARYEH flags it for review.

What ARYEH does

ARYEH sits at the scope boundary of an agent session. Given a proposed action and a covenant — a structured declaration of what the session is permitted and forbidden to do — it returns a deterministic classification of whether the action is in scope, at the scope boundary, or outside it entirely.

Covenants can express allowed and denied tools, actions, domains, and resources. ARYEH evaluates them against a structural action description — plain string verb or a structured { tool, verb } pair — and returns a four-level verdict with no LLM calls, no network requests, and no side effects.

Install

TypeScript / Node
npm install @reshimu/aryeh
Python
pip install reshimu-aryeh

Both packages have zero runtime dependencies. No model downloads, no service calls, no telemetry. Sub-1ms on all classification paths.

Quick start

Pass ARYEH the action and the covenant scope. It returns the level synchronously.

// TypeScript
import { classify } from '@reshimu/aryeh'

const result = classify({
  action: 'delete records',
  tool:   'database',
  scope: {
    allowedActions: ['read', 'write'],
    deniedTools:    ['database', 'filesystem']
  }
})

// result.level    === 'OUT_OF_SCOPE'
// result.decision === 'BLOCK'
# Python
from reshimu_aryeh import classify

result = classify(
    action="delete records",
    tool="database",
    scope={
        "allowedActions": ["read", "write"],
        "deniedTools":    ["database", "filesystem"]
    }
)

# result.level    == 'OUT_OF_SCOPE'
# result.decision == 'BLOCK'

No scope registered? Pass scope: undefined or omit it — ARYEH returns INDETERMINATE and passes through. The classifier does not block when it has nothing to classify against.

Classification levels

Four levels. OUT_OF_SCOPE is a hard block. BOUNDARY is a soft flag — the action is technically within scope but warrants human review. INDETERMINATE means no covenant was registered, not that the action is safe.

IN_SCOPE Action matches the registered covenant. Pass through. Pass through
BOUNDARY Action is at the edge of the registered covenant — permitted but warrants a review flag. Flag / review
OUT_OF_SCOPE Action falls outside the registered covenant. Hard block. Block
INDETERMINATE No covenant registered, or scope could not be resolved. Pass through

What ARYEH enforces — and what it doesn't

ARYEH enforces structural scope: the list of things a session declared it was allowed and not allowed to do. It does not infer intent, evaluate context, or make risk judgments. That is NESHER's job. ARYEH is a covenant contract, not a risk model.

Enforces:

Does not enforce:

Full reference

The complete reference — every covenant field, structured action format, strictMode semantics, integration examples for LangGraph and Claude Code, and the full test suite — lives in the ARYEH README on GitHub.

Read the full README on GitHub. File issues there too — we read them.
Open the README →

ARYEH is the first of the four Chayyot — the Bearers of the Throne. For the theological and architectural depth behind why scope enforcement is the first classifier, not the last, read The Chayyot as Validators.