agentrust-trace 0.2.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 (98) 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.2.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.2.0 → agentrust_trace-0.4.0}/.github/workflows/contributor-check.yml +1 -1
  6. agentrust_trace-0.4.0/.github/workflows/docs.yml +74 -0
  7. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/.github/workflows/publish.yml +5 -5
  8. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/.github/workflows/require-maintainer-approval.yml +1 -1
  9. {agentrust_trace-0.2.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.2.0 → agentrust_trace-0.4.0}/ADOPTERS.md +1 -1
  12. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/CHANGELOG.md +88 -63
  13. agentrust_trace-0.4.0/CNAME +1 -0
  14. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/MAINTAINERS.md +1 -1
  15. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/NOTICE +2 -2
  16. agentrust_trace-0.4.0/PKG-INFO +189 -0
  17. agentrust_trace-0.4.0/PRIVACY.md +9 -0
  18. agentrust_trace-0.4.0/README.md +155 -0
  19. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/ROADMAP.md +48 -48
  20. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/docs/assets/icon.svg +5 -3
  21. agentrust_trace-0.4.0/docs/assets/og.png +0 -0
  22. agentrust_trace-0.4.0/docs/glossary.md +68 -0
  23. agentrust_trace-0.4.0/docs/index.md +80 -0
  24. agentrust_trace-0.4.0/docs/integration/agt.md +139 -0
  25. agentrust_trace-0.4.0/docs/integration/cmcp.md +148 -0
  26. agentrust_trace-0.4.0/docs/platforms/amd-sev-snp.md +65 -0
  27. agentrust_trace-0.4.0/docs/platforms/index.md +34 -0
  28. agentrust_trace-0.4.0/docs/platforms/intel-tdx.md +68 -0
  29. agentrust_trace-0.4.0/docs/platforms/nvidia-h100.md +76 -0
  30. agentrust_trace-0.4.0/docs/quickstart.md +202 -0
  31. agentrust_trace-0.4.0/docs/schema.md +175 -0
  32. agentrust_trace-0.4.0/docs/stylesheets/extra.css +247 -0
  33. agentrust_trace-0.4.0/docs/trust-levels.md +118 -0
  34. agentrust_trace-0.4.0/docs/tutorials/agt-adapter.md +183 -0
  35. agentrust_trace-0.4.0/docs/tutorials/anchoring-to-the-registry.md +172 -0
  36. agentrust_trace-0.4.0/docs/tutorials/hardware-attestation-platforms.md +212 -0
  37. agentrust_trace-0.4.0/docs/tutorials/integrating-with-cmcp.md +171 -0
  38. agentrust_trace-0.4.0/docs/tutorials/signing-your-first-trust-record.md +191 -0
  39. agentrust_trace-0.4.0/docs/tutorials/verifying-a-trust-record.md +259 -0
  40. agentrust_trace-0.4.0/docs/tutorials/verifying-the-audit-chain.md +251 -0
  41. agentrust_trace-0.4.0/docs/verification.md +160 -0
  42. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/examples/README.md +3 -0
  43. agentrust_trace-0.4.0/examples/action-receipts/README.md +111 -0
  44. agentrust_trace-0.4.0/examples/action-receipts/conformance/01-valid-controller-accepted.json +52 -0
  45. agentrust_trace-0.4.0/examples/action-receipts/conformance/02-valid-controller-rejected.json +52 -0
  46. agentrust_trace-0.4.0/examples/action-receipts/conformance/03-missing-required-receipt.json +35 -0
  47. agentrust_trace-0.4.0/examples/action-receipts/conformance/04-signature-key-mismatch.json +54 -0
  48. agentrust_trace-0.4.0/examples/action-receipts/conformance/05-action-ref-mismatch.json +54 -0
  49. agentrust_trace-0.4.0/examples/action-receipts/conformance/06-stale-receipt.json +54 -0
  50. agentrust_trace-0.4.0/examples/action-receipts/conformance/07-receipt-chain-gap.json +54 -0
  51. agentrust_trace-0.4.0/examples/action-receipts/conformance/08-same-party-self-report.json +54 -0
  52. agentrust_trace-0.4.0/examples/action-receipts/conformance/09-unsupported-physical-completion.json +54 -0
  53. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/examples/amd-sev-snp.json +2 -2
  54. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/examples/intel-tdx.json +2 -2
  55. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/examples/nvidia-h100.json +2 -2
  56. agentrust_trace-0.4.0/examples/tpm2.json +52 -0
  57. agentrust_trace-0.4.0/mkdocs.yml +212 -0
  58. agentrust_trace-0.4.0/overrides/main.html +68 -0
  59. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/pyproject.toml +2 -1
  60. agentrust_trace-0.4.0/requirements-docs.txt +7 -0
  61. agentrust_trace-0.4.0/robots.txt +35 -0
  62. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/schema/trace-claim.json +285 -266
  63. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/spec/trace-v0.1.md +75 -2
  64. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/src/agentrust_trace/__init__.py +55 -48
  65. agentrust_trace-0.4.0/src/agentrust_trace/adapters/__init__.py +5 -0
  66. agentrust_trace-0.4.0/src/agentrust_trace/adapters/agt.py +197 -0
  67. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/src/agentrust_trace/models.py +166 -130
  68. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/src/agentrust_trace/schema/trace-v0.1.json +285 -266
  69. agentrust_trace-0.4.0/src/agentrust_trace/sign.py +223 -0
  70. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/src/agentrust_trace/validate.py +1 -1
  71. agentrust_trace-0.4.0/tests/test_action_receipt_fixtures.py +166 -0
  72. agentrust_trace-0.4.0/tests/test_agt_adapter.py +224 -0
  73. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/tests/test_models.py +187 -133
  74. agentrust_trace-0.4.0/tests/test_sign.py +307 -0
  75. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/tests/test_validate.py +88 -73
  76. agentrust_trace-0.2.0/.github/workflows/docs.yml +0 -43
  77. agentrust_trace-0.2.0/PKG-INFO +0 -167
  78. agentrust_trace-0.2.0/README.md +0 -134
  79. agentrust_trace-0.2.0/docs/stylesheets/extra.css +0 -24
  80. agentrust_trace-0.2.0/mkdocs.yml +0 -125
  81. agentrust_trace-0.2.0/requirements-docs.txt +0 -6
  82. agentrust_trace-0.2.0/src/agentrust_trace/sign.py +0 -80
  83. agentrust_trace-0.2.0/tests/test_sign.py +0 -121
  84. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  85. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  86. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/.github/ISSUE_TEMPLATE/spec_change.md +0 -0
  87. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  88. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/ANTITRUST.md +0 -0
  89. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/CHARTER.md +0 -0
  90. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/CODE_OF_CONDUCT.md +0 -0
  91. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/CONTRIBUTING.md +0 -0
  92. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/GOVERNANCE.md +0 -0
  93. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/LICENSE +0 -0
  94. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/LIMITATIONS.md +0 -0
  95. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/SECURITY.md +0 -0
  96. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/docs/crosswalks/owasp-agentic-top-10.md +0 -0
  97. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/src/agentrust_trace/py.typed +0 -0
  98. {agentrust_trace-0.2.0 → agentrust_trace-0.4.0}/tests/__init__.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
