agentrust-trace 0.3.0__tar.gz → 0.4.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.
Files changed (92) hide show
  1. agentrust_trace-0.4.0/.github/CODEOWNERS +5 -0
  2. agentrust_trace-0.4.0/.github/dependabot.yml +19 -0
  3. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/workflows/ci.yml +2 -2
  4. agentrust_trace-0.4.0/.github/workflows/codeql.yml +43 -0
  5. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/workflows/contributor-check.yml +1 -1
  6. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/workflows/docs.yml +4 -2
  7. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/workflows/publish.yml +5 -5
  8. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/workflows/require-maintainer-approval.yml +1 -1
  9. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/workflows/sbom.yml +2 -2
  10. agentrust_trace-0.4.0/.github/workflows/scorecard.yml +40 -0
  11. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/CHANGELOG.md +88 -76
  12. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/PKG-INFO +84 -1
  13. agentrust_trace-0.4.0/PRIVACY.md +9 -0
  14. agentrust_trace-0.4.0/README.md +155 -0
  15. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/ROADMAP.md +48 -48
  16. agentrust_trace-0.4.0/docs/assets/og.png +0 -0
  17. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/index.md +7 -0
  18. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/quickstart.md +4 -0
  19. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/schema.md +175 -165
  20. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/trust-levels.md +4 -0
  21. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/verification.md +33 -2
  22. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/examples/README.md +3 -0
  23. agentrust_trace-0.4.0/examples/action-receipts/README.md +111 -0
  24. agentrust_trace-0.4.0/examples/action-receipts/conformance/01-valid-controller-accepted.json +52 -0
  25. agentrust_trace-0.4.0/examples/action-receipts/conformance/02-valid-controller-rejected.json +52 -0
  26. agentrust_trace-0.4.0/examples/action-receipts/conformance/03-missing-required-receipt.json +35 -0
  27. agentrust_trace-0.4.0/examples/action-receipts/conformance/04-signature-key-mismatch.json +54 -0
  28. agentrust_trace-0.4.0/examples/action-receipts/conformance/05-action-ref-mismatch.json +54 -0
  29. agentrust_trace-0.4.0/examples/action-receipts/conformance/06-stale-receipt.json +54 -0
  30. agentrust_trace-0.4.0/examples/action-receipts/conformance/07-receipt-chain-gap.json +54 -0
  31. agentrust_trace-0.4.0/examples/action-receipts/conformance/08-same-party-self-report.json +54 -0
  32. agentrust_trace-0.4.0/examples/action-receipts/conformance/09-unsupported-physical-completion.json +54 -0
  33. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/mkdocs.yml +33 -0
  34. agentrust_trace-0.4.0/overrides/main.html +68 -0
  35. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/pyproject.toml +1 -1
  36. agentrust_trace-0.4.0/requirements-docs.txt +7 -0
  37. agentrust_trace-0.4.0/robots.txt +35 -0
  38. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/schema/trace-claim.json +285 -266
  39. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/spec/trace-v0.1.md +39 -1
  40. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/__init__.py +55 -53
  41. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/models.py +166 -143
  42. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/schema/trace-v0.1.json +285 -266
  43. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/sign.py +2 -2
  44. agentrust_trace-0.4.0/tests/test_action_receipt_fixtures.py +166 -0
  45. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/tests/test_models.py +187 -146
  46. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/tests/test_sign.py +10 -0
  47. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/tests/test_validate.py +88 -73
  48. agentrust_trace-0.3.0/README.md +0 -72
  49. agentrust_trace-0.3.0/requirements-docs.txt +0 -6
  50. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  51. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  52. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/ISSUE_TEMPLATE/spec_change.md +0 -0
  53. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  54. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/ADOPTERS.md +0 -0
  55. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/ANTITRUST.md +0 -0
  56. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/CHARTER.md +0 -0
  57. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/CNAME +0 -0
  58. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/CODE_OF_CONDUCT.md +0 -0
  59. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/CONTRIBUTING.md +0 -0
  60. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/GOVERNANCE.md +0 -0
  61. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/LICENSE +0 -0
  62. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/LIMITATIONS.md +0 -0
  63. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/MAINTAINERS.md +0 -0
  64. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/NOTICE +0 -0
  65. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/SECURITY.md +0 -0
  66. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/assets/icon.svg +0 -0
  67. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/crosswalks/owasp-agentic-top-10.md +0 -0
  68. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/glossary.md +0 -0
  69. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/integration/agt.md +0 -0
  70. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/integration/cmcp.md +0 -0
  71. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/platforms/amd-sev-snp.md +0 -0
  72. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/platforms/index.md +0 -0
  73. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/platforms/intel-tdx.md +0 -0
  74. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/platforms/nvidia-h100.md +0 -0
  75. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/stylesheets/extra.css +0 -0
  76. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/tutorials/agt-adapter.md +0 -0
  77. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/tutorials/anchoring-to-the-registry.md +0 -0
  78. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/tutorials/hardware-attestation-platforms.md +0 -0
  79. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/tutorials/integrating-with-cmcp.md +0 -0
  80. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/tutorials/signing-your-first-trust-record.md +0 -0
  81. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/tutorials/verifying-a-trust-record.md +0 -0
  82. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/docs/tutorials/verifying-the-audit-chain.md +0 -0
  83. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/examples/amd-sev-snp.json +0 -0
  84. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/examples/intel-tdx.json +0 -0
  85. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/examples/nvidia-h100.json +0 -0
  86. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/examples/tpm2.json +0 -0
  87. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/adapters/__init__.py +0 -0
  88. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/adapters/agt.py +0 -0
  89. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/py.typed +0 -0
  90. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/src/agentrust_trace/validate.py +0 -0
  91. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/tests/__init__.py +0 -0
  92. {agentrust_trace-0.3.0 → agentrust_trace-0.4.0}/tests/test_agt_adapter.py +0 -0
