Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions TRACE-VERSION-NOTE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# The recorded trust records here are TRACE v0.1

Every `*/trace-output/*.json` in this repository, plus
`industrial-embodied-ai/agent-manifest.json`, is the recorded output of a demo run
that happened while the stack emitted **TRACE v0.1**, carrying the profile URI
`tag:agentrust.io,2026:trace-v0.1`.

The stack now emits **v0.2** (`tag:agentrust-io.com,2026:trace-v0.2`). The v0.1
profile URI named a domain this project never controlled, which RFC 4151 does not
permit for a tag URI. See [trace-spec#107](https://github.com/agentrust-io/trace-spec/pull/107).

## Why these were not rewritten

Eleven of them carry a real Ed25519 signature over the record, and the profile URI
sits inside the signed payload. Editing the string while keeping the old signature
would produce a record that **fails verification**: an artifact claiming v0.2 that
no v0.2 verifier would accept. These examples exist to demonstrate verifiable
evidence, so shipping a record that does not verify is worse than shipping one that
is honestly a version behind.

The signing keys are deliberately not committed, so they cannot be re-signed here.

Three further records carry no signature
(`healthcare/{sg-moh,uk-nhs,us-fda-samd}`). Those were held back too, so the
recorded corpus stays internally consistent rather than half-migrated.

## What to do instead

Regenerate them by re-running the examples against the current stack
(`agentrust-trace>=0.5`, cMCP on the v0.2 profile). The regenerated records will
carry the v0.2 profile with a signature that covers it.

Until then, read them as what they are: evidence of runs that happened under v0.1,
still verifiable with `agentrust-trace-tests` 0.3.x.

Documentation in this repository **has** moved to v0.2 and to `agentrust-io.com`,
since nothing signs it.

`industrial-embodied-ai/policy/manifest.json` and `industrial-embodied-ai/catalog.json`
were also held back, for a subtler reason: nothing signs them directly, but their
SHA-256 digests are recorded inside the signed trust record as
`cmcp_policy_bundle_hash` and the catalog hash. Editing a byte of either breaks the
evidence chain even though neither file carries a signature of its own, which
`validate_artifacts.py` catches. They regenerate with the records.
24 changes: 12 additions & 12 deletions ards/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# ARDS — Governed Agent Discovery

This directory shows how agentrust.io participates in the [Agentic Resource Discovery Specification](https://github.com/ards-project/ard-spec) (ARDS v0.9) as a **governed-agent federated registry** — a specialized ARD registry that only indexes agents carrying TRACE-v0.2 runtime governance attestations.
This directory shows how agentrust-io.com participates in the [Agentic Resource Discovery Specification](https://github.com/ards-project/ard-spec) (ARDS v0.9) as a **governed-agent federated registry** — a specialized ARD registry that only indexes agents carrying TRACE-v0.2 runtime governance attestations.

## What's here

| File | Description |
|---|---|
| `ai-catalog.json` | agentrust.io's `/.well-known/ai-catalog.json` — the static catalog that ARD crawlers ingest. Lists cMCP, Agent Manifest SDK, and TRACE Registry as governed MCP servers, plus the agentrust.io registry entry for ARD federation. |
| `ai-catalog.json` | agentrust-io.com's `/.well-known/ai-catalog.json` — the static catalog that ARD crawlers ingest. Lists cMCP, Agent Manifest SDK, and TRACE Registry as governed MCP servers, plus the agentrust-io.com registry entry for ARD federation. |

## The integration point

Expand All @@ -15,25 +15,25 @@ ARDS `trustManifest.attestations` accepts any attestation type. TRACE-v0.2 is a
```json
{
"trustManifest": {
"identity": "spiffe://trust.agentrust.io/gateway/cmcp/prod",
"identity": "spiffe://trust.agentrust-io.com/gateway/cmcp/prod",
"identityType": "spiffe",
"attestations": [
{ "type": "SPIFFE-X509", "uri": "https://agentrust.io/.well-known/spiffe/jwks" },
{ "type": "SPIFFE-X509", "uri": "https://agentrust-io.com/.well-known/spiffe/jwks" },
{
"type": "TRACE-v0.2",
"uri": "https://trace.agentrust.io/records/cmcp-prod-latest",
"uri": "https://trace.agentrust-io.com/records/cmcp-prod-latest",
"digest": "sha256:3f4a8b2c..."
}
]
}
}
```

The `uri` resolves to a TRACE Trust Record — an EAT (RFC 9711) signed JSON artifact containing the Cedar policy hash, TEE measurement, and tool transcript hash. The `digest` is the SHA-256 of that record. Both fields allow an ARD registry or orchestrator to verify the governance claim offline, without calling agentrust.io.
The `uri` resolves to a TRACE Trust Record — an EAT (RFC 9711) signed JSON artifact containing the Cedar policy hash, TEE measurement, and tool transcript hash. The `digest` is the SHA-256 of that record. Both fields allow an ARD registry or orchestrator to verify the governance claim offline, without calling agentrust-io.com.

## Filtering for governed agents in ARD search

Any ARD registry that ingests the agentrust.io catalog will make this filter work:
Any ARD registry that ingests the agentrust-io.com catalog will make this filter work:

```json
{
Expand All @@ -48,19 +48,19 @@ Any ARD registry that ingests the agentrust.io catalog will make this filter wor

This returns only agents with hardware-verifiable runtime governance records — across any registry in the federation that has ingested TRACE-attested entries.

## agentrust.io as a federated governed-agent registry
## agentrust-io.com as a federated governed-agent registry

The last entry in `ai-catalog.json` registers the agentrust.io registry itself:
The last entry in `ai-catalog.json` registers the agentrust-io.com registry itself:

```json
{
"identifier": "urn:ai:agentrust.io:registry:governed-agents",
"identifier": "urn:ai:agentrust-io.com:registry:governed-agents",
"type": "application/ai-registry+json",
"url": "https://registry.agentrust.io/api/v1/"
"url": "https://registry.agentrust-io.com/api/v1/"
}
```

ARD registries discovering this entry can route queries with `trustManifest.attestations.type: TRACE-v0.2` to `registry.agentrust.io` via federation referrals, delegating governed-agent discovery without replicating the trust logic.
ARD registries discovering this entry can route queries with `trustManifest.attestations.type: TRACE-v0.2` to `registry.agentrust-io.com` via federation referrals, delegating governed-agent discovery without replicating the trust logic.

## TRACE spec

Expand Down
50 changes: 25 additions & 25 deletions ards/ai-catalog.json
Original file line number Diff line number Diff line change
@@ -1,104 +1,104 @@
{
"$comment": "Reference: agentrust.io governed-agent catalog. All entries carry TRACE-v0.2 runtime governance attestations alongside SPIFFE X.509 identity.",
"$comment": "Reference: agentrust-io.com governed-agent catalog. All entries carry TRACE-v0.2 runtime governance attestations alongside SPIFFE X.509 identity.",
"specVersion": "1.0",
"host": {
"displayName": "agentrust.io",
"identifier": "agentrust.io",
"documentationUrl": "https://agentrust.io/docs",
"logoUrl": "https://agentrust.io/assets/logo.svg",
"displayName": "agentrust-io.com",
"identifier": "agentrust-io.com",
"documentationUrl": "https://agentrust-io.com/docs",
"logoUrl": "https://agentrust-io.com/assets/logo.svg",
"trustManifest": {
"identity": "spiffe://trust.agentrust.io/registry/global",
"identity": "spiffe://trust.agentrust-io.com/registry/global",
"identityType": "spiffe",
"attestations": [
{
"type": "SPIFFE-X509",
"uri": "https://agentrust.io/.well-known/spiffe/jwks"
"uri": "https://agentrust-io.com/.well-known/spiffe/jwks"
}
]
}
},
"entries": [
{
"identifier": "urn:ai:agentrust.io:governed:cmcp-gateway",
"identifier": "urn:ai:agentrust-io.com:governed:cmcp-gateway",
"displayName": "Confidential MCP Gateway (cMCP)",
"description": "Hardware-attested policy enforcement gateway for MCP tool calls. Cedar policies evaluated inside AMD SEV-SNP / Intel TDX TEE. Every session produces a TRACE Trust Record independently verifiable offline.",
"type": "application/mcp-server+json",
"url": "https://api.agentrust.io/mcp/cmcp",
"url": "https://api.agentrust-io.com/mcp/cmcp",
"version": "0.2.0",
"tags": ["governance", "confidential-computing", "policy-enforcement", "mcp", "tee"],
"capabilities": ["PolicyEnforcement", "HardwareAttestation", "AuditLog", "TRACE"],
"trustManifest": {
"identity": "spiffe://trust.agentrust.io/gateway/cmcp/prod",
"identity": "spiffe://trust.agentrust-io.com/gateway/cmcp/prod",
"identityType": "spiffe",
"attestations": [
{
"type": "SPIFFE-X509",
"uri": "https://agentrust.io/.well-known/spiffe/jwks"
"uri": "https://agentrust-io.com/.well-known/spiffe/jwks"
},
{
"type": "TRACE-v0.2",
"uri": "https://trace.agentrust.io/records/cmcp-prod-latest",
"uri": "https://trace.agentrust-io.com/records/cmcp-prod-latest",
"digest": "sha256:3f4a8b2c1d9e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2"
}
]
}
},
{
"identifier": "urn:ai:agentrust.io:governed:agent-manifest",
"identifier": "urn:ai:agentrust-io.com:governed:agent-manifest",
"displayName": "Agent Manifest SDK",
"description": "Hardware-anchors all 10 artifacts defining an agent at deployment. Attestation extended to agents — attested at registration and re-attested on any change.",
"type": "application/mcp-server+json",
"url": "https://api.agentrust.io/mcp/agent-manifest",
"url": "https://api.agentrust-io.com/mcp/agent-manifest",
"version": "0.1.0",
"tags": ["governance", "identity", "attestation", "agent-manifest"],
"capabilities": ["AgentIdentity", "HardwareAttestation", "ManifestVerification"],
"trustManifest": {
"identity": "spiffe://trust.agentrust.io/service/agent-manifest/prod",
"identity": "spiffe://trust.agentrust-io.com/service/agent-manifest/prod",
"identityType": "spiffe",
"attestations": [
{
"type": "SPIFFE-X509",
"uri": "https://agentrust.io/.well-known/spiffe/jwks"
"uri": "https://agentrust-io.com/.well-known/spiffe/jwks"
},
{
"type": "TRACE-v0.2",
"uri": "https://trace.agentrust.io/records/agent-manifest-prod-latest",
"uri": "https://trace.agentrust-io.com/records/agent-manifest-prod-latest",
"digest": "sha256:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2"
}
]
}
},
{
"identifier": "urn:ai:agentrust.io:governed:trace-registry",
"identifier": "urn:ai:agentrust-io.com:governed:trace-registry",
"displayName": "TRACE Registry",
"description": "Public append-only Merkle registry for TRACE Trust Record anchors. Query attested session records for any TRACE-governed agent. Supports SCITT-anchored verification.",
"type": "application/mcp-server+json",
"url": "https://trace.agentrust.io/mcp",
"url": "https://trace.agentrust-io.com/mcp",
"version": "0.2.0",
"tags": ["governance", "attestation", "trace", "audit", "scitt"],
"capabilities": ["TRACEVerification", "AuditQuery", "SCITTAnchoring"],
"trustManifest": {
"identity": "spiffe://trust.agentrust.io/service/trace-registry/prod",
"identity": "spiffe://trust.agentrust-io.com/service/trace-registry/prod",
"identityType": "spiffe",
"attestations": [
{
"type": "SPIFFE-X509",
"uri": "https://agentrust.io/.well-known/spiffe/jwks"
"uri": "https://agentrust-io.com/.well-known/spiffe/jwks"
},
{
"type": "TRACE-v0.2",
"uri": "https://trace.agentrust.io/records/trace-registry-prod-latest",
"uri": "https://trace.agentrust-io.com/records/trace-registry-prod-latest",
"digest": "sha256:f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9"
}
]
}
},
{
"identifier": "urn:ai:agentrust.io:registry:governed-agents",
"displayName": "agentrust.io Governed Agent Registry",
"identifier": "urn:ai:agentrust-io.com:registry:governed-agents",
"displayName": "agentrust-io.com Governed Agent Registry",
"description": "Federated ARD registry for TRACE-attested, policy-governed agents. All indexed entries carry TRACE-v0.2 runtime governance attestations. Filter with trustManifest.attestations.type=[TRACE-v0.2] to find governed agents across the federation.",
"type": "application/ai-registry+json",
"url": "https://registry.agentrust.io/api/v1/",
"url": "https://registry.agentrust-io.com/api/v1/",
"tags": ["registry", "governance", "federation", "trace"]
}
]
Expand Down