@@ -0,0 +1,74 @@
1
+ name: Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "docs/**"
8
+ - "spec/**"
9
+ - "overrides/**"
10
+ - "robots.txt"
11
+ - "mkdocs.yml"
12
+ - "requirements-docs.txt"
13
+ - "README.md"
14
+ - "CHANGELOG.md"
15
+ - "CONTRIBUTING.md"
16
+ - "GOVERNANCE.md"
17
+ - "ROADMAP.md"
18
+ - "LIMITATIONS.md"
19
+ - "CNAME"
20
+ workflow_dispatch:
21
+
22
+ permissions:
23
+ contents: write
24
+
25
+ concurrency:
26
+ group: docs-deploy
27
+ cancel-in-progress: false
28
+
29
+ jobs:
30
+ deploy:
31
+ name: Build and deploy docs
32
+ runs-on: ubuntu-latest
33
+
34
+ steps:
35
+ - uses: actions/checkout@v7
36
+ with:
37
+ fetch-depth: 0
38
+
39
+ - uses: actions/setup-python@v6
40
+ with:
41
+ python-version: "3.11"
42
+ cache: pip
43
+
44
+ - name: Install docs dependencies
45
+ run: |
46
+ pip install -r requirements-docs.txt
47
+ pip install -e ".[dev]"
48
+
49
+ - name: Configure git for gh-deploy
50
+ run: |
51
+ git config user.name "github-actions[bot]"
52
+ git config user.email "github-actions[bot]@users.noreply.github.com"
53
+
54
+ - name: Assemble docs build directory
55
+ run: |
56
+ BUILD=.docs_build
57
+ mkdir -p $BUILD
58
+
59
+ if [ -d docs ]; then cp -r docs $BUILD/docs; fi
60
+ if [ -d spec ]; then cp -r spec $BUILD/spec; fi
61
+ if [ -d examples ]; then cp -r examples $BUILD/examples; fi
62
+
63
+ for fname in README.md CHANGELOG.md CONTRIBUTING.md GOVERNANCE.md ROADMAP.md LIMITATIONS.md CNAME robots.txt; do
64
+ if [ -f "$fname" ]; then cp "$fname" "$BUILD/$fname"; fi
65
+ done
66
+
67
+ echo "Build dir contains $(find $BUILD -type f | wc -l) files"
68
+
69
+ - name: Generate build config
70
+ run: |
71
+ sed 's|^docs_dir: \.$|docs_dir: .docs_build|' mkdocs.yml > .mkdocs_build.yml
72
+
73
+ - name: Build and deploy to GitHub Pages
74
+ run: mkdocs gh-deploy --force --clean --config-file .mkdocs_build.yml
@@ -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
@@ -8,4 +8,4 @@ To add your organization, open a pull request editing this file.
8
8
 