@@ -0,0 +1,5 @@
1
+ # Default owners for all files
2
+ * @agentrust-io/maintainers
3
+
4
+ # CI/CD workflow changes
5
+ .github/workflows/ @agentrust-io/maintainers
@@ -0,0 +1,19 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "pip"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ day: "monday"
8
+ open-pull-requests-limit: 5
9
+ ignore:
10
+ - dependency-name: "*"
11
+ update-types:
12
+ - "version-update:semver-major"
13
+
14
+ - package-ecosystem: "github-actions"
15
+ directory: "/"
16
+ schedule:
17
+ interval: "weekly"
18
+ day: "monday"
19
+ open-pull-requests-limit: 5
@@ -16,9 +16,9 @@ jobs:
16
16
  python-version: ["3.11", "3.12"]
17
17
 
18
18
  steps:
19
- - uses: actions/checkout@v4
19
+ - uses: actions/checkout@v7
20
20
 
21
- - uses: actions/setup-python@v4
21
+ - uses: actions/setup-python@v6
22
22
  with:
23
23
  python-version: ${{ matrix.python-version }}
24
24
 
@@ -0,0 +1,43 @@
1
+ name: CodeQL
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+ schedule:
11
+ - cron: '15 3 * * 0'
12
+
13
+ permissions:
14
+ actions: read
15
+ contents: read
16
+ security-events: write
17
+
18
+ env:
19
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
20
+
21
+ jobs:
22
+ analyze:
23
+ name: Analyze (python)
24
+ runs-on: ubuntu-latest
25
+
26
+ steps:
27
+ - name: Checkout repository
28
+ uses: actions/checkout@v7
29
+
30
+ - name: Initialize CodeQL
31
+ uses: github/codeql-action/init@v4
32
+ with:
33
+ languages: python
34
+ queries: +security-extended
35
+
36
+ - name: Autobuild
37
+ uses: github/codeql-action/autobuild@v4
38
+
39
+ - name: Perform CodeQL Analysis
40
+ uses: github/codeql-action/analyze@v4
41
+ continue-on-error: true
42
+ with:
43
+ category: /language:python
@@ -27,7 +27,7 @@ jobs:
27
27
  github.actor != 'imran-siddique'
28
28
  steps:
29
29
  - name: Checkout org action
30
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
30
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
31
31
  with:
32
32
  repository: agentrust-io/.github
33
33
  ref: main
@@ -6,6 +6,8 @@ on:
6
6
  paths:
7
7
  - "docs/**"
8
8
  - "spec/**"
9
+ - "overrides/**"
10
+ - "robots.txt"
9
11
  - "mkdocs.yml"
10
12
  - "requirements-docs.txt"
11
13
  - "README.md"
@@ -30,7 +32,7 @@ jobs:
30
32
  runs-on: ubuntu-latest
31
33
 
32
34
  steps:
33
- - uses: actions/checkout@v4
35
+ - uses: actions/checkout@v7
34
36
  with:
35
37
  fetch-depth: 0
36
38
 
@@ -58,7 +60,7 @@ jobs:
58
60
  if [ -d spec ]; then cp -r spec $BUILD/spec; fi
59
61
  if [ -d examples ]; then cp -r examples $BUILD/examples; fi
60
62
 
61
- for fname in README.md CHANGELOG.md CONTRIBUTING.md GOVERNANCE.md ROADMAP.md LIMITATIONS.md CNAME; do
63
+ for fname in README.md CHANGELOG.md CONTRIBUTING.md GOVERNANCE.md ROADMAP.md LIMITATIONS.md CNAME robots.txt; do
62
64
  if [ -f "$fname" ]; then cp "$fname" "$BUILD/$fname"; fi
