Skip to main content

Correctover 6-Dimensional Verification adapter for Ibex Agent Verification (ActionEnvelopeV1)

Project description

correctover-ibex

6-Dimensional Verification for Ibex Agent Verification

Built against ActionEnvelopeV1 at ibex-agent-verification@e2a2cb2

Bridges Correctover's deterministic verification engine (87 rules across 6 dimensions) with Ibex Agent Verification's ActionEnvelopeV1 tamper-evident framework.

30-Second Quick Start

from correctover_ibex import CorrectoverIbexVerifier
from correctover_crewai import VerificationRequest

verifier = CorrectoverIbexVerifier()
result = verifier.verify(request)
print(result.ibex_decision)  # ALLOW / BLOCK / ESCALATE
print(result.action_id)      # sha256:... (tamper-evident, recomputable)

Architecture

Ibex (pre-execution authorization)
    ↓ ActionEnvelopeV1 freezes action identity
Correctover (post-execution verification)
    ↓ 87 rules × 6 dimensions verified
GuardrailDecision binds verdict to action
    ↓ canonical IDs via JCS + SHA-256
Tamper-evident verification chain

Why This Matters

Ibex Agent Verification (by Aleksey Safonov) solves pre-execution authorization: "Should this agent be allowed to perform this action with these arguments?" It uses ActionEnvelopeV1 to create tamper-evident action identities via JCS canonical JSON and SHA-256.

Correctover solves post-execution verification: "Did the agent's output pass structural, schema, identity, integrity, latency, and cost checks?" It runs 87 deterministic rules across 6 dimensions.

correctover-ibex bridges both systems:

  • Each Correctover verification is bound to an exact ActionEnvelopeV1
  • The verdict is expressed as an Ibex GuardrailDecision
  • All identifiers are recomputable — verify the verifier

Install

pip install correctover-ibex

Quick Start

from correctover_ibex import CorrectoverIbexVerifier, CorrectoverIbexConfig
from correctover_crewai import VerificationRequest

# Configure
config = CorrectoverIbexConfig(
    caller_identity="agent:qa",
    resource_scope="workspace:production",
    min_confidence=0.7,
)
verifier = CorrectoverIbexVerifier(config)

# Verify an action
request = VerificationRequest(
    tool_name="search_web",
    tool_input={"query": "AI safety standards"},
    tool_output="AI safety is a field of computer science...",
    agent_role="Researcher",
    task_description="Search for AI safety info",
    provider_name="openai",
    model_name="gpt-4",
)

result = verifier.verify(request)

# Tamper-evident identifiers
print(result.action_id)      # sha256:325d87f3... (recomputable)
print(result.decision_id)    # sha256:a1b2c3d4... (recomputable)

# Ibex guardrail decision
print(result.ibex_decision)  # ALLOW | BLOCK | ESCALATE

# Full 6-dim breakdown
print(result.verdict.confidence)          # 0.85
print(result.verdict.dimensions)          # {structure, schema, latency, cost, identity, integrity}
print(result.verdict.proof_hash)          # Recomputable proof of verification

Transition Phase (Multi-Step Workflows)

from correctover_ibex import build_transition_record, evaluate_transition_record

# Verify a sequence of actions
results = [verifier.verify(req) for req in requests]

# Build transition record
record = build_transition_record(
    transition_id="workflow-001",
    results=results,
    intent_statement="Complete multi-step research task",
    origin="correctover",
    destination="verified",
)

# Evaluate transition
evaluation = evaluate_transition_record(record)
print(evaluation["status"])  # VERIFIED | IN_PROGRESS | RECALIBRATE
print(evaluation["phase"])   # CALIBRATE → EXPAND → COMMIT → EXECUTE → VERIFY → REFLECT

The 6 Dimensions

Dimension What It Checks Example
Structure Output format validity JSON parses correctly
Schema Field presence & types Required fields exist
Identity Semantic relevance to input Response addresses the question
Integrity Forbidden pattern absence No Tracebacks or errors
Latency Response time budget Under 30s threshold
Cost Token usage budget Under 10k token limit

CANON

Metric Value
P50 Verification Latency 22μs
Verification Rules 87
Dimensions 6
SDK Size 586KB
Supported Providers 7

Standards & Conformance

Conformance Test Results

47 passed in 1.69s

Key results:
✅ test_conformance_vector_canonical_id — ibex official hash match
   Preimage → sha256:325d87f3a89db334374b25f839c6dfcf528fac357b7c554b01a1486a570522c7
✅ test_expired_deadline_blocks — expired deadline → BLOCK (short-circuit)
✅ test_future_deadline_passes_through — future deadline → normal verification
✅ test_custom_args_digest — caller-supplied digest used
✅ test_d1_depth_propagation — D1 depth correctly reflected
✅ test_d2_depth_propagation — D2 depth correctly reflected
✅ test_modified_envelope_different_id — tamper-evidence verified
✅ test_modified_decision_different_id — tamper-evidence verified

License

Apache-2.0


Correctover — Failover ≠ Correctover™

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

correctover_ibex-0.1.1.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

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

correctover_ibex-0.1.1-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file correctover_ibex-0.1.1.tar.gz.

File metadata

  • Download URL: correctover_ibex-0.1.1.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for correctover_ibex-0.1.1.tar.gz
Algorithm Hash digest
SHA256 73b40394cf2d13f833687635216d16d2b2ded315ef9970f33b0d39e9b718399c
MD5 309c8f86f2018084688aeb739b07205c
BLAKE2b-256 45eaa62cdbccbb6b4653f9712a1cf3aedd75a6e594610e94b81e9573359f5f82

See more details on using hashes here.

File details

Details for the file correctover_ibex-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for correctover_ibex-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 85e7f7a3dba515c4bbad89ca39e26ef83ef121703bdbbf0712ffb23e2a8e0d76
MD5 169bba86674798d7ebe8c30022c72610
BLAKE2b-256 db3f2130e0a8a187a9d97bab98131aefb57573a75a2be86a2e36eac186dec59b

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