Skip to main content

EVE CoreGuard SDK - AI Governance Enforcement in One API Call

Project description

EVE CoreGuard SDK

AI Governance Enforcement in One API Call.

CoreGuard intercepts AI-generated decisions before execution, evaluates them against policy, and returns an auditable enforcement verdict.

Install

pip install eve-coreguard

Quick Start

from eve_coreguard import CoreGuardClient

client = CoreGuardClient(
    api_key="eve_sk_...",
    base_url="https://api.eveaicore.com",  # or http://localhost:8000
)

# Evaluate a proposed lending decision against policy
result = client.evaluate(
    tenant_id="bank_001",
    proposed_action={"type": "loan_approval", "amount": 250000, "currency": "USD"},
    model_output={"decision": "approve", "confidence": 0.91},
    context={
        "credit_score": 580,
        "debt_to_income": 0.52,
        "employment_verified": False,
    },
    policy_set="lending_v1",
)

if result.blocked:
    print(f"BLOCKED: {result.decision.action}")
    print(f"Risk: {result.risk.score} ({result.risk.level})")
    for v in result.policy_violations:
        print(f"  - {v.policy_id}: {v.description}")
    if result.liability_prevented:
        print(f"Exposure prevented: {result.liability_prevented.estimated_exposure}")

Core Methods

Policy Discovery

# Enumerate the full catalog with metadata
for p in client.list_policies():
    print(p.policy_id, p.version, p.domain, p.jurisdiction, p.rule_count)

# Filter by regulatory domain
fair_lending = client.list_policies(domain="fair_lending")

# Inspect one pack (the policy_id is what you pass to evaluate)
info = client.get_policy("securities_trading_v1")
# info.policy_id, info.domain, info.jurisdiction, info.rule_count, info.notes

# Just the ids
ids = client.list_policy_sets()

Decision Enforcement

result = client.evaluate(
    tenant_id="org_001",
    proposed_action={"type": "loan_approval", "amount": 250000},
    model_output={"decision": "approve", "confidence": 0.91},
    context={"credit_score": 580, "debt_to_income": 0.52},
    policy_set="lending_v1",
)
# result.decision.status: ALLOWED | BLOCKED | MODIFIED
# result.risk.score: 0.0-1.0
# result.policy_violations: list of violated rules
# result.regulatory_impact: ECOA, TILA, etc.
# result.counterfactual: what would have passed
# result.liability_prevented: estimated exposure
# result.audit: cryptographic audit trail

AI Output Verification

vr = client.verify(
    ai_output="The capital of France is Paris.",
    confidence=0.9,
    domain="factual",
)
# vr.passed / vr.blocked
# vr.crd — Confidence-Reality Divergence score
# vr.veto.type — pass | soft_veto | hard_veto | charter
# vr.evidence — step-by-step audit chain

Audit & Compliance

# Retrieve cryptographic proof of a governance decision
proof = client.get_proof("proof_abc123")
# proof.content_hash, proof.signature, proof.chain_position

# Export decision history
export = client.export_audit(since="2026-01-01T00:00:00Z", limit=100)
for record in export.records:
    print(f"{record.decision_type}: {record.decision}")

# Verify hash chain integrity
status = client.verify_chain()

Configuration

Parameter Default Description
api_key required EVE API key (eve_sk_...)
base_url https://api.eveaicore.com API endpoint
timeout 30.0 Request timeout (seconds)
max_retries 3 Retry count for 5xx errors
raise_on_veto False Raise VetoError on governance blocks

Error Handling

from eve_coreguard import CoreGuardClient, AuthError, RateLimitError, VetoError

try:
    result = client.evaluate(...)
except AuthError:
    print("Invalid API key")
except RateLimitError as e:
    print(f"Rate limited — retry in {e.retry_after}s")
except VetoError as e:
    print(f"Governance veto: {e.veto_type}")

Response Metadata (subscription + rate limits)

Every call captures the response's billing and rate-limit headers. Read them after a call (or after catching an error):

result = client.evaluate(tenant_id="bank_001", ...)

client.subscription_state    # 'active' | 'past_due' | 'restricted' | ...
client.access_state          # 'full_access' | 'warning' | 'read_only' | ...
client.quota_warning         # 'payment_past_due' when degraded-but-allowed, else None
client.rate_limit_limit      # '330' | 'unlimited'
client.rate_limit_remaining  # calls left in the current 60s window (int | None)
client.retry_after           # seconds to wait after a 429 (int | None)

The decision endpoint is rate-limited per org by plan tier (Free 10/min, Pro 330/min, Team 1150/min, Enterprise/Sovereign unlimited). On exhaustion it returns 429 with Retry-After. See Response-Header Contract.

Live Demo (Local)

Run a full end-to-end enforcement decision in 3 steps:

Step 1: Start the server

cd /path/to/EVE
python -m uvicorn saas.app:app --port 8000

Step 2: Install the SDK

cd sdks/coreguard
pip install -e .

Step 3: Run the demo

python run_demo.py

Expected output:

Decision:   BLOCKED
Action:     deny_loan_approval
Risk:       0.6284 (HIGH)
Violations: 3
  - CREDIT_SCORE_MIN: Credit score 580 is below the minimum threshold of 620
  - DTI_LIMIT: Debt-to-income ratio 0.52 exceeds the maximum threshold of 0.45
  - EMPLOYMENT_REQUIRED: Employment verification is missing or unverified
Regulatory: 3 impact(s)
  - ECOA [CRITICAL]: Potential discriminatory lending decision based on credit criteria
  - ECOA [CRITICAL]: DTI threshold may disproportionately affect protected classes
  - TILA [CRITICAL]: Incomplete underwriting verification
Liability:  $125,000 - $625,000
Audit:      audit_8e6db687d87d

Requirements

  • Python 3.9+
  • Zero required dependencies (stdlib urllib only)
  • Optional: aiohttp for async support (pip install eve-coreguard[async])

License

Proprietary. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eve_coreguard-0.1.3.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eve_coreguard-0.1.3-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file eve_coreguard-0.1.3.tar.gz.

File metadata

  • Download URL: eve_coreguard-0.1.3.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for eve_coreguard-0.1.3.tar.gz
Algorithm Hash digest
SHA256 89baf7ed1a3895326e3fca5fabdd77c3ce7029df3df9df882c3f2ff7462af70a
MD5 c5e25eac35ad5c062fafc6eaaa9226e7
BLAKE2b-256 d2e1affe09b026e9b764a51c08c283dc49585fff8d68e6cf98620af3c6f58326

See more details on using hashes here.

File details

Details for the file eve_coreguard-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: eve_coreguard-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for eve_coreguard-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 548c9aacdf52f8cba6b7bfaf27911b8ad052eb909a62ea7bc880a9d1ee050fd7
MD5 fba4acd058eb46829a1c6b20a66050b4
BLAKE2b-256 0311509eb36ec1ab1adbc92aa74424d8466af7ca4618e31cdbbb3c9bc8f7c4b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page