visiq — VisIQ agent-governance harness for Python
Action governance, retrieval governance, and audit-trail reporting, from one
Governor wrapper. Decisions are made in-process by the compiled VisIQ core that
every VisIQ SDK shares — the same engine behind @visiq/harness — exposed through
an ergonomic Python API. The engine ships as compiled machine code.
import visiq
d = visiq.gate_action(bundle, tool_name="wire_transfer", args={"amount": 999}, agent_id="a")
if not d["allowed"]:
... # block — the tool never runs
One call for Pydantic AI and Semantic Kernel
from visiq import govern
govern(agent, agent_id="support-bot") # a pydantic_ai.Agent (pydantic-ai >= 1.107)
govern(kernel, agent_id="support-bot") # a Microsoft semantic_kernel.Kernel
Every tool on the agent or kernel is governed with no per-tool wiring: a deny
means the tool never runs and the model reads why, a mask hands the tool only the
redacted arguments, and retrieval_tools= (Pydantic AI) / retrieval_functions=
(Semantic Kernel) governs a RAG tool's result before the model sees it. For other
frameworks, route each tool through Governor.gate_tool.
Why it's real (not a prototype)
- Installable:
maturinbuilds an abi3 wheel (pip install visiq) — ONE binary for py3.9+; the engine is compiled machine code, no source in the artifact (closed / hard-to-RE, better than npm minification). - Correct: it reuses the proven rego engine (
../rseval/engine, 1316/1316 vs L0) + the unified-runtime layer matched to the real TSUnifiedRuntime.
Structure
src/lib.rs— the Path-B core + PyO3_core.evaluate(event_json, bundle_json).python/visiq/__init__.py— the ergonomic API (decide/gate_action/gate_retrieval).conformance.py— GATE 1: the installable SDK reproduces the event-corpus stamps (== shipped TS SDK decisions) across the full 118-vector corpus.interception_smoke.py— GATE 2: a REAL LlamaIndexFunctionAgent's tool dispatch is governed by the REAL compiled core (denied tool never executes; committed negative control).
Publishing (CTO-gated)
.github/workflows/pypi-publish.yml — workflow_dispatch-only; builds closed
abi3 wheels for every platform, runs both gates (required), then publishes via
PyPI OIDC Trusted Publishing behind the production environment (CTO approval).
No SDK is claimed "supported" on the integrations page until it is genuinely
installable AND passes both gates.
Build + verify
./run.sh
Prereq: Rust toolchain + python3 -m venv .venv && .venv/bin/pip install maturin llama-index-core.
Scope + next
Covers every event→input dimension + verb + the no-coverage posture (action:
verb→read/write/delete/admin→approve/deny/ask, a faithful port of the TS
resolveNoCoverage; retrieval: always fail-closed). Next: grow the event
corpus toward full L0 breadth; then the Ruby/Go/Java/Node bindings over the SAME
core, each gated by this same corpus.
Metadata
Release files for visiq 0.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| visiq-0.5.3-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| visiq-0.5.3-cp39-abi3-musllinux_1_2_x86_64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ x86-64 | Details |
| visiq-0.5.3-cp39-abi3-musllinux_1_2_aarch64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ ARM64 | Details |
| visiq-0.5.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| visiq-0.5.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| visiq-0.5.3-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl | CPython 3.9 | abi3 | macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64, macOS 10.12+ x86-64 | Details |
Total release size: 9.1 MB
Release files / visiq-0.5.3-cp39-abi3-win_amd64.whl
| Download URL | visiq-0.5.3-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9ed5d99e4763f3c84c11b3dbb5a42829aa31941184329614a9eb05cc49b67f1f
|
|
BLAKE2b-256 checksum How to use checksums |
bb207dc8ef2f3f6667c2f4b0869b938b3ae282505c0fca663a3b175a062ecf6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 16, 2026.
Transparency logRelease files / visiq-0.5.3-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | visiq-0.5.3-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3c53a554ed11f4bb6bec8736efe9e02c1a8d9a4ec050768027ec3e7f01bc0af7
|
|
BLAKE2b-256 checksum How to use checksums |
10bc4401be29f1fb2141fdd8ff07741a89ecd32ecf81b7372676f1f1ce781246
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 16, 2026.
Transparency logRelease files / visiq-0.5.3-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | visiq-0.5.3-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
571eac71dc9c460ffc3a75158f653dc6fdd7f7c8444af96fcddd3e7ac886babe
|
|
BLAKE2b-256 checksum How to use checksums |
65ceb784d5acb0472c605cd457aafbc3461e7704794af6b78846e21cd80b8597
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 16, 2026.
Transparency logRelease files / visiq-0.5.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | visiq-0.5.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
db7d5a372562610325ff56a0ee642bf495bf9f3dc3852786f6c765029af5f559
|
|
BLAKE2b-256 checksum How to use checksums |
d699b4c497d9013b59cee393e10c17ec47d21dee11681ba4463f0214050cc932
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 16, 2026.
Transparency logRelease files / visiq-0.5.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | visiq-0.5.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
d8c2b49c45dda5b805d1c0422708662faf65729be7b9117911120630c6017710
|
|
BLAKE2b-256 checksum How to use checksums |
306e5a76e3f18da245428e0072a41993d9bc648e05dcd25882c0c18131025d0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 16, 2026.
Transparency logRelease files / visiq-0.5.3-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | visiq-0.5.3-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
85a6896f76eb530325b4070efcd5cea04050236c83eec383bedd712d551b5f94
|
|
BLAKE2b-256 checksum How to use checksums |
797040829d6dc33c17000ac9011f5e0c8250665874783c91d37213adbcaa73c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 16, 2026.
Transparency log