crovia-tacet (reference implementation)
Reference Python implementation of TACET: sparse Merkle map,
epoch sheets, surface snapshots, delta-encoded silence proofs, and delivery as
an unmodified crovia.seal.v1.
Dependencies: cryptography (Ed25519). The Seal wrapper additionally needs the
Crovia Seal reference package (crovia_seal).
pip install -e .
python3 -m pytest
PNX command line
pip install crovia-tacet also installs tacet-pnx, the Proof of
Non-Exfiltration tool (profile crovia.pnx.v1, see ../../PNX.md):
tacet-pnx keygen --id urn:example:pnx:witness --out witness.key.json
tacet-pnx witness egress/ logs/gateway.jsonl --run-id run-42 --key witness.key.json \
--sheet run.sheet.json --state run.state.json # state is private
tacet-pnx prove --state run.state.json --sheet run.sheet.json \
--asset api_key=secret.txt --assets-dir protected/ --asset-env OPENAI_API_KEY \
--out pnx.proof.json [--seal-key issuer.key.json] # deliver as crovia.seal.v1
tacet-pnx verify pnx.proof.json --asset api_key=secret.txt --assets-dir protected/
Where the run connected (the reach record, PNX §4a) is added at witness time from a connection log and checked against the policy document:
tacet-pnx witness egress/ --reach logs/connect.jsonl --policy egress-policy.json \
--reach-mode enforce [--reach-salted] ... # one {"at","host","port",...} per line
tacet-pnx verify pnx.proof.json --policy egress-policy.json [--name api.github.com]
tacet-pnx verify run.sheet.json --policy egress-policy.json # a sheet alone: reach receipt, no asset judged
Exit codes: 0 valid and every asset absent (or a sheet alone) · 1 valid but present, undetectable,
partial or outside-policy · 2 invalid. The GitHub Action croviatrust/pnx-action wraps the same
three steps for CI (../../action/).
PNX witness for LiteLLM
tacet.integrations.litellm turns LiteLLM (SDK or proxy) into a PNX egress
witness: every request about to leave for a model provider is appended, as the
exact provider request body, to a capture log that tacet-pnx witness reads.
import litellm
from tacet.integrations.litellm import PNXEgressLogger
litellm.callbacks = [PNXEgressLogger("pnx/egress.jsonl")]
# LiteLLM proxy config.yaml (log path from PNX_EGRESS_LOG, default pnx/egress.jsonl)
litellm_settings:
callbacks: tacet.integrations.litellm.pnx_egress_logger
tacet-pnx witness pnx/egress.jsonl --run-id run-42 --key witness.key.json --sheet run.sheet.json --state run.state.json
tacet-pnx prove --state run.state.json --sheet run.sheet.json --asset-env STRIPE_KEY --asset customers=customers.csv --out pnx.proof.json
The capture log contains what left, so it is as private as the witness state.
Traffic that does not go through LiteLLM (tool calls, shell, browser) is outside
this witness (PNX §7); pair it with re proxy --pnx for those.
Metadata
Release files for crovia-tacet 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| crovia_tacet-0.5.1.tar.gz | 56.8 kB | With provenance | Details for crovia_tacet-0.5.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| crovia_tacet-0.5.1-py3-none-any.whl | Python 3 | none | any | Details for crovia_tacet-0.5.1-py3-none-any.whl |
Total release size: 108.3 kB
Release files / crovia_tacet-0.5.1.tar.gz
| Download URL | crovia_tacet-0.5.1.tar.gz |
|---|---|
| Size | 56.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3d3837760e7b8c495fcab33a05fe16da5966cd6f3b9e85f00913a41ad26958bd
|
|
BLAKE2b-256 checksum How to use checksums |
4bf762365b9b6de96f7be1286e1b3e54398721f5ad3d79ad0cd11ef43a71e3a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / crovia_tacet-0.5.1-py3-none-any.whl
| Download URL | crovia_tacet-0.5.1-py3-none-any.whl |
|---|---|
| Size | 51.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
768b438c1fd779929a6c6f0823add957f8663e67c3cf2626b6bcf946d61422cd
|
|
BLAKE2b-256 checksum How to use checksums |
29c38e0a543b2728194aae27cdea609da3b90e2eafe8b31062d7f179f889a27f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logSecurity for crovia-tacet 0.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for crovia_tacet-0.5.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.