63
65
  done
64
66
 
@@ -16,9 +16,9 @@ jobs:
16
16
  build:
17
17
  runs-on: ubuntu-latest
18
18
  steps:
19
- - uses: actions/checkout@v4
19
+ - uses: actions/checkout@v7
20
20
 
21
- - uses: actions/setup-python@v4
21
+ - uses: actions/setup-python@v6
22
22
  with:
23
23
  python-version: "3.11"
24
24
 
@@ -27,7 +27,7 @@ jobs:
27
27
  pip install hatchling
28
28
  python -m hatchling build
29
29
 
30
- - uses: actions/upload-artifact@v4
30
+ - uses: actions/upload-artifact@v7
31
31
  with:
32
32
  name: dist
33
33
  path: dist/
@@ -37,9 +37,9 @@ jobs:
37
37
  runs-on: ubuntu-latest
38
38
  environment: pypi
39
39
  steps:
40
- - uses: actions/download-artifact@v4
40
+ - uses: actions/download-artifact@v8
41
41
  with:
42
42
  name: dist
43
43
  path: dist/
44
44
 
45
- - uses: pypa/gh-action-pypi-publish@release/v1
45
+ - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
@@ -22,7 +22,7 @@ jobs:
22
22
  if: github.event.pull_request.base.ref == 'main'
23
23
  steps:
24
24
  - name: Check for maintainer approval
25
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
25
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
26
26
  with:
27
27
  script: |
28
28
  const MAINTAINERS = ['imran-siddique'];
@@ -17,14 +17,14 @@ jobs:
17
17
  sbom:
18
18
  runs-on: ubuntu-latest
19
19
  steps:
20
- - uses: actions/checkout@v4
20
+ - uses: actions/checkout@v7
21
21
  - name: Generate SBOM
22
22
  uses: anchore/sbom-action@v0
23
23
  with:
24
24
  format: spdx-json
25
25
  output-file: sbom.spdx.json
26
26
  - name: Upload SBOM artifact
27
- uses: actions/upload-artifact@v4
27
+ uses: actions/upload-artifact@v7
28
28
  with:
29
29
  name: sbom
30
30
  path: sbom.spdx.json
