Protocol coverage
Status against draft -11, by section. Legend: ✅ implemented and tested,
🟡 partial, ⬜ not yet.
§5 Agents
| Section |
Status |
Notes |
| §5.1 Agent provider |
✅ |
Self-hosted (Agent, bootstrap §4.3) and hosted (agentprovider: separate provider key, aauth-agent.json, attestation hook) |
| §5.2 Agent identifiers |
✅ |
aauth:name@domain, sub-agents name+worker@domain, charset and length rules, case-sensitive |
| §5.3 Agent token |
✅ |
aa-agent+jwt minting and verification (Agent.MintToken, VerifyAgentToken, VerifyAndExtractAgent); pluggable trust through KeyResolver |
§6 Resource access
| Section |
Status |
Notes |
| §6.1 Agent token required |
✅ |
ChallengeAgentToken; Transport retries with the agent token |
| §6.2 Resource-managed authorization |
✅ |
202 interaction and approval waits followed by Transport |
§6.3 AAuth-Access session token |
✅ |
Signature-bound, rolling refresh |
| §6.4 Person token required |
✅ |
ChallengePersonToken, VerifyAndExtractPerson; Transport obtains person tokens |
| §6.5 Auth token required |
✅ |
401 challenges and 202 deferred delivery (§6.5.1) |
| §6.6 Authorization endpoint |
🟡 |
Metadata member and IssueResourceToken for the response; no agent-side client |
| §6.7 Resource token |
✅ |
Issued only against a verified person or auth token; PS and AS verification with the presented-token cross-check (§6.7.2); agent-side challenge verification (§6.7.3) |
§7 Person Server
| Section |
Status |
Notes |
| §7.1 Person token endpoint |
✅ |
PSClient.PersonToken (cached per key, resource, mission, and upstream token) and the personserver endpoint; directed sub per resource |
| §7.2 Auth token endpoint |
✅ |
PSClient.RequestAuthToken with the REQUIRED presented_token; the personserver endpoint; resource-initiated interaction (§7.2.3) |
| §7.3 User interaction |
✅ |
requirement=interaction with single-use interaction codes |
| §7.4 Consent presentation |
✅ |
The verified request and the agent-asserted hints are handed to the Decider |
| §7.5 Clarification chat |
✅ |
Question, answer, updated request, and cancel, with round limits |
| §7.6 Interaction endpoint |
✅ |
RequestInteraction, RelayInteraction, interaction_unavailable fallback |
| §7.7 Permission endpoint |
✅ |
With or without a mission |
| §7.8 Audit endpoint |
✅ |
Records go to the mission log |
| §7.9 Re-authorization |
✅ |
Top-down refresh with a five-minute margin; revoked or expired cached tokens dropped |
§8 Missions
| Section |
Status |
Notes |
| §8.1, §8.2 Creation and approval |
✅ |
Exact blob bytes and mission_s256; approval person tokens verified and cached |
| §8.3 Mission log |
✅ |
Updates logged with verifiable digests |
| §8.4, §8.5 Update and completion |
✅ |
Completion reviewed by the person |
| §8.6 Mission management |
🟡 |
Active and terminated states with termination reasons, personserver.Server.TerminateMission; no mission control plane endpoint |
| §8.7, §8.8 Errors |
✅ |
mission_not_found with no existence oracle; *MissionStatusError from every PS endpoint, including the token endpoints |
§9 Access Server federation
| Section |
Status |
Notes |
| §9.1 AS token endpoint |
✅ |
accessserver over an Authorizer; PS side through a Federator with delivery checks (§9.1.3) and as_unreachable |
| §9.2 Claims required |
✅ |
Answered by the PS through a ClaimsProvider, never sending sub |
| §9.3 PS-AS federation |
✅ |
HTTP Client signed under jwks_uri; in-process Server.Local for collapse (§9.3.3) |
| §9.4 Auth token |
✅ |
Draft -11 claim set; resource verification with an (iss, sub) hook; agent-side response checks (§9.4.4); upstream token checks (§9.4.5) |
§10 Agent delegation
| Section |
Status |
Notes |
| §10.1.1 Call chaining |
✅ |
RouteDownstream, ChainRouter.Transport; the intermediary must be its own agent provider; downstream exp bounded by the upstream token |
| §10.1.2 Interaction chaining |
✅ |
ChainInteraction |
| §10.2 Sub-agents |
✅ |
Own keys (Agent.NewSubAgent, Agent.IssueSubAgentToken), single level, parent-mediated tokens with subagent_token |
§11 Common elements
| Section |
Status |
Notes |
| §11.1 Identifiers |
✅ |
ValidateServerIdentifier (https, host only, lowercase, A-labels) |
| §11.2 Metadata documents |
✅ |
All four roles; issuer checked against the fetch URL; Validate for REQUIRED members; aauth-resource link relation |
| §11.3 HTTP message signatures |
✅ |
@method @authority @path signature-key, plus content-digest and content-type on bodies; created window and clock_skew; Signature-Key schemes jwt, jwks_uri (server-signed requests), and jkt-jwt and hwk (agent provider only) |
| §11.4 JWKS discovery and caching |
✅ |
Cache headers, one-minute refresh floor, unknown-kid refresh, 24-hour maximum age, backoff, bounded entries |
| §11.5 AAuth tokens |
✅ |
typ and dwk checked first, iat required, exp with no skew, iss a server identifier, one-hour person and auth tokens; Ed25519 and ES256 only |
| §11.6 Requirement responses |
✅ |
AAuth-Requirement as an RFC 9651 dictionary with all seven values |
§11.7 AAuth-Capabilities header |
⬜ |
Not sent by Transport |
| §11.8 Deferred responses |
✅ |
202, Location, Retry-After, Prefer: wait, 429 backoff |
| §11.9 Error responses |
✅ |
signature-key-09 Signature-Error codes; RFC 9457 problem bodies; token endpoint and polling error codes |
| §11.10, §11.11 Scopes and account binding |
✅ |
Scope never broader than requested; account carried through |
| §11.12 Token revocation |
✅ |
RevocationClient; recipients in every server role, with cascade and downstream outcomes |
Not implemented: the Signature-Key x509 scheme, Rich Resource Requests, and
402 payment settlement (an access server's 402 is reported as an error).