Observed since 20 Oct, 22:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Reputation-gated authority resolver for AgentMesh. Composes trust scoring with delegation chains via monotonic narrowing.
Reputation-gated authority resolver for AgentMesh. Implements the AuthorityResolver protocol from microsoft/agent-governance-toolkit#275.
Composes AgentMesh's TrustManager scoring (0-1000) with delegation chains via component-wise monotonic narrowing: effective authority is the intersection of delegated capabilities and trust-tier permissions.
Design proposal: PR #274 (merged into main)
Agent requests action
-> delegation.verify() # existing AgentMesh
-> trust_manager.get_score() # existing AgentMesh
-> resolve_effective_authority() # THIS PACKAGE
capability scope = delegation ∩ tier_allowed
spend limit = min(delegation, tier_cap)
-> allow / allow_narrowed / deny / audit
pip install agentmesh-reputation-gate
from agentmesh_reputation_gate import (
AuthorityResolver, DelegationInfo, TrustInfo, ActionRequest
)
resolver = AuthorityResolver()
decision = resolver.resolve(
delegation=DelegationInfo(
delegation_id="d1",
delegator_id="alice",
agent_id="bot-1",
capabilities=["read:data", "write:reports", "financial:low"],
spend_limit=500.0,
),
trust=TrustInfo(agent_id="bot-1", score=450), # Standard tier
action=ActionRequest(agent_id="bot-1", action="read:data"),
)
print(decision.decision) # Decision.ALLOW
print(decision.effective_scope) # ('read:data', 'write:reports') -- financial:low excluded
print(decision.effective_spend_limit) # 100.0 -- tier caps at $100
print(decision.trust_tier) # "standard"
For use with PolicyEngine.set_authority_resolver():
from agentmesh_reputation_gate import AuthorityResolver, AuthorityRequest
resolver = AuthorityResolver()
# Single-arg form matching AgentMesh protocol
request = AuthorityRequest(delegation=d, trust=t, action=a)
decision = resolver.resolve(request)
Both calling conventions produce identical results.
Every resolution enforces these properties:
| Decision | Meaning |
|---|---|
allow | Action permitted as requested |
allow_narrowed | Action permitted but parameters were capped |
deny | Action blocked by trust-tier or delegation limits |
audit | Action permitted but logged for review |
| Tier | Score | Capabilities | Spend cap |
|---|---|---|---|
| Untrusted | 0-199 | read:own | $0 |
| Limited | 200-399 | read:*, write:own | $10 |
| Standard | 400-599 | read:*, write:shared, execute:bounded | $100 |
| Trusted | 600-799 | Above + financial:low, admin:observability | $1,000 |
| Privileged | 800-1000 | Above + admin:policy, admin:identity, financial:high | Delegation limit |
Custom tiers: pass your own list[TierDefinition] to AuthorityResolver(tiers=...).
read:data -- exact match onlyread:* -- single-level wildcard (covers read:data, not read:data:sensitive)read:** -- recursive wildcard (covers any depth)admin:* does NOT imply read:* (no implicit inheritance)PYTHONPATH=src python3 -m pytest tests/ -v
62 tests covering all 6 invariants, capability matching, tier resolution, wildcard intersection, agent identity checks, lineage bound enforcement, adversarial inputs, and AgentMesh protocol compatibility.
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.0 | 16 Mar 2026 | 0 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 22:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:6d00915af03208c69ae89bdcc94bc324fed5a4c5095186a894cbd5c693c826ab