LLM governance control plane. Policy authoring, simulation, rollout pipelines, tenant hierarchy, and audit dashboards built on veronica-core.
Project description
veronica
LLM governance control plane.
Policy authoring, simulation, rollout pipelines, tenant hierarchy, incident replay, and audit dashboards -- built on veronica-core.
What This Is
veronica is the control plane for veronica-core.
veronica-core is the deterministic enforcement kernel -- cost ceilings, step limits, circuit breakers, distributed budget. It runs local, has no dependencies, and its guarantees are unconditional.
This repository is the management layer on top: author policies, test them in simulation, roll them out through approval gates, organize tenants, and audit what happened.
Your Application
|
veronica-core -- enforcement kernel (pip install veronica-core)
|
veronica-cp -- control plane (pip install veronica-cp)
|
LLM Providers
Features
- Policy authoring -- create and version cost/step/token policies per chain via HTTP API
- Simulation -- dry-run steps against a policy before deploying (
POST /simulate) - Rollout pipeline -- DRAFT -> SIMULATED -> APPROVED -> PROMOTED -> ACTIVE -> REVOKED
- Tenant hierarchy -- org -> team -> chain with policy inheritance and narrowing overrides
- Incident replay -- re-evaluate recorded events under alternative policies
- Audit dashboard -- event log, decision timeline, cost tracking (Grafana + built-in UI)
- HMAC-signed bundles -- immutable policy distribution with integrity verification
- PostgreSQL backend -- persistent event store (in-memory default for dev)
- Prometheus metrics --
veronica_decisions_total,veronica_cost_usd_total, etc.
Install
pip install veronica-cp
Optional extras:
pip install veronica-cp[postgres] # PostgreSQL event store
pip install veronica-cp[redis] # distributed budget (Redis Arbiter)
pip install veronica-cp[metrics] # Prometheus metrics exporter
pip install veronicais a different, unrelated package on PyPI. This project's PyPI distribution isveronica-cp. The Python import remainsimport veronica. Do not install bothveronica(PyPI) andveronica-cpin the same environment -- they share theveronicaimport namespace and will conflict.
Quickstart
HTTP API (primary interface)
cp .env.example .env # set VERONICA_API_KEY
cd deploy/ && docker compose up -d
| Service | URL |
|---|---|
| API + Docs | http://127.0.0.1:8000/docs |
| Dashboard | http://127.0.0.1:8000/ui |
| Grafana | http://127.0.0.1:3000 |
| Prometheus | http://127.0.0.1:9090 |
| Health | http://127.0.0.1:8000/health |
# Create a policy
curl -X PUT http://localhost:8000/policies/my-agent \
-H "X-Veronica-Key: $VERONICA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"chain_id":"my-agent","ceiling_usd":1.0,"on_exceed":"halt","current_version":0}'
# Simulate enforcement
curl -X POST http://localhost:8000/simulate \
-H "X-Veronica-Key: $VERONICA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"policy":{"chain_id":"my-agent","ceiling_usd":1.0,"on_exceed":"halt"},
"steps":[{"kind":"llm","cost_usd":0.30,"tokens_out":500,"elapsed_ms":200}]}'
Embedded Python (for kernel-level integration)
pip install veronica-cp[metrics]
from veronica import VeronicaOS, BufferedEmitter, MetricsSubscriber
from veronica.metrics_exporter import start_metrics_server
start_metrics_server() # :9464/metrics
emitter = BufferedEmitter()
emitter.subscribe("prometheus", MetricsSubscriber())
vos = VeronicaOS(emitter=emitter)
Architecture
veronica-core (kernel) veronica (control plane)
------------------------- --------------------------------
ExecutionContext Policy authoring (PUT /policies)
ShieldPipeline Simulation (POST /simulate)
BudgetEnforcer Rollout pipeline (/rollouts)
CircuitBreaker Tenant hierarchy (/tenants)
AdaptiveBudgetHook Incident replay (POST /replay)
Distributed budget (Redis) Event ingest + audit dashboard
OTel export Prometheus + Grafana
The kernel enforces. The control plane manages.
veronica-core's guarantees are unconditional -- they do not depend on the control plane. The control plane extends those guarantees with policy lifecycle, visibility, and organizational structure.
Status
veronica-core: v3.4.3 -- stable, 4837 tests.
veronica-cp (this repo): v0.8.1 -- 1197 tests.
| Version | Milestone |
|---|---|
| v0.8.0 | Control plane GA: HTTP API, dashboard, deploy stack, tenant hierarchy, rollout pipeline, incident replay, design partner docs |
| v0.7.0 | Org policy engine: validate/clamp, step_denied metric |
| v0.6.0 | LLM integration adapter: step() context manager |
| v0.5.0 | Grafana dashboard: metrics exporter, docker-compose |
Single-org deployment. No federation, no cross-org, no multi-tenant SaaS.
Docs
- Onboarding guide -- your first 30 minutes
- PolicyConfig specification
- Deployment guide
- Deployment checklist
- Key management
- Architecture
- Observability
- Runbooks: policy rollout, incident response, tenant onboarding
- CHANGELOG
Roadmap
Near-term (control plane hardening):
- External design partner deployment
- TriMemory kernel integration
- Multi-agent workload validation
Future (not started):
- Federation / cross-org policy coordination
- Multi-tenant SaaS mode
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 veronica_cp-0.8.1.tar.gz.
File metadata
- Download URL: veronica_cp-0.8.1.tar.gz
- Upload date:
- Size: 417.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5814473b3aeb3920d90001135eb55dfbf7c31f8f9ca073d46525fca4af37103
|
|
| MD5 |
7dbbd641a561ed741f98c2a3f9a9a515
|
|
| BLAKE2b-256 |
6921dc76c1751728a2eb255f791f9a6ab5df4963ea6a32e9d11c3df07b79f1c5
|
File details
Details for the file veronica_cp-0.8.1-py3-none-any.whl.
File metadata
- Download URL: veronica_cp-0.8.1-py3-none-any.whl
- Upload date:
- Size: 141.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e78885cd94bca0b49bfa0d93d3939749407fcc6f533f0dbee4de9ddf10d91015
|
|
| MD5 |
848d5aaf560d96754319f2471891d51a
|
|
| BLAKE2b-256 |
748045c773970872b9bf44e4285722de1c727f1e226ef12db8e873c74412f80e
|