@@ -0,0 +1,40 @@
1
+ name: OpenSSF Scorecard
2
+
3
+ on:
4
+ branch_protection_rule:
5
+ schedule:
6
+ - cron: '30 4 * * 1'
7
+ push:
8
+ branches:
9
+ - main
10
+
11
+ permissions: read-all
12
+
13
+ jobs:
14
+ scorecard:
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ security-events: write
18
+ id-token: write
19
+ contents: read
20
+ actions: read
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v7
24
+ with:
25
+ persist-credentials: false
26
+ fetch-depth: 0
27
+
28
+ - name: Run Scorecard
29
+ uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
30
+ with:
31
+ results_file: scorecard-results.sarif
32
+ results_format: sarif
33
+ # publish_results requires a public repo; flip to true after the
34
+ # 2026-06-23 public launch.
35
+ publish_results: false
36
+
37
+ - name: Upload SARIF
38
+ uses: github/codeql-action/upload-sarif@v4
39
+ with:
40
+ sarif_file: scorecard-results.sarif
@@ -1,76 +1,88 @@
1
- # Changelog
2
-
3
- All notable changes to the TRACE specification will be documented here.
4
-
5
- Format: [Semantic Versioning](https://semver.org/). Spec versions follow `MAJOR.MINOR.PATCH`:
6
- - **MAJOR**: breaking changes to wire format or required Trust Record fields
7
- - **MINOR**: new optional fields, new platform profiles, new conformance levels
8
- - **PATCH**: editorial fixes, clarifications, non-normative additions
9
-
10
- ---
11
-
12
- ## [0.3.0] — 2026-06-30
13
-
14
- ### Security
15
-
16
- - `verify_record` now requires an explicit trusted key. Self-verification from the embedded `cnf.jwk` is no longer the default; use `allow_embedded_key=True` to opt in.
17
- - Verification enforces freshness (`iat` / `max_age_seconds`, default 24h) and an optional `expected_nonce`. JWK `kty` / `crv` are validated.
18
-
19
- ### Breaking
20
-
21
- - **BREAKING:** Canonicalization is now RFC 8785 (JCS). Trust records are NOT cross-verifiable with 0.2.0 (the prior `json.dumps` canonicalization was non-conformant).
22
-
23
- ---
24
-
25
- ## [0.1.0] — 2026-06-23
26
-
27
- Initial public draft. Announced at Confidential Computing Summit, San Francisco.
28
-
29
- ### Specification
30
-
31
- - Trust Record logical schema (§3.1): `subject`, `model`, `runtime`, `policy`, `data_class`, `tool_transcript`, `build_provenance`, `appraisal`, `transparency`, `cnf`
32
- - Wire format (§3.2): EAT/JWT and CBOR-COSE envelopes; profile URI `tag:agentrust.io,2026:trace-v0.1`
33
- - Signing and key management (§3.2.1): ES256/ES384/EdDSA; four-layer key hierarchy; hash agility; revocation
34
- - Verification protocol (§3.3): five-step offline verification, no issuer callback
35
- - Standards composition (§4): RATS/EAT, SLSA, SPIFFE, SCITT, EAR, MCP, A2A, AIBOM, C2PA
36
- - Hardware roots (§4.2): NVIDIA H100/Blackwell, Intel TDX, AMD SEV-SNP, Azure MAA, GCP Confidential Space, AWS Nitro
37
- - Reference implementation (§5): cMCP Phase 1–3 roadmap
38
-
39
- ### Schema
40
-
41
- - `schema/trace-claim.json`: JSON Schema (draft/2020-12) for Trust Record validation
42
-
43
- ### Examples
44
-
45
- - `examples/amd-sev-snp.json`: AMD SEV-SNP Trust Record
46
- - `examples/intel-tdx.json`: Intel TDX Trust Record
47
- - `examples/nvidia-h100.json`: NVIDIA H100 Confidential Computing Trust Record
48
-
49
- ### Open questions
50
-
51
- Seven open questions requiring community input before v0.2 are documented in §7 of the spec.
52
-
53
- ---
54
-
55
- ## [0.2.0] — TBD
56
-
57
- ### Specification
58
-
59
- - Extend `subject` field to accept DID URIs (any `did:` method) in addition to SPIFFE SVIDs.
60
- Previously `^spiffe://` only; now `^(spiffe://|did:)`. Additive, backward-compatible.
61
- DID-native runtimes (e.g. AGT `did:mesh:` identities) no longer require a parallel SPIFFE identity.
62
- Closes: microsoft/agent-governance-toolkit ADR-0032, agentrust-io/trace-spec#35.
63
-
64
- ### Schema
65
-
66
- - `schema/trace-claim.json`: `subject` pattern updated to `^(spiffe://|did:)`, description updated.
67
-
68
- ### Reference Implementation
69
-
70
- - `TrustRecord.subject` pattern updated to `r"^(spiffe://|did:)"`.
71
-
72
- ---
73
-
74
- ## Upcoming
75
-
76
- See [ROADMAP.md](ROADMAP.md) for planned changes in v0.2 and v1.0.
1
+ # Changelog
2
+
3
+ All notable changes to the TRACE specification will be documented here.
4
+
5
+ Format: [Semantic Versioning](https://semver.org/). Spec versions follow `MAJOR.MINOR.PATCH`:
6
+ - **MAJOR**: breaking changes to wire format or required Trust Record fields
7
+ - **MINOR**: new optional fields, new platform profiles, new conformance levels
8
+ - **PATCH**: editorial fixes, clarifications, non-normative additions
9
+
10
+ ---
11
+
12
+ ## [Unreleased]
13
+
14
+ ## [0.4.0]
15
+
16
+ ### Added
17
+
18
+ - **`azure-cvm-sev-snp` platform** — Azure confidential VMs run AMD SEV-SNP behind a Hyper-V paravisor: the SNP report is read from the vTPM (the guest does not control `REPORT_DATA`), so the runtime binding rides a vTPM AK-signed quote rather than the SNP `report_data`. Given its own `runtime.platform` value (distinct from `amd-sev-snp`) so a consumer keying on `runtime.platform` knows the root of trust is vTPM-rooted, not direct-silicon. Added to the `RuntimeInfo` model and the JSON schema enum. Hardware-validated on a live Azure SEV-SNP VM via cMCP.
19
+
20
+ - `delegation` (optional object): the A2A profile delegation-link block, carrying `parent_record_hash` (digest of the parent hop's Trust Record) and `credential_id` (the delegation credential this hop acted under). A chain of records linked this way forms an offline-verifiable delegation DAG. Backward-compatible: existing records without `delegation` remain valid. This is a MINOR (additive) change and the foundation of the forthcoming A2A profile; A2A is now stable at v1.x, clearing the prior blocker.
21
+
22
+ ---
23
+
24
+ ## [0.3.0] — 2026-06-30
25
+
26
+ ### Security
27
+
28
+ - `verify_record` now requires an explicit trusted key. Self-verification from the embedded `cnf.jwk` is no longer the default; use `allow_embedded_key=True` to opt in.
29
+ - Verification enforces freshness (`iat` / `max_age_seconds`, default 24h) and an optional `expected_nonce`. JWK `kty` / `crv` are validated.
30
+
31
+ ### Breaking
32
+
33
+ - **BREAKING:** Canonicalization is now RFC 8785 (JCS). Trust records are NOT cross-verifiable with 0.2.0 (the prior `json.dumps` canonicalization was non-conformant).
34
+
35
+ ---
36
+
37
+ ## [0.1.0] 2026-06-23
38
+
39
+ Initial public draft. Announced at Confidential Computing Summit, San Francisco.
40
+
41
+ ### Specification
42
+
43
+ - Trust Record logical schema (§3.1): `subject`, `model`, `runtime`, `policy`, `data_class`, `tool_transcript`, `build_provenance`, `appraisal`, `transparency`, `cnf`
44
+ - Wire format (§3.2): EAT/JWT and CBOR-COSE envelopes; profile URI `tag:agentrust.io,2026:trace-v0.1`
45
+ - Signing and key management (§3.2.1): ES256/ES384/EdDSA; four-layer key hierarchy; hash agility; revocation
46
+ - Verification protocol (§3.3): five-step offline verification, no issuer callback
47
+ - Standards composition (§4): RATS/EAT, SLSA, SPIFFE, SCITT, EAR, MCP, A2A, AIBOM, C2PA
48
+ - Hardware roots (§4.2): NVIDIA H100/Blackwell, Intel TDX, AMD SEV-SNP, Azure MAA, GCP Confidential Space, AWS Nitro
49
+ - Reference implementation (§5): cMCP Phase 1–3 roadmap
50
+
51
+ ### Schema
52
+
53
+ - `schema/trace-claim.json`: JSON Schema (draft/2020-12) for Trust Record validation
54
+
55
+ ### Examples
56
+
57
+ - `examples/amd-sev-snp.json`: AMD SEV-SNP Trust Record
58
+ - `examples/intel-tdx.json`: Intel TDX Trust Record
59
+ - `examples/nvidia-h100.json`: NVIDIA H100 Confidential Computing Trust Record
60
+
61
+ ### Open questions
62
+
63
+ Seven open questions requiring community input before v0.2 are documented in §7 of the spec.
64
+
65
+ ---
66
+
67
+ ## [0.2.0] — TBD
68
+
69
+ ### Specification
70
+
71
+ - Extend `subject` field to accept DID URIs (any `did:` method) in addition to SPIFFE SVIDs.
72
+ Previously `^spiffe://` only; now `^(spiffe://|did:)`. Additive, backward-compatible.
73
+ DID-native runtimes (e.g. AGT `did:mesh:` identities) no longer require a parallel SPIFFE identity.
74
+ Closes: microsoft/agent-governance-toolkit ADR-0032, agentrust-io/trace-spec#35.
75
+
76
+ ### Schema
77
+
78
+ - `schema/trace-claim.json`: `subject` pattern updated to `^(spiffe://|did:)`, description updated.
79
+
80
+ ### Reference Implementation
81
+
82
+ - `TrustRecord.subject` pattern updated to `r"^(spiffe://|did:)"`.
83
+
84
+ ---
85
+
86
+ ## Upcoming
87
+
88
+ See [ROADMAP.md](ROADMAP.md) for planned changes in v0.2 and v1.0.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentrust-trace
3
- Version: 0.3.0
3
+ Version: 0.4.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
@@ -101,6 +101,89 @@ signed = sign_record(record, key=signing_key)
101
101
 
102
102
  Targeting the [Agentic AI Foundation (AAIF)](https://agenticai.foundation) at the Linux Foundation. Active standardization track in [CoSAI WS4](https://github.com/oasis-open-projects/coalition-for-secure-ai). Builds on [RFC 9711 (EAT)](https://www.rfc-editor.org/rfc/rfc9711), [RFC 9334 (RATS)](https://www.rfc-editor.org/rfc/rfc9334), and SCITT draft-22.
103
103
 
104
+ ## Frequently asked questions
105
+
106
+ ### What is TRACE?
107
+
108
+ TRACE (Trust Runtime Attestation and Compliance Evidence) is an open specification for hardware-attested AI agent governance records. It defines the record format, the anchoring protocol, and the verification rules for cryptographic evidence that an AI agent ran under a specific policy, in a verified hardware environment, on a given data class, invoking identified tools.
109
+
110
+ ### What does a TRACE Trust Record prove?
111
+
112
+ A single signed Trust Record answers, in a form any third party can verify without trusting the operator: what model ran, where it ran, under which policy, what data class it touched, which tools were called, and whether the record is independently anchored to a SCITT transparency ledger.
113
+
114
+ ### What standards is TRACE built on?
115
+
116
+ TRACE builds on open IETF and IRTF standards: RFC 9711 (CBOR Web Token / EAT) for the claim envelope, RFC 9334 (RATS) for the attester, verifier, and relying-party roles, and the SCITT draft for transparency-ledger anchoring. It is designed for CoSAI WS4 interoperability.
117
+
118
+ ### How do I create and verify a Trust Record?
119
+
120
+ Install the Python library with `pip install agentrust-trace`, sign a record with `TrustRecord.sign(claims, signing_key)`, anchor it to a SCITT ledger with `record.anchor()`, and check it with `record.verify(verifying_key)`.
121
+
122
+ ### How does TRACE relate to AGT and cMCP?
123
+
124
+ TRACE is the evidence format. AGT and cMCP produce and consume Trust Records, so you can connect them into an end-to-end agent governance pipeline. See the integration guides for details.
125
+
126
+ ### What is the current status of TRACE?
127
+
128
+ The current specification is TRACE v0.1, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production.
129
+
130
+ <script type="application/ld+json">
131
+ {
132
+ "@context": "https://schema.org",
133
+ "@type": "FAQPage",
134
+ "mainEntity": [
135
+ {
136
+ "@type": "Question",
137
+ "name": "What is TRACE?",
138
+ "acceptedAnswer": {
139
+ "@type": "Answer",
140
+ "text": "TRACE (Trust Runtime Attestation and Compliance Evidence) is an open specification for hardware-attested AI agent governance records. It defines the record format, the anchoring protocol, and the verification rules for cryptographic evidence that an AI agent ran under a specific policy, in a verified hardware environment, on a given data class, invoking identified tools."
141
+ }
142
+ },
143
+ {
144
+ "@type": "Question",
145
+ "name": "What does a TRACE Trust Record prove?",
146
+ "acceptedAnswer": {
147
+ "@type": "Answer",
148
+ "text": "A single signed Trust Record answers, in a form any third party can verify without trusting the operator: what model ran, where it ran, under which policy, what data class it touched, which tools were called, and whether the record is independently anchored to a SCITT transparency ledger."
149
+ }
150
+ },
151
+ {
152
+ "@type": "Question",
153
+ "name": "What standards is TRACE built on?",
154
+ "acceptedAnswer": {
155
+ "@type": "Answer",
156
+ "text": "TRACE builds on open IETF and IRTF standards: RFC 9711 (CBOR Web Token / EAT) for the claim envelope, RFC 9334 (RATS) for the attester, verifier, and relying-party roles, and the SCITT draft for transparency-ledger anchoring. It is designed for CoSAI WS4 interoperability."
157
+ }
158
+ },
159
+ {
160
+ "@type": "Question",
161
+ "name": "How do I create and verify a Trust Record?",
162
+ "acceptedAnswer": {
163
+ "@type": "Answer",
164
+ "text": "Install the Python library with pip install agentrust-trace, sign a record with TrustRecord.sign(claims, signing_key), anchor it to a SCITT ledger with record.anchor(), and check it with record.verify(verifying_key)."
165
+ }
166
+ },
167
+ {
168
+ "@type": "Question",
169
+ "name": "How does TRACE relate to AGT and cMCP?",
170
+ "acceptedAnswer": {
171
+ "@type": "Answer",
172
+ "text": "TRACE is the evidence format. AGT and cMCP produce and consume Trust Records, so you can connect them into an end-to-end agent governance pipeline. See the integration guides for details."
173
+ }
174
+ },
175
+ {
176
+ "@type": "Question",
177
+ "name": "What is the current status of TRACE?",
178
+ "acceptedAnswer": {
179
+ "@type": "Answer",
180
+ "text": "The current specification is TRACE v0.1, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production."
181
+ }
182
+ }
183
+ ]
184
+ }
185
+ </script>
186
+
104
187
  ## Contributing
105
188
 
106
189
  See [CONTRIBUTING.md](CONTRIBUTING.md) and [GOVERNANCE.md](GOVERNANCE.md). All contributors must agree to the [ANTITRUST.md](ANTITRUST.md) policy.
@@ -0,0 +1,9 @@
1
+ # Privacy
2
+
3
+ agentrust-trace (the TRACE SDK) collects and transmits no personal data.
4
+
5
+ It runs locally as a Python library. It processes only the inputs you give it, entirely on your machine, and sends no telemetry, analytics, or usage data to agentrust-io, OPAQUE, or any third party. There is no account, login, or tracking, and no cookies or background network calls.
6
+
7
+ Any network activity is user-initiated: anchoring a record to a SCITT transparency service happens only when you explicitly call it, to the endpoint you configure.
8
+
9
+ Uninstalling removes it completely. Questions or corrections: https://github.com/agentrust-io/trace-spec/issues
@@ -0,0 +1,155 @@
1
+ <p align="center">
2
+ <img src="docs/assets/icon.svg" width="96" height="96" alt="TRACE"/>
3
+ </p>
4
+
5
+ # TRACE: Trust Runtime Attestation and Compliance Evidence
6
+
7
+ <p align="center">
8
+ <a href="https://trace.agentrust-io.com">
9
+ <img src="https://img.shields.io/badge/%F0%9F%93%96_Full_Documentation-trace.agentrust--io.com-8251EE?style=for-the-badge&logoColor=white" alt="Full Documentation" height="40">
10
+ </a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <a href="spec/trace-v0.1.md">Specification</a> &nbsp;|&nbsp;
15
+ <a href="schema/trace-claim.json">Schema</a> &nbsp;|&nbsp;
16
+ <a href="examples/">Examples</a> &nbsp;|&nbsp;
17
+ <a href="https://github.com/agentrust-io/trace-registry">Registry</a> &nbsp;|&nbsp;
18
+ <a href="https://github.com/agentrust-io/trace-tests">Test Suite</a> &nbsp;|&nbsp;
19
+ <a href="https://github.com/agentrust-io/cmcp">Reference Impl</a>
20
+ </p>
21
+
22
+ [![License: CC BY 4.0](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg)](LICENSE)
23
+ [![Spec](https://img.shields.io/badge/Spec-v0.1-0ea5e9)](spec/trace-v0.1.md)
24
+ [![PyPI](https://img.shields.io/pypi/v/agentrust-trace)](https://pypi.org/project/agentrust-trace/)
25
+ [![CI](https://github.com/agentrust-io/trace-spec/actions/workflows/ci.yml/badge.svg)](https://github.com/agentrust-io/trace-spec/actions/workflows/ci.yml)
26
+ [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=flat)](https://discord.gg/grgzFEHgkj)
27
+
28
+ > **Developer Preview.** Launching at Confidential Computing Summit, June 23 2026.
29
+
30
+ An open specification for hardware-attested AI agent governance records. TRACE defines the format, anchoring protocol, and verification rules for cryptographically provable evidence that an AI agent ran under a specific policy, in a verified hardware environment, on classified data, invoking identified tools — bound into a single signed artifact rooted in silicon attestation.
31
+
32
+ A TRACE Trust Record answers: _what ran, where, under which policy, touching which data, calling which tools_ — in a form any third party can verify without trusting the operator.
33
+
34
+ ## Quick start
35
+
36
+ ```bash
37
+ pip install agentrust-trace
38
+ ```
39
+
40
+ ```python
41
+ from agentrust_trace import TrustRecord, sign_record
42
+
43
+ record = TrustRecord(
44
+ subject="spiffe://trust.example.org/agent/payments-processor",
45
+ model_id="claude-sonnet-4-6",
46
+ platform="amd-sev-snp",
47
+ policy_hash="sha256:b2c3d4...",
48
+ )
49
+ signed = sign_record(record, key=signing_key)
50
+ ```
51
+
52
+ ## Resources
53
+
54
+ | | |
55
+ |---|---|
56
+ | 📖 Full documentation | [trace.agentrust-io.com](https://trace.agentrust-io.com) |
57
+ | 📄 Specification | [spec/trace-v0.1.md](spec/trace-v0.1.md) |
58
+ | 🔍 Schema | [schema/trace-claim.json](schema/trace-claim.json) |
59
+ | 📦 PyPI | [agentrust-trace](https://pypi.org/project/agentrust-trace/) |
60
+ | 🧪 Test suite | [trace-tests](https://github.com/agentrust-io/trace-tests) |
61
+ | 🗂 Registry | [trace-registry](https://github.com/agentrust-io/trace-registry) |
62
+ | 🔗 Reference implementation | [cmcp](https://github.com/agentrust-io/cmcp) |
63
+ | 💬 Discussions | [GitHub Discussions](https://github.com/orgs/agentrust-io/discussions) |
64
+ | 📋 Changelog | [CHANGELOG.md](CHANGELOG.md) |
65
+
66
+ ## Standards alignment
67
+
68
+ Targeting the [Agentic AI Foundation (AAIF)](https://agenticai.foundation) at the Linux Foundation. Active standardization track in [CoSAI WS4](https://github.com/oasis-open-projects/coalition-for-secure-ai). Builds on [RFC 9711 (EAT)](https://www.rfc-editor.org/rfc/rfc9711), [RFC 9334 (RATS)](https://www.rfc-editor.org/rfc/rfc9334), and SCITT draft-22.
69
+
70
+ ## Frequently asked questions
71
+
72
+ ### What is TRACE?
73
+
74
+ TRACE (Trust Runtime Attestation and Compliance Evidence) is an open specification for hardware-attested AI agent governance records. It defines the record format, the anchoring protocol, and the verification rules for cryptographic evidence that an AI agent ran under a specific policy, in a verified hardware environment, on a given data class, invoking identified tools.
75
+
76
+ ### What does a TRACE Trust Record prove?
77
+
78
+ A single signed Trust Record answers, in a form any third party can verify without trusting the operator: what model ran, where it ran, under which policy, what data class it touched, which tools were called, and whether the record is independently anchored to a SCITT transparency ledger.
79
+
80
+ ### What standards is TRACE built on?
81
+
82
+ TRACE builds on open IETF and IRTF standards: RFC 9711 (CBOR Web Token / EAT) for the claim envelope, RFC 9334 (RATS) for the attester, verifier, and relying-party roles, and the SCITT draft for transparency-ledger anchoring. It is designed for CoSAI WS4 interoperability.
83
+
84
+ ### How do I create and verify a Trust Record?
85
+
86
+ Install the Python library with `pip install agentrust-trace`, sign a record with `TrustRecord.sign(claims, signing_key)`, anchor it to a SCITT ledger with `record.anchor()`, and check it with `record.verify(verifying_key)`.
87
+
88
+ ### How does TRACE relate to AGT and cMCP?
89
+
90
+ TRACE is the evidence format. AGT and cMCP produce and consume Trust Records, so you can connect them into an end-to-end agent governance pipeline. See the integration guides for details.
91
+
92
+ ### What is the current status of TRACE?
93
+
94
+ The current specification is TRACE v0.1, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production.
95
+
96
+ <script type="application/ld+json">
97
+ {
98
+ "@context": "https://schema.org",
99
+ "@type": "FAQPage",
100
+ "mainEntity": [
101
+ {
102
+ "@type": "Question",
103
+ "name": "What is TRACE?",
104
+ "acceptedAnswer": {
105
+ "@type": "Answer",
106
+ "text": "TRACE (Trust Runtime Attestation and Compliance Evidence) is an open specification for hardware-attested AI agent governance records. It defines the record format, the anchoring protocol, and the verification rules for cryptographic evidence that an AI agent ran under a specific policy, in a verified hardware environment, on a given data class, invoking identified tools."
107
+ }
108
+ },
109
+ {
110
+ "@type": "Question",
111
+ "name": "What does a TRACE Trust Record prove?",
112
+ "acceptedAnswer": {
113
+ "@type": "Answer",
114
+ "text": "A single signed Trust Record answers, in a form any third party can verify without trusting the operator: what model ran, where it ran, under which policy, what data class it touched, which tools were called, and whether the record is independently anchored to a SCITT transparency ledger."
115
+ }
116
+ },
117
+ {
118
+ "@type": "Question",
119
+ "name": "What standards is TRACE built on?",
120
+ "acceptedAnswer": {
121
+ "@type": "Answer",
122
+ "text": "TRACE builds on open IETF and IRTF standards: RFC 9711 (CBOR Web Token / EAT) for the claim envelope, RFC 9334 (RATS) for the attester, verifier, and relying-party roles, and the SCITT draft for transparency-ledger anchoring. It is designed for CoSAI WS4 interoperability."
123
+ }
124
+ },
125
+ {
126
+ "@type": "Question",
127
+ "name": "How do I create and verify a Trust Record?",
128
+ "acceptedAnswer": {
129
+ "@type": "Answer",
130
+ "text": "Install the Python library with pip install agentrust-trace, sign a record with TrustRecord.sign(claims, signing_key), anchor it to a SCITT ledger with record.anchor(), and check it with record.verify(verifying_key)."
131
+ }
132
+ },
133
+ {
134
+ "@type": "Question",
135
+ "name": "How does TRACE relate to AGT and cMCP?",
136
+ "acceptedAnswer": {
137
+ "@type": "Answer",
138
+ "text": "TRACE is the evidence format. AGT and cMCP produce and consume Trust Records, so you can connect them into an end-to-end agent governance pipeline. See the integration guides for details."
139
+ }
140
+ },
141
+ {
142
+ "@type": "Question",
143
+ "name": "What is the current status of TRACE?",
144
+ "acceptedAnswer": {
145
+ "@type": "Answer",
146
+ "text": "The current specification is TRACE v0.1, published with a conformance test suite. See the Limitations page for scope boundaries before relying on it in production."
147
+ }
148
+ }
149
+ ]
150
+ }
151
+ </script>
152
+
153
+ ## Contributing
154
+
155
+ See [CONTRIBUTING.md](CONTRIBUTING.md) and [GOVERNANCE.md](GOVERNANCE.md). All contributors must agree to the [ANTITRUST.md](ANTITRUST.md) policy.