Skip to main content

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 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

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

veronica_cp-0.8.1.tar.gz (417.5 kB view details)

Uploaded Source

Built Distribution

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

veronica_cp-0.8.1-py3-none-any.whl (141.4 kB view details)

Uploaded Python 3

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

Hashes for veronica_cp-0.8.1.tar.gz
Algorithm Hash digest
SHA256 c5814473b3aeb3920d90001135eb55dfbf7c31f8f9ca073d46525fca4af37103
MD5 7dbbd641a561ed741f98c2a3f9a9a515
BLAKE2b-256 6921dc76c1751728a2eb255f791f9a6ab5df4963ea6a32e9d11c3df07b79f1c5

See more details on using hashes here.

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

Hashes for veronica_cp-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e78885cd94bca0b49bfa0d93d3939749407fcc6f533f0dbee4de9ddf10d91015
MD5 848d5aaf560d96754319f2471891d51a
BLAKE2b-256 748045c773970872b9bf44e4285722de1c727f1e226ef12db8e873c74412f80e

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