Canonical JSON Schemas for the WasmAgent Agent Evidence Protocol (AEP) and compliance contracts. Single source of truth across the WasmAgent org.
Project description
wasmagent-protocol
Canonical source of truth for every cross-repository contract in the WasmAgent org. One public schema → one canonical source.
WasmAgent is open infrastructure for provable AI agents. Proving an agent ran
correctly requires that every repository — the runtime, the gateway, the
evidence pipelines, the audit product — speak the same evidence and
compliance vocabulary. wasmagent-protocol is where that vocabulary is defined,
versioned, and published, so no repository has to keep its own copy.
This repository holds specifications only. It contains no business logic, no runtime, and no product code — only JSON Schemas, conformance fixtures, and thin loader packages that expose the schemas to JavaScript and Python consumers.
Why this repository exists
The Agent Evidence Protocol (AEP) and the compliance schemas were originally
authored inside wasmagent-js and independently copied into trace-pipeline.
By the time this repository was extracted, those copies had drifted: five
shared schemas differed (one had a copy-paste title bug, and the same logical
schema carried two conflicting $id URLs). Drift in a shared contract silently
breaks cross-repo evidence validation — exactly the failure mode WasmAgent
exists to prevent.
Per the org repository boundary policy: one public schema has exactly one canonical source. That source is here.
What's in scope
Only contracts that genuinely cross a repository boundary:
| Schema | Version | Consumers |
|---|---|---|
aep-record |
aep/v0.2 |
wasmagent-js, wasmagent-proxy, trace-pipeline, wasmagent-train-replay, open-agent-audit |
constraint-ir |
compliance/v1 |
wasmagent-js, trace-pipeline |
constraint-violation |
compliance/v1 |
wasmagent-js, trace-pipeline |
repair-trace |
compliance/v1 |
wasmagent-js, trace-pipeline |
task-spec |
compliance/v1 |
wasmagent-js, trace-pipeline |
compliance-eval-record |
compliance-eval-record/v1 |
wasmagent-js, trace-pipeline |
rollout-wire |
rollout-wire/v1 |
wasmagent-js, trace-pipeline |
The machine-readable registry is schemas/index.json.
Out of scope: schemas owned by a single repository (e.g. trace-pipeline's
*-training-record output formats, open-agent-audit's audit-run). A schema
belongs here only when two or more repositories must agree on it.
Consuming the schemas
Downstream repositories must not copy schema JSON. Depend on the published package instead.
JavaScript / TypeScript
npm install @wasmagent/protocol
import { schemas, getSchema } from "@wasmagent/protocol";
const aep = getSchema("aep-record"); // parsed JSON Schema object
Python
pip install wasmagent-protocol
from wasmagent_protocol import get_schema, schema_path
aep = get_schema("aep-record") # parsed dict
path = schema_path("aep-record") # pathlib.Path to the .json file
Versioning & stability
- Each schema carries a
versionstring (see the registry). - Additive changes (new optional field) → minor package bump.
- Breaking changes (removed/renamed field, tightened
required) → major package bump and a newversionvalue, announced in the org release ledger before merge. - Every schema has at least one valid and one invalid conformance fixture under
tests/fixtures/. CI rejects any schema without both.
See docs/CONTRACT-CHANGE-PROCESS.md for the
full change workflow and docs/GOVERNANCE.md for
maintainer and exit-condition policy.
Development
# validate every schema is well-formed and every fixture conforms
python3 -m pip install jsonschema
python3 tests/conformance.py
Releases
Published to npm and PyPI from CI via OIDC trusted publishing on v* tags — no
tokens stored. See docs/CONTRACT-CHANGE-PROCESS.md.
- 0.1.3 — npm OIDC fix: drop setup-node registry-url (empty token was short-circuiting OIDC).
- 0.1.2 — npm OIDC attempt (Node 24); PyPI only.
- 0.1.1 — release-pipeline verification (PyPI); no schema changes.
- 0.1.0 — initial canonical extraction of the AEP + compliance schema family.
License
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wasmagent_protocol-0.1.3.tar.gz.
File metadata
- Download URL: wasmagent_protocol-0.1.3.tar.gz
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ca25452db73ead57601369cc496493339a374eb7410e0c6db674880b2c41fd5
|
|
| MD5 |
150daee501c056d0c4eedfeeb06fa006
|
|
| BLAKE2b-256 |
6ac22600be2e35227968a9cc059aabfe7bae15f2377e5cf7a1bcf30e927a2051
|
Provenance
The following attestation bundles were made for wasmagent_protocol-0.1.3.tar.gz:
Publisher:
release.yml on WasmAgent/wasmagent-protocol
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wasmagent_protocol-0.1.3.tar.gz -
Subject digest:
7ca25452db73ead57601369cc496493339a374eb7410e0c6db674880b2c41fd5 - Sigstore transparency entry: 2222633997
- Sigstore integration time:
-
Permalink:
WasmAgent/wasmagent-protocol@d24dc1b464f5f3b80d7d6bfe74b18723201d9fbf -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/WasmAgent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d24dc1b464f5f3b80d7d6bfe74b18723201d9fbf -
Trigger Event:
push
-
Statement type:
File details
Details for the file wasmagent_protocol-0.1.3-py3-none-any.whl.
File metadata
- Download URL: wasmagent_protocol-0.1.3-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6754480cbe63d80536d20af86602b1c8265dde6a16f4c43f61a69041d894dab
|
|
| MD5 |
87577f67c7a7278e6d784c94a34699af
|
|
| BLAKE2b-256 |
087b497dbfe136b5513344a4cfa286d29ce471e7d3768441c5e68100fc2c46af
|
Provenance
The following attestation bundles were made for wasmagent_protocol-0.1.3-py3-none-any.whl:
Publisher:
release.yml on WasmAgent/wasmagent-protocol
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wasmagent_protocol-0.1.3-py3-none-any.whl -
Subject digest:
d6754480cbe63d80536d20af86602b1c8265dde6a16f4c43f61a69041d894dab - Sigstore transparency entry: 2222634452
- Sigstore integration time:
-
Permalink:
WasmAgent/wasmagent-protocol@d24dc1b464f5f3b80d7d6bfe74b18723201d9fbf -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/WasmAgent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d24dc1b464f5f3b80d7d6bfe74b18723201d9fbf -
Trigger Event:
push
-
Statement type: