agentrust-trace 0.4.0__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/PULL_REQUEST_TEMPLATE.md +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/ci.yml +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/docs.yml +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/publish.yml +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/CHANGELOG.md +12 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/CONTRIBUTING.md +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/PKG-INFO +6 -6
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/README.md +5 -5
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/crosswalks/owasp-agentic-top-10.md +7 -7
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/glossary.md +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/index.md +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/quickstart.md +5 -5
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/schema.md +3 -3
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/trust-levels.md +3 -3
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/agt-adapter.md +4 -4
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/anchoring-to-the-registry.md +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/hardware-attestation-platforms.md +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/signing-your-first-trust-record.md +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/verifying-a-trust-record.md +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/verification.md +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/README.md +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/amd-sev-snp.json +5 -5
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/intel-tdx.json +5 -5
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/nvidia-h100.json +5 -5
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/tpm2.json +7 -7
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/mkdocs.yml +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/pyproject.toml +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/requirements-docs.txt +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/schema/trace-claim.json +4 -4
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/spec/trace-v0.1.md +2 -0
- agentrust_trace-0.5.0/spec/trace-v0.2.md +486 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/adapters/agt.py +3 -3
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/models.py +1 -1
- agentrust_trace-0.5.0/src/agentrust_trace/schema/trace-v0.2.json +285 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/sign.py +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/validate.py +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/tests/test_agt_adapter.py +2 -2
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/tests/test_models.py +42 -42
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/tests/test_sign.py +1 -1
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/CODEOWNERS +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/ISSUE_TEMPLATE/spec_change.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/dependabot.yml +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/codeql.yml +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/contributor-check.yml +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/require-maintainer-approval.yml +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/sbom.yml +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/.github/workflows/scorecard.yml +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/ADOPTERS.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/ANTITRUST.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/CHARTER.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/CNAME +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/CODE_OF_CONDUCT.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/GOVERNANCE.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/LICENSE +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/LIMITATIONS.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/MAINTAINERS.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/NOTICE +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/PRIVACY.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/ROADMAP.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/SECURITY.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/assets/icon.svg +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/assets/og.png +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/integration/agt.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/integration/cmcp.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/platforms/amd-sev-snp.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/platforms/index.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/platforms/intel-tdx.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/platforms/nvidia-h100.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/stylesheets/extra.css +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/integrating-with-cmcp.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/verifying-the-audit-chain.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/README.md +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/01-valid-controller-accepted.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/02-valid-controller-rejected.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/03-missing-required-receipt.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/04-signature-key-mismatch.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/05-action-ref-mismatch.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/06-stale-receipt.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/07-receipt-chain-gap.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/08-same-party-self-report.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/examples/action-receipts/conformance/09-unsupported-physical-completion.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/overrides/main.html +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/robots.txt +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/__init__.py +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/adapters/__init__.py +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/py.typed +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/src/agentrust_trace/schema/trace-v0.1.json +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/tests/__init__.py +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/tests/test_action_receipt_fixtures.py +0 -0
- {agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/tests/test_validate.py +0 -0
|
@@ -8,7 +8,7 @@ labels: bug
|
|
|
8
8
|
<!-- Describe the problem. Quote the specific text or schema path. -->
|
|
9
9
|
|
|
10
10
|
**Spec section or file**
|
|
11
|
-
<!-- e.g. spec/trace-v0.
|
|
11
|
+
<!-- e.g. spec/trace-v0.2.md §3.2.1, schema/trace-claim.json #/properties/runtime -->
|
|
12
12
|
|
|
13
13
|
**Expected behavior**
|
|
14
14
|
<!-- What should it say or do? -->
|
|
@@ -18,7 +18,7 @@ jobs:
|
|
|
18
18
|
steps:
|
|
19
19
|
- uses: actions/checkout@v7
|
|
20
20
|
|
|
21
|
-
- uses: actions/setup-python@
|
|
21
|
+
- uses: actions/setup-python@v7
|
|
22
22
|
with:
|
|
23
23
|
python-version: "3.11"
|
|
24
24
|
|
|
@@ -42,4 +42,4 @@ jobs:
|
|
|
42
42
|
name: dist
|
|
43
43
|
path: dist/
|
|
44
44
|
|
|
45
|
-
- uses: pypa/gh-action-pypi-publish@
|
|
45
|
+
- uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
|
|
@@ -11,6 +11,18 @@ Format: [Semantic Versioning](https://semver.org/). Spec versions follow `MAJOR.
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- **BREAKING: TRACE v0.2 changes the EAT profile URI to `tag:agentrust-io.com,2026:trace-v0.2`** (was `tag:agentrust.io,2026:trace-v0.1`). `agentrust.io` was never a domain this project controlled; it resolves to third-party parked addresses. RFC 4151 permits a tag URI only where the minting authority controlled the named domain on the stated date, so the v0.1 identifier was invalid rather than merely misspelled: it asserted authority over a name someone else could stand up a conflicting definition at.
|
|
17
|
+
|
|
18
|
+
**Cutover, not coexistence.** A v0.2 verifier requires the new URI and rejects the old one; it does not accept both. Dual acceptance would keep the invalid identifier live indefinitely, which is the thing being fixed. Records already issued under v0.1 stay verifiable against `spec/trace-v0.1.md` and the published `agentrust-trace` 0.4.x releases, which remain on PyPI. They are v0.1 records and are read as such.
|
|
19
|
+
|
|
20
|
+
Nothing else in the record format changed. No field was added, removed, or re-typed, so migration for a producer is the profile string and a dependency bump.
|
|
21
|
+
|
|
22
|
+
Moved together: `spec/trace-v0.2.md` (new, with a "Changes from v0.1" section), `spec/trace-v0.1.md` (retained, marked superseded), the root `schema/trace-claim.json` const, the packaged `agentrust_trace/schema/trace-v0.2.json`, the `eat_profile` `Literal` in `models.py`, the AGT adapter, `validate.py`'s schema resource, the four platform example records, and the docs.
|
|
23
|
+
|
|
24
|
+
- Other `agentrust.io` URLs moved to `agentrust-io.com`: the registry and verifier hosts in the AGT adapter and the schema `$id`.
|
|
25
|
+
|
|
14
26
|
## [0.4.0]
|
|
15
27
|
|
|
16
28
|
### Added
|
|
@@ -16,7 +16,7 @@ This adds `Signed-off-by: Your Name <you@example.com>`. PRs without DCO sign-off
|
|
|
16
16
|
|
|
17
17
|
### Spec changes (normative text)
|
|
18
18
|
|
|
19
|
-
Changes to `spec/trace-v0.
|
|
19
|
+
Changes to `spec/trace-v0.2.md` that affect what implementations must do.
|
|
20
20
|
|
|
21
21
|
1. Open a GitHub issue using the **Spec change proposal** template. Describe the problem, the proposed change, and the spec section affected.
|
|
22
22
|
2. Allow 5 business days for comment. Changes touching wire format, cryptographic algorithms, or Trust Record required fields require 14 days.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentrust-trace
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: TRACE v0.1 — hardware-attested governance records for AI agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/agentrust-io/trace-spec
|
|
6
6
|
Project-URL: Repository, https://github.com/agentrust-io/trace-spec
|
|
@@ -45,7 +45,7 @@ Description-Content-Type: text/markdown
|
|
|
45
45
|
</p>
|
|
46
46
|
|
|
47
47
|
<p align="center">
|
|
48
|
-
<a href="spec/trace-v0.
|
|
48
|
+
<a href="spec/trace-v0.2.md">Specification</a> |
|
|
49
49
|
<a href="schema/trace-claim.json">Schema</a> |
|
|
50
50
|
<a href="examples/">Examples</a> |
|
|
51
51
|
<a href="https://github.com/agentrust-io/trace-registry">Registry</a> |
|
|
@@ -54,7 +54,7 @@ Description-Content-Type: text/markdown
|
|
|
54
54
|
</p>
|
|
55
55
|
|
|
56
56
|
[](LICENSE)
|
|
57
|
-
[](spec/trace-v0.
|
|
57
|
+
[](spec/trace-v0.2.md)
|
|
58
58
|
[](https://pypi.org/project/agentrust-trace/)
|
|
59
59
|
[](https://github.com/agentrust-io/trace-spec/actions/workflows/ci.yml)
|
|
60
60
|
[](https://discord.gg/grgzFEHgkj)
|
|
@@ -88,7 +88,7 @@ signed = sign_record(record, key=signing_key)
|
|
|
88
88
|
| | |
|
|
89
89
|
|---|---|
|
|
90
90
|
| 📖 Full documentation | [trace.agentrust-io.com](https://trace.agentrust-io.com) |
|
|
91
|
-
| 📄 Specification | [spec/trace-v0.
|
|
91
|
+
| 📄 Specification | [spec/trace-v0.2.md](spec/trace-v0.2.md) |
|
|
92
92
|
| 🔍 Schema | [schema/trace-claim.json](schema/trace-claim.json) |
|
|
93
93
|
| 📦 PyPI | [agentrust-trace](https://pypi.org/project/agentrust-trace/) |
|
|
94
94
|
| 🧪 Test suite | [trace-tests](https://github.com/agentrust-io/trace-tests) |
|
|
@@ -125,7 +125,7 @@ TRACE is the evidence format. AGT and cMCP produce and consume Trust Records, so
|
|
|
125
125
|
|
|
126
126
|
### What is the current status of TRACE?
|
|
127
127
|
|
|
128
|
-
The current specification is TRACE v0.
|
|
128
|
+
The current specification is TRACE v0.2, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production.
|
|
129
129
|
|
|
130
130
|
<script type="application/ld+json">
|
|
131
131
|
{
|
|
@@ -177,7 +177,7 @@ The current specification is TRACE v0.1, published with a conformance test suite
|
|
|
177
177
|
"name": "What is the current status of TRACE?",
|
|
178
178
|
"acceptedAnswer": {
|
|
179
179
|
"@type": "Answer",
|
|
180
|
-
"text": "The current specification is TRACE v0.
|
|
180
|
+
"text": "The current specification is TRACE v0.2, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production."
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
]
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
13
|
<p align="center">
|
|
14
|
-
<a href="spec/trace-v0.
|
|
14
|
+
<a href="spec/trace-v0.2.md">Specification</a> |
|
|
15
15
|
<a href="schema/trace-claim.json">Schema</a> |
|
|
16
16
|
<a href="examples/">Examples</a> |
|
|
17
17
|
<a href="https://github.com/agentrust-io/trace-registry">Registry</a> |
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
22
|
[](LICENSE)
|
|
23
|
-
[](spec/trace-v0.
|
|
23
|
+
[](spec/trace-v0.2.md)
|
|
24
24
|
[](https://pypi.org/project/agentrust-trace/)
|
|
25
25
|
[](https://github.com/agentrust-io/trace-spec/actions/workflows/ci.yml)
|
|
26
26
|
[](https://discord.gg/grgzFEHgkj)
|
|
@@ -54,7 +54,7 @@ signed = sign_record(record, key=signing_key)
|
|
|
54
54
|
| | |
|
|
55
55
|
|---|---|
|
|
56
56
|
| 📖 Full documentation | [trace.agentrust-io.com](https://trace.agentrust-io.com) |
|
|
57
|
-
| 📄 Specification | [spec/trace-v0.
|
|
57
|
+
| 📄 Specification | [spec/trace-v0.2.md](spec/trace-v0.2.md) |
|
|
58
58
|
| 🔍 Schema | [schema/trace-claim.json](schema/trace-claim.json) |
|
|
59
59
|
| 📦 PyPI | [agentrust-trace](https://pypi.org/project/agentrust-trace/) |
|
|
60
60
|
| 🧪 Test suite | [trace-tests](https://github.com/agentrust-io/trace-tests) |
|
|
@@ -91,7 +91,7 @@ TRACE is the evidence format. AGT and cMCP produce and consume Trust Records, so
|
|
|
91
91
|
|
|
92
92
|
### What is the current status of TRACE?
|
|
93
93
|
|
|
94
|
-
The current specification is TRACE v0.
|
|
94
|
+
The current specification is TRACE v0.2, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production.
|
|
95
95
|
|
|
96
96
|
<script type="application/ld+json">
|
|
97
97
|
{
|
|
@@ -143,7 +143,7 @@ The current specification is TRACE v0.1, published with a conformance test suite
|
|
|
143
143
|
"name": "What is the current status of TRACE?",
|
|
144
144
|
"acceptedAnswer": {
|
|
145
145
|
"@type": "Answer",
|
|
146
|
-
"text": "The current specification is TRACE v0.
|
|
146
|
+
"text": "The current specification is TRACE v0.2, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production."
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OWASP Agentic AI Top 10 Evidence Cross-walk
|
|
2
2
|
|
|
3
|
-
> **Non-normative.** This document is informative only. Nothing here changes TRACE v0.
|
|
3
|
+
> **Non-normative.** This document is informative only. Nothing here changes TRACE v0.2 schema fields, wire formats, required claims, or conformance requirements. References to "TRACE" mean the TRACE v0.2 Trust Record as defined in [`spec/trace-v0.2.md`](../../spec/trace-v0.2.md).
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
OWASP's Agentic AI Top 10 (ASI01–ASI10) names the principal risk categories for autonomous AI agents. TRACE is an evidence and attestation layer: it does not prevent these risks, but it produces verifiable, hardware-rooted records that support audit, incident review, and governance verification after or during execution.
|
|
10
10
|
|
|
11
|
-
This page answers a concrete question for each OWASP risk: which TRACE Trust Record claims carry relevant evidence, what that evidence actually proves, and where TRACE v0.
|
|
11
|
+
This page answers a concrete question for each OWASP risk: which TRACE Trust Record claims carry relevant evidence, what that evidence actually proves, and where TRACE v0.2 leaves a gap that a future profile would need to close.
|
|
12
12
|
|
|
13
|
-
Field names are exact TRACE v0.
|
|
13
|
+
Field names are exact TRACE v0.2 claim names as specified in §3.1 of the spec. Sub-field references such as `policy.bundle_hash`, `runtime.platform`, and `appraisal.status` refer to the nested fields shown in the §3.2 wire-format example.
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
@@ -23,8 +23,8 @@ Field names are exact TRACE v0.1 claim names as specified in §3.1 of the spec.
|
|
|
23
23
|
| **ASI03: Identity and Privilege Abuse** | `subject`, `cnf`, `signature`, `runtime`, `policy`, `appraisal` | `subject` carries the SPIFFE SVID binding workload identity to a TEE-held key; `cnf` binds the signing key to the TEE via the hardware measurement in `runtime`; `appraisal.status` records the verifier's judgment of the evidence against policy; `policy.bundle_hash` shows what authorization rules were bound. Together these allow a verifier to confirm that the claimed identity corresponded to a genuine, measured workload at record issuance time. | Does not replace IAM or RBAC systems. Does not prove that external permissions granted to the workload were correctly scoped. Does not cover lateral movement or privilege escalation that occurred at infrastructure layers outside the TEE boundary. | Delegation profile fields for scoped credentials, audience restriction, purpose binding, and per-action authorization evidence. |
|
|
24
24
|
| **ASI04: Agentic Supply Chain Vulnerabilities** | `build_provenance`, `model`, `runtime`, `transparency`, `appraisal` | `build_provenance.slsa_level`, `build_provenance.builder`, and `build_provenance.digest` bind build-time provenance to the running workload; `model.weights_digest` and `model.model_id` bind the model artifact; `runtime.measurement` and `runtime.rim_uri` bind the runtime image to vendor-published Reference Integrity Manifests; `transparency` provides an append-only anchor for the full record. | Does not enumerate every transitive dependency. Does not detect malicious code that was present at build time but is not reflected in measurement divergence. Does not prove model behavior is safe -- only that the identified artifact was the one that executed. | Richer AIBOM/SBOM linkage in the `model` sub-claim; vendor platform annexes specifying per-silicon supply-chain appraisal criteria. |
|
|
25
25
|
| **ASI05: Unexpected Code Execution** | `runtime`, `build_provenance`, `tool_transcript`, `policy`, `appraisal` | `runtime.measurement` shows what workload and container digest were loaded; `build_provenance.digest` and `build_provenance.slsa_level` bind the build artifact; `tool_transcript.hash` captures tool invocations at protocol boundaries; `appraisal.status` records whether the verifier accepted the runtime evidence against current RIMs. | Does not prevent code execution. Does not prove no code ran outside the recorded `tool_transcript` scope: inline code execution embedded in the workload binary is not captured at invocation granularity by v0.1 claims. | Tool and code-execution profile: sandbox identity, command execution transcript hash, filesystem and network boundary evidence per invocation. |
|
|
26
|
-
| **ASI06: Memory and Context Poisoning** | `model`, `data_class`, `tool_transcript`, `build_provenance`, `transparency` | `model.model_id` and `model.weights_digest` identify the model artifact; `data_class` records the sensitivity classification applied to inputs and outputs; `tool_transcript.hash` captures context-retrieval calls that crossed an instrumented boundary; `build_provenance.digest` binds the build artifact that includes any vector-store or RAG client code. | TRACE v0.
|
|
27
|
-
| **ASI07: Insecure Inter-Agent Communication** | `subject`, `cnf`, `signature`, `runtime`, `tool_transcript`, `transparency` | `subject` and `cnf` establish and bind workload identity for each participating agent; `signature` (or the enveloping-signature equivalent) proves record integrity; `runtime.measurement` binds the TEE that produced the record; `tool_transcript.hash` anchors the inter-agent call transcript; `transparency` anchors the record in an append-only log accessible to any verifier. | TRACE v0.
|
|
26
|
+
| **ASI06: Memory and Context Poisoning** | `model`, `data_class`, `tool_transcript`, `build_provenance`, `transparency` | `model.model_id` and `model.weights_digest` identify the model artifact; `data_class` records the sensitivity classification applied to inputs and outputs; `tool_transcript.hash` captures context-retrieval calls that crossed an instrumented boundary; `build_provenance.digest` binds the build artifact that includes any vector-store or RAG client code. | TRACE v0.2 does not bind memory snapshots, RAG corpus roots, embedding-store contents, or poisoning scan results. Context provenance -- where retrieved chunks originated and whether they were validated -- is not a v0.1 claim. | Memory and RAG profile: context source hashes, corpus Merkle roots, poisoning scan status, namespace and tenant boundary evidence. |
|
|
27
|
+
| **ASI07: Insecure Inter-Agent Communication** | `subject`, `cnf`, `signature`, `runtime`, `tool_transcript`, `transparency` | `subject` and `cnf` establish and bind workload identity for each participating agent; `signature` (or the enveloping-signature equivalent) proves record integrity; `runtime.measurement` binds the TEE that produced the record; `tool_transcript.hash` anchors the inter-agent call transcript; `transparency` anchors the record in an append-only log accessible to any verifier. | TRACE v0.2 does not define a normative A2A profile. Message-level semantic validation, nonce binding per message, and delegation chain records across multiple hops are not v0.1 claims. | A2A profile: peer agent identity, per-message hash, audience restriction, nonce, delegation chain, and protocol version binding. |
|
|
28
28
|
| **ASI08: Cascading Failures** | `tool_transcript`, `transparency`, `subject`, `appraisal`, `policy` | `tool_transcript.hash` and `tool_transcript.call_count` provide a bounded activity record for post-incident traceability; `subject` identifies the workload at each hop where a Trust Record was issued; `appraisal.status` and `appraisal.verifier` record the verification outcome; `policy.bundle_hash` shows what controls were bound; `transparency` provides an auditable anchor for reconstructing the sequence of records. | Does not itself detect cascade conditions, stop propagation, or reconstruct full multi-agent lineage unless every participating agent issued Trust Records and those records are correlated at analysis time. Lineage reconstruction requires out-of-band tooling. | Workflow provenance profile: parent/child record references, propagation lineage identifiers, blast-radius counters, and circuit-breaker event records. |
|
|
29
29
|
| **ASI09: Human-Agent Trust Exploitation** | `tool_transcript`, `policy`, `data_class`, `transparency`, `appraisal` | `tool_transcript.hash` records the set of actions the agent took at protocol boundaries; `policy.bundle_hash` and `policy.enforcement_mode` show what rules were in force; `data_class` records the sensitivity class of data involved; `appraisal.status` provides the verifier's assessment; `transparency` anchors the record for independent audit. Collectively these support a post-incident review of what the agent was authorized to do and what it did. | Does not prove what a human was shown in the UI, whether the explanation was accurate, or whether informed consent was obtained. Does not detect social engineering at the human layer. | HITL (human-in-the-loop) evidence profile: approval record, reviewer identity, hash of displayed risk summary, and human decision evidence bound into the Trust Record. |
|
|
30
30
|
| **ASI10: Rogue Agents** | `subject`, `runtime`, `cnf`, `signature`, `policy`, `tool_transcript`, `appraisal`, `transparency` | The full v0.1 claim set combines hardware-bound identity (`subject`, `cnf`), measured execution environment (`runtime`), policy binding (`policy.bundle_hash`, `policy.enforcement_mode`), tool activity (`tool_transcript`), verifier judgment (`appraisal.status`), and transparency anchoring (`transparency`) into one signed, independently verifiable record. A verifier can confirm that the agent presenting this record ran as a measured, policy-bound workload with a TEE-rooted identity at the stated time. | Does not determine behavioral intent. Does not detect rogue behavior that remained within the boundary of recorded claims. A workload can issue a valid Trust Record and still behave in ways the record does not constrain at inference time. | Behavioral integrity profile: declared capability manifest hash, expected tool set, execution baseline hash, and anomaly or quarantine event records. |
|
|
@@ -39,7 +39,7 @@ The table above surfaces per-risk scope boundaries. These apply across all ten r
|
|
|
39
39
|
|
|
40
40
|
**TRACE does not adjudicate model behavior.** As stated in §2.4 of the spec, prompt injection, jailbreaks, hallucination, and alignment drift are permanent scope boundaries. TRACE proves what model artifact executed and what countermeasures were bound; it does not evaluate whether the model's output was correct or intended.
|
|
41
41
|
|
|
42
|
-
**TRACE v0.
|
|
42
|
+
**TRACE v0.2 does not cover intra-binary execution.** `tool_transcript` captures invocations crossing an instrumented protocol boundary (MCP, A2A, or equivalent). Code paths executed inside the deployed binary -- including embedded tool dispatch, in-process memory reads, or direct API calls -- are bound only by `build_provenance` and `model`, not at invocation granularity.
|
|
43
43
|
|
|
44
44
|
**TRACE does not replace IAM, RBAC, or network controls.** `subject` and `cnf` establish and bind workload identity, but the permissions granted to that identity by external systems are outside the Trust Record. A correctly identified workload can still hold excessive privileges.
|
|
45
45
|
|
|
@@ -60,6 +60,6 @@ The MITRE ATLAS cross-walk (a separate v0.2 item) will address tactics and techn
|
|
|
60
60
|
## References
|
|
61
61
|
|
|
62
62
|
- OWASP Agentic AI Top 10: <https://genai.owasp.org/>
|
|
63
|
-
- TRACE v0.
|
|
63
|
+
- TRACE v0.2 specification: [`spec/trace-v0.2.md`](../../spec/trace-v0.2.md)
|
|
64
64
|
- TRACE roadmap: [`ROADMAP.md`](../../ROADMAP.md)
|
|
65
65
|
- MITRE ATLAS: <https://atlas.mitre.org/>
|
|
@@ -60,7 +60,7 @@ A numeric value (0, 1, or 2) that summarizes the strength of the guarantees carr
|
|
|
60
60
|
---
|
|
61
61
|
|
|
62
62
|
**Trust Record**
|
|
63
|
-
A signed JSON document emitted by an AI agent at the end of a governed session. It asserts the agent's identity, model, policy, data class, tool invocations, and (at Level 1+) hardware attestation state. Defined in full in the [TRACE Specification](../spec/trace-v0.
|
|
63
|
+
A signed JSON document emitted by an AI agent at the end of a governed session. It asserts the agent's identity, model, policy, data class, tool invocations, and (at Level 1+) hardware attestation state. Defined in full in the [TRACE Specification](../spec/trace-v0.2.md).
|
|
64
64
|
|
|
65
65
|
---
|
|
66
66
|
|
|
@@ -23,9 +23,9 @@ TRACE defines the format, anchoring protocol, and verification rules for cryptog
|
|
|
23
23
|
|
|
24
24
|
- :material-file-document: **Specification**
|
|
25
25
|
|
|
26
|
-
The normative TRACE v0.
|
|
26
|
+
The normative TRACE v0.2 specification — envelope format, claim types, signing rules, and verification algorithm.
|
|
27
27
|
|
|
28
|
-
[Read the spec →](../spec/trace-v0.
|
|
28
|
+
[Read the spec →](../spec/trace-v0.2.md)
|
|
29
29
|
|
|
30
30
|
- :material-connection: **Integration**
|
|
31
31
|
|
|
@@ -51,7 +51,7 @@ from agentrust_trace import generate_key, sign_record
|
|
|
51
51
|
key = generate_key()
|
|
52
52
|
|
|
53
53
|
record = {
|
|
54
|
-
"eat_profile": "tag:agentrust.
|
|
54
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
55
55
|
"iat": int(time.time()),
|
|
56
56
|
"subject": "spiffe://trust.example.org/agent/my-agent",
|
|
57
57
|
"model": {
|
|
@@ -78,7 +78,7 @@ record = {
|
|
|
78
78
|
"status": "none",
|
|
79
79
|
"verifier": "https://verifier.example.org",
|
|
80
80
|
},
|
|
81
|
-
"transparency": "https://registry.agentrust.
|
|
81
|
+
"transparency": "https://registry.agentrust-io.com/claim/placeholder",
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
signed = sign_record(record, key)
|
|
@@ -103,7 +103,7 @@ from agentrust_trace import load_signing_key, sign_record
|
|
|
103
103
|
key = load_signing_key()
|
|
104
104
|
|
|
105
105
|
record = {
|
|
106
|
-
"eat_profile": "tag:agentrust.
|
|
106
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
107
107
|
"iat": int(time.time()),
|
|
108
108
|
"subject": "spiffe://trust.example.org/agent/my-agent",
|
|
109
109
|
"model": {
|
|
@@ -130,7 +130,7 @@ record = {
|
|
|
130
130
|
"status": "none",
|
|
131
131
|
"verifier": "https://verifier.example.org",
|
|
132
132
|
},
|
|
133
|
-
"transparency": "https://registry.agentrust.
|
|
133
|
+
"transparency": "https://registry.agentrust-io.com/claim/placeholder",
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
signed = sign_record(record, key)
|
|
@@ -197,6 +197,6 @@ For TEE-rooted records (AMD SEV-SNP, Intel TDX, NVIDIA H100), use cMCP as the ru
|
|
|
197
197
|
|
|
198
198
|
## Next steps
|
|
199
199
|
|
|
200
|
-
- [Full Specification](../spec/trace-v0.
|
|
200
|
+
- [Full Specification](../spec/trace-v0.2.md) — all claims, wire formats, conformance
|
|
201
201
|
- [Verification Protocol](verification.md) — five-step offline verification
|
|
202
202
|
- [Schema Reference](schema.md) — JSON Schema with field descriptions
|
|
@@ -6,7 +6,7 @@ JSON Schema for the TRACE v0.1 Trust Record. Source: [`schema/trace-claim.json`]
|
|
|
6
6
|
|
|
7
7
|
| Field | Type | Required | Description |
|
|
8
8
|
|---|---|---|---|
|
|
9
|
-
| `eat_profile` | string | **yes** | EAT profile URI. Must be `tag:agentrust.
|
|
9
|
+
| `eat_profile` | string | **yes** | EAT profile URI. Must be `tag:agentrust-io.com,2026:trace-v0.2` |
|
|
10
10
|
| `iat` | integer | **yes** | Issued-at timestamp (Unix epoch seconds) |
|
|
11
11
|
| `subject` | string | **yes** | Workload identity. SPIFFE SVID (`spiffe://`) or DID (`did:`) |
|
|
12
12
|
| `model` | object | **yes** | Model artifact binding |
|
|
@@ -131,7 +131,7 @@ TRACE v0.1 supports two wire formats:
|
|
|
131
131
|
|
|
132
132
|
```json
|
|
133
133
|
{
|
|
134
|
-
"eat_profile": "tag:agentrust.
|
|
134
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
135
135
|
"iat": 1750676142,
|
|
136
136
|
"subject": "spiffe://trust.example.org/agent/payments-processor/prod",
|
|
137
137
|
"model": {
|
|
@@ -164,7 +164,7 @@ TRACE v0.1 supports two wire formats:
|
|
|
164
164
|
"status": "affirming",
|
|
165
165
|
"verifier": "https://trust-authority.example.org"
|
|
166
166
|
},
|
|
167
|
-
"transparency": "https://registry.agentrust.
|
|
167
|
+
"transparency": "https://registry.agentrust-io.com/claim/trace-2026-06-23T09:15:42Z",
|
|
168
168
|
"cnf": {
|
|
169
169
|
"jwk": { "kty": "EC", "crv": "P-256", "x": "...", "y": "..." }
|
|
170
170
|
},
|
|
@@ -26,7 +26,7 @@ Level 0 records are signed with an Ed25519 key held by the agent process. There
|
|
|
26
26
|
|
|
27
27
|
```json
|
|
28
28
|
{
|
|
29
|
-
"eat_profile": "tag:agentrust.
|
|
29
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
30
30
|
"iat": 1750000000,
|
|
31
31
|
"subject": "spiffe://trust.example.org/agent/my-agent",
|
|
32
32
|
"model": { "provider": "anthropic", "model_id": "claude-sonnet-4-6", "version": "20251001" },
|
|
@@ -35,7 +35,7 @@ Level 0 records are signed with an Ed25519 key held by the agent process. There
|
|
|
35
35
|
"data_class": "internal",
|
|
36
36
|
"build_provenance": { "slsa_level": 1, "digest": "sha256:e5f6..." },
|
|
37
37
|
"appraisal": { "status": "none", "verifier": "https://verifier.example.org" },
|
|
38
|
-
"transparency": "https://registry.agentrust.
|
|
38
|
+
"transparency": "https://registry.agentrust-io.com/claim/placeholder",
|
|
39
39
|
"cnf": { "jwk": { "kty": "OKP", "crv": "Ed25519", "x": "<base64url>" } },
|
|
40
40
|
"signature": "<base64url>"
|
|
41
41
|
}
|
|
@@ -113,6 +113,6 @@ Relying parties set the minimum acceptable level in their Cedar policy. Records
|
|
|
113
113
|
## Related
|
|
114
114
|
|
|
115
115
|
- [Trust Levels in the test suite](https://tests.agentrust-io.com/levels)
|
|
116
|
-
- [TRACE Specification — Section 4: Trust Levels](../spec/trace-v0.
|
|
116
|
+
- [TRACE Specification — Section 4: Trust Levels](../spec/trace-v0.2.md)
|
|
117
117
|
- [Hardware Attestation Platforms](tutorials/hardware-attestation-platforms.md)
|
|
118
118
|
- [Glossary](glossary.md)
|
|
@@ -41,7 +41,7 @@ measurement = "sha256:" + hashlib.sha256(chain_tip.encode()).hexdigest()
|
|
|
41
41
|
|
|
42
42
|
# Build the record manually
|
|
43
43
|
record = TrustRecord(
|
|
44
|
-
eat_profile="tag:agentrust.
|
|
44
|
+
eat_profile="tag:agentrust-io.com,2026:trace-v0.2",
|
|
45
45
|
iat=int(time.time()),
|
|
46
46
|
subject=agent_did,
|
|
47
47
|
model=ModelInfo(provider="anthropic", model_id="claude-sonnet-4-6", version="20251001"),
|
|
@@ -50,8 +50,8 @@ record = TrustRecord(
|
|
|
50
50
|
data_class="confidential",
|
|
51
51
|
tool_transcript=ToolTranscript(hash=transcript_hash, call_count=len(audit_entries)),
|
|
52
52
|
build_provenance=BuildProvenance(slsa_level=2, digest="sha256:e5f6..."),
|
|
53
|
-
appraisal=Appraisal(status="affirming", verifier="https://agentrust.
|
|
54
|
-
transparency="https://registry.agentrust.
|
|
53
|
+
appraisal=Appraisal(status="affirming", verifier="https://agentrust-io.com/verify"),
|
|
54
|
+
transparency="https://registry.agentrust-io.com/claim/...",
|
|
55
55
|
cnf=ConfirmationKey(jwk=JWK(kty="OKP", crv="Ed25519", x="...")),
|
|
56
56
|
)
|
|
57
57
|
```
|
|
@@ -73,7 +73,7 @@ adapter = TraceAGTAdapter(
|
|
|
73
73
|
model_id="claude-sonnet-4-6",
|
|
74
74
|
model_version="20251001",
|
|
75
75
|
build_provenance_digest="sha256:e5f6a7b8...",
|
|
76
|
-
transparency="https://registry.agentrust.
|
|
76
|
+
transparency="https://registry.agentrust-io.com/claim/...",
|
|
77
77
|
)
|
|
78
78
|
|
|
79
79
|
# 2. Collect AGT session data after govern_fn.close_session()
|
|
@@ -31,7 +31,7 @@ It holds the canonical URI of the registry entry — the URL at which any verifi
|
|
|
31
31
|
Example value from the spec:
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
https://registry.agentrust.
|
|
34
|
+
https://registry.agentrust-io.com/claim/trace-2026-06-23T09:15:42Z-f2a8d1
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
---
|
|
@@ -47,7 +47,7 @@ from agentrust_trace.sign import generate_key, sign_record
|
|
|
47
47
|
key = generate_key()
|
|
48
48
|
|
|
49
49
|
record = {
|
|
50
|
-
"eat_profile": "tag:agentrust.
|
|
50
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
51
51
|
"iat": int(time.time()),
|
|
52
52
|
"subject": "spiffe://example.org/agent/my-agent",
|
|
53
53
|
"model": {
|
{agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/hardware-attestation-platforms.md
RENAMED
|
@@ -46,7 +46,7 @@ from agentrust_trace import generate_key, sign_record
|
|
|
46
46
|
key = generate_key()
|
|
47
47
|
|
|
48
48
|
record = {
|
|
49
|
-
"eat_profile": "tag:agentrust.
|
|
49
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
50
50
|
"iat": int(time.time()),
|
|
51
51
|
"subject": "spiffe://dev.example.org/agent/local-test",
|
|
52
52
|
"runtime": {
|
{agentrust_trace-0.4.0 → agentrust_trace-0.5.0}/docs/tutorials/signing-your-first-trust-record.md
RENAMED
|
@@ -53,7 +53,7 @@ Every TRACE Trust Record requires these top-level fields. There are no optional
|
|
|
53
53
|
import time
|
|
54
54
|
|
|
55
55
|
record = {
|
|
56
|
-
"eat_profile": "tag:agentrust.
|
|
56
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
57
57
|
"iat": int(time.time()),
|
|
58
58
|
"subject": "spiffe://trust.example.org/agent/my-agent",
|
|
59
59
|
"model": {
|
|
@@ -78,7 +78,7 @@ record = {
|
|
|
78
78
|
"status": "none",
|
|
79
79
|
"verifier": "https://verifier.example.org",
|
|
80
80
|
},
|
|
81
|
-
"transparency": "https://registry.agentrust.
|
|
81
|
+
"transparency": "https://registry.agentrust-io.com/claim/placeholder",
|
|
82
82
|
}
|
|
83
83
|
```
|
|
84
84
|
|
|
@@ -127,7 +127,7 @@ Run schema validation before trusting any claims in the record. A record that pa
|
|
|
127
127
|
Every TRACE record carries an `eat_profile` field that identifies the spec version. Reject records with an unexpected profile before parsing their claims:
|
|
128
128
|
|
|
129
129
|
```python
|
|
130
|
-
EXPECTED_PROFILE = "tag:agentrust.
|
|
130
|
+
EXPECTED_PROFILE = "tag:agentrust-io.com,2026:trace-v0.2"
|
|
131
131
|
|
|
132
132
|
if record.get("eat_profile") != EXPECTED_PROFILE:
|
|
133
133
|
raise ValueError(f"unexpected eat_profile: {record.get('eat_profile')!r}")
|
|
@@ -222,7 +222,7 @@ def verify_trust_record(path: str, trusted_jwk: dict) -> dict:
|
|
|
222
222
|
raise RuntimeError(f"record malformed: {e}")
|
|
223
223
|
|
|
224
224
|
# 3. Profile check
|
|
225
|
-
if record.get("eat_profile") != "tag:agentrust.
|
|
225
|
+
if record.get("eat_profile") != "tag:agentrust-io.com,2026:trace-v0.2":
|
|
226
226
|
raise ValueError(f"unexpected eat_profile: {record.get('eat_profile')!r}")
|
|
227
227
|
|
|
228
228
|
# 4. Appraisal
|
|
@@ -4,7 +4,7 @@ TRACE Trust Records are independently verifiable offline — no call to the issu
|
|
|
4
4
|
|
|
5
5
|
## Five-step verification
|
|
6
6
|
|
|
7
|
-
This is the normative protocol from [§3.3 of the spec](../spec/trace-v0.
|
|
7
|
+
This is the normative protocol from [§3.3 of the spec](../spec/trace-v0.2.md).
|
|
8
8
|
|
|
9
9
|
### Step 1 — Parse the envelope
|
|
10
10
|
|
|
@@ -49,7 +49,7 @@ print("✓ Signature valid")
|
|
|
49
49
|
### Step 4 — Check the EAT profile
|
|
50
50
|
|
|
51
51
|
```python
|
|
52
|
-
assert record["eat_profile"] == "tag:agentrust.
|
|
52
|
+
assert record["eat_profile"] == "tag:agentrust-io.com,2026:trace-v0.2", "Unknown profile"
|
|
53
53
|
print("✓ eat_profile correct")
|
|
54
54
|
```
|
|
55
55
|
|
|
@@ -6,7 +6,7 @@ only: the JSON snippets are not TRACE Trust Records and are not validated by
|
|
|
6
6
|
`schema/trace-claim.json`.
|
|
7
7
|
|
|
8
8
|
The examples exercise the boundary from
|
|
9
|
-
[spec section 3.3.2](../../spec/trace-v0.
|
|
9
|
+
[spec section 3.3.2](../../spec/trace-v0.2.md#332-action-receipts-for-embodied-workflows-informative):
|
|
10
10
|
|
|
11
11
|
1. session evidence verifies the Trust Record and committed transcript;
|
|
12
12
|
2. action issuance evidence verifies that a consequential action request was
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"eat_profile": "tag:agentrust.
|
|
2
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
3
3
|
"iat": 1750676142,
|
|
4
4
|
"subject": "spiffe://trust.example.org/agent/payments-processor/prod",
|
|
5
5
|
"model": {
|
|
6
6
|
"provider": "anthropic",
|
|
7
7
|
"model_id": "claude-sonnet-4-6",
|
|
8
8
|
"version": "20251001",
|
|
9
|
-
"aibom_uri": "https://registry.agentrust.
|
|
9
|
+
"aibom_uri": "https://registry.agentrust-io.com/aibom/claude-sonnet-4-6-20251001"
|
|
10
10
|
},
|
|
11
11
|
"runtime": {
|
|
12
12
|
"platform": "amd-sev-snp",
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"bundle_hash": "sha256:b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3",
|
|
20
20
|
"enforcement_mode": "enforce",
|
|
21
21
|
"version": "1.2.0",
|
|
22
|
-
"policy_uri": "https://registry.agentrust.
|
|
22
|
+
"policy_uri": "https://registry.agentrust-io.com/policy/payments-v1.2.0"
|
|
23
23
|
},
|
|
24
24
|
"data_class": "confidential",
|
|
25
25
|
"tool_transcript": {
|
|
26
26
|
"hash": "sha256:d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5",
|
|
27
27
|
"call_count": 3,
|
|
28
|
-
"transcript_uri": "https://registry.agentrust.
|
|
28
|
+
"transcript_uri": "https://registry.agentrust-io.com/transcript/amd-2026-06-23T09:15:42Z"
|
|
29
29
|
},
|
|
30
30
|
"build_provenance": {
|
|
31
31
|
"slsa_level": 2,
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"policy_ref": "https://trust-authority.example.org/policy/sev-snp-agent-v1",
|
|
40
40
|
"timestamp": 1750676145
|
|
41
41
|
},
|
|
42
|
-
"transparency": "https://registry.agentrust.
|
|
42
|
+
"transparency": "https://registry.agentrust-io.com/claim/trace-2026-06-23T09:15:42Z-f2a8d1",
|
|
43
43
|
"cnf": {
|
|
44
44
|
"jwk": {
|
|
45
45
|
"kty": "EC",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"eat_profile": "tag:agentrust.
|
|
2
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
3
3
|
"iat": 1750676200,
|
|
4
4
|
"subject": "spiffe://trust.example.org/agent/document-processor/staging",
|
|
5
5
|
"model": {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"model_id": "llama-3.3-70b-instruct",
|
|
8
8
|
"version": "3.3",
|
|
9
9
|
"weights_digest": "sha256:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2",
|
|
10
|
-
"aibom_uri": "https://registry.agentrust.
|
|
10
|
+
"aibom_uri": "https://registry.agentrust-io.com/aibom/llama-3.3-70b-20260101"
|
|
11
11
|
},
|
|
12
12
|
"runtime": {
|
|
13
13
|
"platform": "intel-tdx",
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"bundle_hash": "sha256:c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4",
|
|
21
21
|
"enforcement_mode": "enforce",
|
|
22
22
|
"version": "2.0.1",
|
|
23
|
-
"policy_uri": "https://registry.agentrust.
|
|
23
|
+
"policy_uri": "https://registry.agentrust-io.com/policy/document-v2.0.1"
|
|
24
24
|
},
|
|
25
25
|
"data_class": "internal",
|
|
26
26
|
"tool_transcript": {
|
|
27
27
|
"hash": "sha256:f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7",
|
|
28
28
|
"call_count": 7,
|
|
29
|
-
"transcript_uri": "https://registry.agentrust.
|
|
29
|
+
"transcript_uri": "https://registry.agentrust-io.com/transcript/tdx-2026-06-23T09:16:40Z"
|
|
30
30
|
},
|
|
31
31
|
"build_provenance": {
|
|
32
32
|
"slsa_level": 3,
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"policy_ref": "https://api.trustedservices.intel.com/policy/tdx-agent-v1",
|
|
41
41
|
"timestamp": 1750676203
|
|
42
42
|
},
|
|
43
|
-
"transparency": "https://registry.agentrust.
|
|
43
|
+
"transparency": "https://registry.agentrust-io.com/claim/trace-2026-06-23T09:16:40Z-a9b0c1",
|
|
44
44
|
"cnf": {
|
|
45
45
|
"jwk": {
|
|
46
46
|
"kty": "EC",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"eat_profile": "tag:agentrust.
|
|
2
|
+
"eat_profile": "tag:agentrust-io.com,2026:trace-v0.2",
|
|
3
3
|
"iat": 1750676300,
|
|
4
4
|
"subject": "spiffe://trust.example.org/agent/image-analysis/prod",
|
|
5
5
|
"model": {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"model_id": "claude-opus-4-8",
|
|
8
8
|
"version": "20260601",
|
|
9
9
|
"weights_digest": "sha256:d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5",
|
|
10
|
-
"aibom_uri": "https://registry.agentrust.
|
|
10
|
+
"aibom_uri": "https://registry.agentrust-io.com/aibom/claude-opus-4-8-20260601"
|
|
11
11
|
},
|
|
12
12
|
"runtime": {
|
|
13
13
|
"platform": "nvidia-h100",
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"bundle_hash": "sha256:e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6",
|
|
21
21
|
"enforcement_mode": "enforce",
|
|
22
22
|
"version": "1.0.0",
|
|
23
|
-
"policy_uri": "https://registry.agentrust.
|
|
23
|
+
"policy_uri": "https://registry.agentrust-io.com/policy/image-analysis-v1.0.0"
|
|
24
24
|
},
|
|
25
25
|
"data_class": "restricted",
|
|
26
26
|
"tool_transcript": {
|
|
27
27
|
"hash": "sha256:a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
|
|
28
28
|
"call_count": 1,
|
|
29
|
-
"transcript_uri": "https://registry.agentrust.
|
|
29
|
+
"transcript_uri": "https://registry.agentrust-io.com/transcript/h100-2026-06-23T09:18:20Z"
|
|
30
30
|
},
|
|
31
31
|
"build_provenance": {
|
|
32
32
|
"slsa_level": 2,
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"policy_ref": "https://nras.nvidia.com/policy/h100-cc-agent-v1",
|
|
41
41
|
"timestamp": 1750676304
|
|
42
42
|
},
|
|
43
|
-
"transparency": "https://registry.agentrust.
|
|
43
|
+
"transparency": "https://registry.agentrust-io.com/claim/trace-2026-06-23T09:18:20Z-b2c3d4",
|
|
44
44
|
"cnf": {
|
|
45
45
|
"jwk": {
|
|
46
46
|
"kty": "EC",
|