Lightweight governance and trace SDK for AI systems
Project description
Monora v1 SDK
Lightweight governance and trace SDK for AI systems
Monora provides minimal viable trust through immutable event logs, policy enforcement, and comprehensive auditability for LLM applications.
Features
- 🔒 Immutable Event Logs: Cryptographic hash chains for tamper detection
- 📋 Policy Enforcement: Model allowlists/denylists with data classification controls
- 🧭 Provider Registry: Explicit model-to-provider mapping with unknown-model alerts
- 🧾 Versioned Registry: Registry versioning, history, and provider deprecation metadata
- 🔍 Full Auditability: JSON-lines event logs with CLI reporting tools
- ⚡ Non-blocking: Background worker with bounded queue for zero user-code latency
- 🎯 Simple API: Decorator-based interface with sensible defaults
- 🧩 Auto-Instrumentation: Optional OpenAI/Anthropic patching for drop-in logging
- ✅ Completeness Checks: Event sequencing and security review reports
- 🔌 Pluggable Sinks: Stdout, file, and HTTPS endpoints
- 🚨 Violation Alerts: Callback or webhook notifications for policy violations
- 🧹 Data Handling: Regex redaction rules tied to data classifications
- 🛡️ Signed Attestations: Optional GPG-signed security review bundles
Installation
pip install -e .
# With YAML config support
pip install -e ".[yaml]"
# With HTTPS sink support
pip install -e ".[https]"
# Development dependencies
pip install -e ".[dev]"
Quick Start
Minimal Example (Dev Mode)
import monora
# Initialize with defaults (stdout logging, no policies)
monora.init()
@monora.llm_call(purpose="customer_support")
def ask_gpt(prompt: str, model: str = "gpt-4o-mini"):
# Your LLM call here
return {"response": "Hello!"}
# Use trace context for grouping events
with monora.trace("ticket_123"):
response = ask_gpt("How do I reset my password?")
Guided Setup (Wizard)
monora init
This generates a monora.yml you can edit and pass to monora.init(config_path="monora.yml").
Validate & Diagnose
monora validate --config monora.yml
monora doctor --config monora.yml
See README.md for full documentation and examples.
Testing
pytest
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file monora-1.0.1.tar.gz.
File metadata
- Download URL: monora-1.0.1.tar.gz
- Upload date:
- Size: 96.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e4af8ee5988ee612c59d83c22496d89475796e4fb9aeff84a5654eb27bc7ef5
|
|
| MD5 |
f41ed61ed621c94381b539f6cc986f29
|
|
| BLAKE2b-256 |
5b55f1296d73d3820ec14e5bc3d4c6cedcbad5002e3ae11c03de8d9da1a80260
|
File details
Details for the file monora-1.0.1-py3-none-any.whl.
File metadata
- Download URL: monora-1.0.1-py3-none-any.whl
- Upload date:
- Size: 49.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb2ed2f05723fdededc47e7f85ed3f21b802163be4732f49760e3238575862cb
|
|
| MD5 |
3f4eaabf383f21366f3b64dcd3d46775
|
|
| BLAKE2b-256 |
f9522084565c3307cb8f0b243636a29f7f5719fd115d37abbce6899abff647ba
|