Skip to main content

Documentation

Verify a record.
Understand its limits.

Start with a signed sample and an expected public key. Then examine the format, implementation and deployment boundary. You do not need to run an agent or start a gateway for the first check.

Current public versions reviewed October 3, 2026: runtime 3.6.6, JavaScript verifier 2.2.3 and Python SDK 0.3.2. Runtime 3.6.6 reuses tree levels for export proofs and retains the 3.6.5 transport, policy and trust-input controls. Export remains synchronous. Earlier release findings are retained as dated records. Published code is not independent pilot validation.

Static first

Reproduce the current reviewer case.

Download the reviewer case ZIP and extract it into a new folder. It includes the policy, requests, expected decisions, signed bundle, negative control and dependency-free verify.mjs. The manifest records the file digests. Use a maintained Node.js release.

Obtaining the files and runtime requires a network connection unless you already have them. The command below reads the local file and does not contact a gateway or this website. Run it from the extracted folder:

node verify.mjs evidence-bundle.json --pubkey ab1c6c3dbc49c942d424f6b39ca6e658fe5d439e255e6efdd0427ef3fab4fbf5

Expect VERIFIED with the expected test key and exit code 0. A well-formed wrong key or changed signed decision fails with exit 1. A supplied key flag with no value is a usage error, exit 2. The current evaluation guide and included README explain the controls. The historical fixture instructions remain available separately.

You can also use the browser verifier. File verification happens in your browser; the page itself must first be loaded. Do not confuse the AGA sample with a VerifyBundle file-sealing record: they use different formats and verifiers.

A pass has a narrow meaning.

The signatures, chain, Merkle proofs and signed checkpoint agree as the verifier parses the file. With a nonempty expected key, the signing key also matches. This does not prove that every action was recorded, that the record is fresh, that the policy was suitable or that a legal requirement was met. Duplicate JSON field names and other parser differences remain documented limitations.

Key pinning

Know which key you expect.

For this fixture
The command uses the published sample key. It differs from the live demo gateway key. The company hosts both the sample and this key; matching them is not independent authentication of the company.
For a partner's record
Obtain the expected gateway public key through a separately trusted channel. Do not use the key inside the bundle as the only authority for its own identity. The key-to-organization relationship depends on that external channel.
For a real deployment
Agree the key custodian, signing boundary, export retention and restart behavior before integration. A stable signing key does not preserve the public runtime's in-memory ledger. Export and verify before stopping it.
For command-line use
Pass a nonempty key after a space, as shown above. Do not assume all verifiers reject a missing value or support equals syntax. A plain VERIFIED result can be integrity-only; check the explicit key-match result.

Integration at a glance

What you can evaluate today.

Static artifact verification
Use the browser fixture or download the sample and standalone verifier. No agent connection is needed. AGA bundles and VerifyBundle records use different formats.
Published proxy
The agent interface is newline-delimited JSON-RPC over raw TCP. A stdio client needs a relay; a Streamable HTTP client needs a bridge. Neither is supplied. Review deployment and capture limitations before an isolated runtime evaluation.
Python recorder
Records decisions supplied by its host application. The signing key is held in that process; this is not a separately protected policy-enforcement boundary.
Private reference integrations
Go CLI, Kubernetes and Envoy work is available by arrangement. Kubernetes has not been validated end to end. Availability does not imply tested compatibility with your SDK or deployment.

Diligence questions

Read the claim behind each check.

Policy reference
Each current-case receipt commits to the included policy reference. Inspect the policy and requests beside the expected decisions. The hash alone does not establish that the policy is correct or was enforced in a deployment.
Four meanings of independence
Running a verifier outside the producer's service is different from independent authorship, a separately trusted key or an external audit. The published implementations and measurements are maintained by Attested Intelligence.
Record and outcome
The signed decision is about a tool request. It does not reveal model reasoning, establish the tool's returned result or prove the real-world action happened. Capture completeness and key-holder equivocation need controls outside the file.
Data in the export
Tool names, metadata and some denial reasons are readable. Arguments are committed by hash; values that are easy to guess may still be inferred. Review the exact fields and retention requirements before exporting sensitive activity.

Separate integration step

Read the boundary before starting a gateway.

The public reference runtime has material limitations. Use approved isolation and synthetic inputs for a bounded evaluation. These documentation links are not approval to expose a listener or handle production data.

aga-proxy 3.6.6
Evaluates covered calls against its configured policy. The default permissive profile denies nothing on policy grounds. The raw TCP listener defaults to loopback, has bounded connections and owner-bound requests, and still has no client authentication. The stdio environment excludes gateway-key variables; this does not isolate an upstream running under the same OS account. Control reads remain unauthenticated for local processes, and the ledger remains in memory. Direct bypass and key custody depend on deployment. Read current boundaries and dated affected cases.
MCP server mode
The client can invoke lifecycle and evidence tools, but this is not the same boundary as a separately isolated proxy. In 3.6.0 through 3.6.2 the governed client can re-attest its own baseline without that transition appearing in the exported bundle. Putting a seed in the client's environment does not create an independent signing boundary.
Python SDK 0.3.2
The in-process recorder signs decisions supplied by its caller; it evaluates no policy and holds the signing key in that process. An SDK export establishes record integrity, not that a separate enforcement boundary made the decision. Versions 0.2.6 and 0.3.0 were yanked for deeply nested input behavior; use the reviewed pinned version and its documented limits.
Evidence export
Retain the bundle, expected key, verifier and dependencies. The public proxy ledger is in memory and does not survive a restart. Export cost and response size have documented limits. Private Go CLI, Kubernetes and Envoy reference components are request-access work, not commands supplied by aga-verify.

Package installation can access a registry. The gateway's live default is classical Ed25519; the runtime package's hybrid library profile is not implemented by aga-verify 2.2.3. Component availability and profile scope are described separately.

Reference directory

Choose the question you need to answer.

Architecture
How the proxy binds a policy hash to a recorded decision, and how the record is verified. Public implementation and private reference components are distinguished.
Format and benchmarks
Receipt fields, verification checks, published vectors and dated primitive benchmarks. These are not end-to-end deployment performance guarantees.
Trust and scope
What a passing check establishes, what it leaves unproved, and what to retain for later verification.
Known security issues
Observed runtime, parser, key-handling and verification limitations, with affected versions and measured workarounds.
Threat model
The participants, trust boundaries and deployment assumptions behind the evidence.
Control mappings
Illustrative connections between evidence fields and framework controls. Mappings are not certification or proof that a control is satisfied.
Glossary
Definitions for governance receipts, bundles, key pinning, hash chains and Merkle proofs.
Research and legal context
Dated submissions and research materials, separated from current implementation claims. Patent status is described on the patent page.

For the pending filing, see patent status. For the broader architecture term, see Cryptographic Runtime Governance.

Test interpretation

Corpus agreement is not universal agreement.

The published classical corpus has 54 object-level cases checked by six configurations across JavaScript, Go and Python, plus seven raw-byte cases checked by five file-parsing verifiers. The in-server engine receives parsed objects and does not run the raw-byte cases.

The harness reserializes object cases. Given the literal bytes of a float-spelled leaf index such as 0.0, Python SDK 0.3.2 fails where the JavaScript verifier passes. Implementations also differ outside the corpus in parser, pin and algorithm handling. Known verifier differences are part of the evaluation, not exceptions to hide.

The source repository carries the current test corpus. The pinned conformance download is an earlier, smaller snapshot with primitive vectors, three bundle vectors and a reference verifier. It is not the full 61-case suite. Cross-language implementation is not an independent security audit.