9
9
  | Organization | Usage |
10
10
  |---|---|
11
- | Opaque Systems | Founding contributor — developed the initial specification, reference implementation, and TRACE registry infrastructure |
11
+ | OPAQUE Systems | Founding contributor — developed the initial specification, reference implementation, and TRACE registry infrastructure |
@@ -1,63 +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.1.0] — 2026-06-23
13
-
14
- Initial public draft. Announced at Confidential Computing Summit, San Francisco.
15
-
16
- ### Specification
17
-
18
- - Trust Record logical schema (§3.1): `subject`, `model`, `runtime`, `policy`, `data_class`, `tool_transcript`, `build_provenance`, `appraisal`, `transparency`, `cnf`
19
- - Wire format (§3.2): EAT/JWT and CBOR-COSE envelopes; profile URI `tag:agentrust.io,2026:trace-v0.1`
20
- - Signing and key management (§3.2.1): ES256/ES384/EdDSA; four-layer key hierarchy; hash agility; revocation
21
- - Verification protocol (§3.3): five-step offline verification, no issuer callback
22
- - Standards composition (§4): RATS/EAT, SLSA, SPIFFE, SCITT, EAR, MCP, A2A, AIBOM, C2PA
23
- - Hardware roots (§4.2): NVIDIA H100/Blackwell, Intel TDX, AMD SEV-SNP, Azure MAA, GCP Confidential Space, AWS Nitro
24
- - Reference implementation (§5): cMCP Phase 1–3 roadmap
25
-
26
- ### Schema
27
-
28
- - `schema/trace-claim.json`: JSON Schema (draft/2020-12) for Trust Record validation
29
-
30
- ### Examples
31
-
32
- - `examples/amd-sev-snp.json`: AMD SEV-SNP Trust Record
33
- - `examples/intel-tdx.json`: Intel TDX Trust Record
34
- - `examples/nvidia-h100.json`: NVIDIA H100 Confidential Computing Trust Record
35
-
36
- ### Open questions
37
-
38
- Seven open questions requiring founding-member input before v0.2 are documented in §7 of the spec.
39
-
40
- ---
41
-
42
- ## [0.2.0] — TBD
43
-
44
- ### Specification
45
-
46
- - Extend `subject` field to accept DID URIs (any `did:` method) in addition to SPIFFE SVIDs.
47
- Previously `^spiffe://` only; now `^(spiffe://|did:)`. Additive, backward-compatible.
48
- DID-native runtimes (e.g. AGT `did:mesh:` identities) no longer require a parallel SPIFFE identity.
49
- Closes: microsoft/agent-governance-toolkit ADR-0032, agentrust-io/trace-spec#35.
50
-
51
- ### Schema
52
-
53
- - `schema/trace-claim.json`: `subject` pattern updated to `^(spiffe://|did:)`, description updated.
54
-
55
- ### Reference Implementation
56
-
57
- - `TrustRecord.subject` pattern updated to `r"^(spiffe://|did:)"`.
58
-
59
- ---
60
-
61
- ## Upcoming
62
-
63
- 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.
@@ -0,0 +1 @@
1
+ trace.agentrust-io.com
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Name | Affiliation | GitHub | Contact |
6
6
  |---|---|---|---|
7
- | Imran Siddique | OPAQUE Systems | @imraan | imran.siddique@opaque.co |
7
+ | Imran Siddique | OPAQUE Systems | @imraan | maintainers@agentrust.io |
8
8
 
9
9
  The Project Lead has final decision authority on specification changes, AAIF/CoSAI submission scope, conformance requirements, and Maintainer appointments.
10
10
 
@@ -1,7 +1,7 @@
1
1
  TRACE
2
- Copyright 2026 AgentTrust Authors
2
+ Copyright 2026 AgenTrust Authors
3
3
 
