Skip to main content

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 veronica is a different, unrelated package on PyPI. This project's PyPI distribution is veronica-cp. The Python import remains import veronica. Do not install both veronica (PyPI) and veronica-cp in the same environment -- they share the veronica import 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


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

Metadata

Release files for veronica-cp 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for veronica-cp 0.8.1
File Size Uploaded
veronica_cp-0.8.1.tar.gz 417.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for veronica-cp 0.8.1
File Interpreter ABI Platform
veronica_cp-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 559.0 kB

Release files / veronica_cp-0.8.1.tar.gz

Download URL veronica_cp-0.8.1.tar.gz
Size 417.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c5814473b3aeb3920d90001135eb55dfbf7c31f8f9ca073d46525fca4af37103
BLAKE2b-256 checksum
How to use checksums
6921dc76c1751728a2eb255f791f9a6ab5df4963ea6a32e9d11c3df07b79f1c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / veronica_cp-0.8.1-py3-none-any.whl

Download URL veronica_cp-0.8.1-py3-none-any.whl
Size 141.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e78885cd94bca0b49bfa0d93d3939749407fcc6f533f0dbee4de9ddf10d91015
BLAKE2b-256 checksum
How to use checksums
748045c773970872b9bf44e4285722de1c727f1e226ef12db8e873c74412f80e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page