Skip to main content

ExoArmur Core – deterministic governance and replayable audit layer for execution

Project description

ExoArmur Core

CI PyPI Python License Version

Deterministic execution governance for AI agents. Every action passes through a policy gate, produces a cryptographic audit trail, and is deterministically replayable.


5-Minute Proof

pip install exoarmur-core
python examples/quickstart_replay.py

Or inline:

from exoarmur import ReplayEngine
from exoarmur.replay.event_envelope import CanonicalEvent
import hashlib, json

payload = {"kind": "inline", "ref": {"event_id": "01ARZ3NDEKTSV4RRFFQ69G5FAV"}}
event = CanonicalEvent(
    event_id="01ARZ3NDEKTSV4RRFFQ69G5FAV",
    event_type="belief_creation_started",
    actor="demo",
    correlation_id="corr-1",
    payload=payload,
    payload_hash=hashlib.sha256(
        json.dumps(payload, sort_keys=True, separators=(",", ":")).encode()
    ).hexdigest(),
)
engine = ReplayEngine(audit_store={"corr-1": [event]})
report = engine.replay_correlation("corr-1")
print("Replay result:", getattr(report.result, "value", report.result))
print("Failures:", report.failures or "none")

Run the full suite (1033 tests, three-run stability gate):

git clone https://github.com/slucerodev/ExoArmur-Core.git
cd ExoArmur-Core
pip install ".[dev]"
python -m pytest -q

What It Does

ExoArmur sits between your AI decision layer and execution targets. It enforces that every action:

  • Passes a policy decision point before it runs
  • Produces a cryptographic audit trail tied to the original intent
  • Is deterministically replayable — same inputs always reconstruct the same trace
  • Can be vetoed or queued for operator approval
Decision Source → ActionIntent → PolicyDecisionPoint → SafetyGate → [Approval?] → Executor → ExecutionProofBundle

What It Is Not

  • Not an LLM or agent framework
  • Not a general workflow engine
  • Not a distributed systems platform

ExoArmur is a governance and accountability layer that wraps whatever agent framework you already use.

Architecture

Layer Path Purpose
Core engine src/exoarmur/ Deterministic replay, audit, policy enforcement
V2 governance src/exoarmur/execution_boundary_v2/ ProxyPipeline, approval workflow, executor boundary
Contracts spec/contracts/ Immutable V1 data shapes
Examples examples/ Quickstart and demo scripts

Key invariants:

  • ProxyPipeline is the sole execution boundary — all actions route through it
  • Executors are sandboxed, untrusted plugins
  • Determinism is enforced by CI — three-run stability gate on every push
  • V1 contracts are immutable — new capabilities are additive and feature-flag gated

Feature Flags

V2 capabilities default to off:

Flag Purpose
EXOARMUR_FLAG_V2_FEDERATION_ENABLED Multi-cell coordination
EXOARMUR_FLAG_V2_CONTROL_PLANE_ENABLED Governance control plane
EXOARMUR_FLAG_V2_OPERATOR_APPROVAL_REQUIRED Human approval gate

Governance Pipeline Demo

EXOARMUR_FLAG_V2_FEDERATION_ENABLED=true \
EXOARMUR_FLAG_V2_CONTROL_PLANE_ENABLED=true \
EXOARMUR_FLAG_V2_OPERATOR_APPROVAL_REQUIRED=true \
python scripts/demo_v2_restrained_autonomy.py --operator-decision deny

Expected output:

DEMO_RESULT=DENIED
ACTION_EXECUTED=false
AUDIT_STREAM_ID=det-...

Replay the audit stream:

python scripts/demo_v2_restrained_autonomy.py --replay <AUDIT_STREAM_ID>

CI

Every push runs:

  • Core Invariant Gates — three deterministic test runs, boundary enforcement, repo cleanliness
  • Multi-Platform Tests — Python 3.8–3.12 on Linux, macOS, Windows
  • Security Scan — CodeQL + pip-audit
  • V2 Demo Smoke Test — full governance pipeline end-to-end

Current: 1033 passing, 11 skipped, 11 xfailed. No external infrastructure required for the core suite.

Live Demo (Requires NATS JetStream)

docker compose up -d
EXOARMUR_LIVE_DEMO=1 python -m pytest tests/test_golden_demo_live.py -v

Documentation

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contributing

Issues and PRs welcome. All contributions must pass the full gate suite including the three-run stability check (python scripts/infra/stability_ci.py).

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

exoarmur_core-2.0.1.tar.gz (579.5 kB view details)

Uploaded Source

Built Distribution

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

exoarmur_core-2.0.1-py3-none-any.whl (461.2 kB view details)

Uploaded Python 3

File details

Details for the file exoarmur_core-2.0.1.tar.gz.

File metadata

  • Download URL: exoarmur_core-2.0.1.tar.gz
  • Upload date:
  • Size: 579.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for exoarmur_core-2.0.1.tar.gz
Algorithm Hash digest
SHA256 ad81935ba1ab38240a5af29a2549bc38539c858b0f3c64d525fa1b64cdca883c
MD5 97dc94771d98e6bf7cba77999469639b
BLAKE2b-256 8715b5c93a12e3dbf4c8020c126fe5787be6a20a3f37e3db4eb4d5de86bdb157

See more details on using hashes here.

Provenance

The following attestation bundles were made for exoarmur_core-2.0.1.tar.gz:

Publisher: publish-pypi.yml on slucerodev/ExoArmur-Core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file exoarmur_core-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: exoarmur_core-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 461.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for exoarmur_core-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d0c565fb706aff5f48e6a7de186eee9de575402197f6fdc36c8af63476f7de0b
MD5 d7025b1e7c53a8b01101a5b6f3be34a9
BLAKE2b-256 c41002f6042caa72d608d23ecccfb02de5d2893ac922dda1acc6e61b1ca8084a

See more details on using hashes here.

Provenance

The following attestation bundles were made for exoarmur_core-2.0.1-py3-none-any.whl:

Publisher: publish-pypi.yml on slucerodev/ExoArmur-Core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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