4
- This product includes software developed by the AgentTrust project
4
+ This product includes software developed by the AgenTrust project
5
5
  (https://github.com/agentrust-io/trace-spec).
6
6
 
7
7
  ---
@@ -0,0 +1,189 @@
1
+ Metadata-Version: 2.4
2
+ Name: agentrust-trace
3
+ Version: 0.4.0
4
+ Summary: TRACE v0.1 — hardware-attested governance records for AI agents
5
+ Project-URL: Homepage, https://github.com/agentrust-io/trace-spec
6
+ Project-URL: Repository, https://github.com/agentrust-io/trace-spec
7
+ Project-URL: Issues, https://github.com/agentrust-io/trace-spec/issues
8
+ Project-URL: Changelog, https://github.com/agentrust-io/trace-spec/blob/main/CHANGELOG.md
9
+ License: Apache-2.0
10
+ License-File: LICENSE
11
+ License-File: NOTICE
12
+ Keywords: ai-governance,attestation,confidential-computing,eat,rats,tee,trace
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: Apache Software License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Classifier: Topic :: Security
21
+ Classifier: Typing :: Typed
22
+ Requires-Python: >=3.11
23
+ Requires-Dist: cryptography>=42.0
24
+ Requires-Dist: jsonschema>=4.20
25
+ Requires-Dist: pydantic>=2.0
26
+ Requires-Dist: rfc8785>=0.1.2
27
+ Provides-Extra: dev
28
+ Requires-Dist: mypy>=1.10; extra == 'dev'
29
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
30
+ Requires-Dist: pytest>=8.0; extra == 'dev'
31
+ Requires-Dist: ruff>=0.4; extra == 'dev'
32
+ Requires-Dist: types-jsonschema; extra == 'dev'
33
+ Description-Content-Type: text/markdown
34
+
35
+ <p align="center">
36
+ <img src="docs/assets/icon.svg" width="96" height="96" alt="TRACE"/>
37
+ </p>
38
+
39
+ # TRACE: Trust Runtime Attestation and Compliance Evidence
40
+
41
+ <p align="center">
42
+ <a href="https://trace.agentrust-io.com">
43
+ <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">
44
+ </a>
45
+ </p>
46
+
47
+ <p align="center">
48
+ <a href="spec/trace-v0.1.md">Specification</a> &nbsp;|&nbsp;
49
+ <a href="schema/trace-claim.json">Schema</a> &nbsp;|&nbsp;
50
+ <a href="examples/">Examples</a> &nbsp;|&nbsp;
51
+ <a href="https://github.com/agentrust-io/trace-registry">Registry</a> &nbsp;|&nbsp;
52
+ <a href="https://github.com/agentrust-io/trace-tests">Test Suite</a> &nbsp;|&nbsp;
53
+ <a href="https://github.com/agentrust-io/cmcp">Reference Impl</a>
54
+ </p>
55
+
56
+ [![License: CC BY 4.0](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg)](LICENSE)
57
+ [![Spec](https://img.shields.io/badge/Spec-v0.1-0ea5e9)](spec/trace-v0.1.md)
58
+ [![PyPI](https://img.shields.io/pypi/v/agentrust-trace)](https://pypi.org/project/agentrust-trace/)
59
+ [![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)
60
+ [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=flat)](https://discord.gg/grgzFEHgkj)
61
+
62
+ > **Developer Preview.** Launching at Confidential Computing Summit, June 23 2026.
63
+
64
+ 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.
65
+
66
+ 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.
67
+
68
+ ## Quick start
69
+
70
+ ```bash
71
+ pip install agentrust-trace
72
+ ```
73
+
74
+ ```python
75
+ from agentrust_trace import TrustRecord, sign_record
76
+
77
+ record = TrustRecord(
78
+ subject="spiffe://trust.example.org/agent/payments-processor",
79
+ model_id="claude-sonnet-4-6",
80
+ platform="amd-sev-snp",
81
+ policy_hash="sha256:b2c3d4...",
82
+ )
83
+ signed = sign_record(record, key=signing_key)
84
+ ```
85
+
86
+ ## Resources
87
+
88
+ | | |
89
+ |---|---|
90
+ | 📖 Full documentation | [trace.agentrust-io.com](https://trace.agentrust-io.com) |
91
+ | 📄 Specification | [spec/trace-v0.1.md](spec/trace-v0.1.md) |
92
+ | 🔍 Schema | [schema/trace-claim.json](schema/trace-claim.json) |
93
+ | 📦 PyPI | [agentrust-trace](https://pypi.org/project/agentrust-trace/) |
94
+ | 🧪 Test suite | [trace-tests](https://github.com/agentrust-io/trace-tests) |
95
+ | 🗂 Registry | [trace-registry](https://github.com/agentrust-io/trace-registry) |
96
+ | 🔗 Reference implementation | [cmcp](https://github.com/agentrust-io/cmcp) |
97
+ | 💬 Discussions | [GitHub Discussions](https://github.com/orgs/agentrust-io/discussions) |
98
+ | 📋 Changelog | [CHANGELOG.md](CHANGELOG.md) |
99
+
100
+ ## Standards alignment
101
+
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
+
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
+
187
+ ## Contributing
188
+
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