AAuth Explorer
missionsPhase 5

Mission Proposal & Approval

The agent proposes a mission to the Person Server: a Markdown description of what it intends to accomplish, the tools it wants, and the resources it expects to use. Because the PS acts for a person, approval is deferred — 202, then polling while the person reviews. On approval the PS returns {s256, mission, capabilities, person_tokens}: the mission blob base64url-encoded so its digest covers unambiguous bytes, and one mission-scoped person token per approved resource.

§ Mission
AgentPerson ServerUser1Discover PS metadata2002POST /mission (sig=jwt) → 2…3Poll /pending/m3f7a1b2 → 20…4User reviews mission → appr…5Poll /pending/m3f7a1b2 → 20…
GET https://ps.example/.well-known/aauth-person.json200

The agent fetches PS well-known metadata to discover the endpoints it needs.

mission_endpoint is where the agent proposes missions, and where it later POSTs updates and its completion proposal at {mission_endpoint}/{mission_s256}.

person_token_endpoint is REQUIRED in -11: every PS MUST publish one and MUST issue person tokens from it.

auth_token_endpoint was called token_endpoint before -11.

mission_control_endpoint is the control plane — where parties other than the owning agent read and manage missions. Its operations are left to a companion specification.

1 / 5
speed

Step 1: Discover PS metadata

Request / response
Mission Approval Timeline
Approved Mission Blob

Description (Markdown)

# Analyze Q2 Customer Feedback

Read customer feedback records and produce a summary report with sentiment analysis and key themes.

Blob Members

approverhttps://ps.example
agentaauth:local@agent.example
approved_at2026-04-14T17:14:54Z
expires_at2026-05-14T17:14:54Z
approved_resourceshttps://api.example

The blob is what the digest covers. approver lives here and nowhere else — no token carries it.

Mission Identifier

mission (base64url)

eyJhcHByb3ZlciI6Imh0dHBzOi8vcHMuZXhhbXBsZSIsImFnZW50IjoiYWF1dGg6bG9jYWxAYWdlbnQuZXhhbXBsZSIsImFwcHJvdmVkX2F0IjoiMjAyNi0wNC0xNFQxNzoxNDo1NFoiLCJleHBpcmVzX2F0IjoiMjAyNi0wNS0xNFQxNzoxNDo1NFoiLCJkZXNjcmlwdGlvbiI6IiMgQW5hbHl6ZSBRMiBDdXN0b21lciBGZWVkYmFja1xuXG5SZWFkIGN1c3RvbWVyIGZlZWRiYWNrIHJlY29yZHMgYW5kIHByb2R1Y2UgYSBzdW1tYXJ5IHJlcG9ydCB3aXRoIHNlbnRpbWVudCBhbmFseXNpcyBhbmQga2V5IHRoZW1lcy4iLCJhcHByb3ZlZF90b29scyI6W3sibmFtZSI6IkZlZWRiYWNrUmVhZGVyIiwiZGVzY3JpcHRpb24iOiJSZWFkIGN1c3RvbWVyIGZlZWRiYWNrIHJlY29yZHMifSx7Im5hbWUiOiJSZXBvcnRXcml0ZXIiLCJkZXNjcmlwdGlvbiI6IldyaXRlIHRoZSBzdW1tYXJ5IHJlcG9ydCB0byB0aGUgc2hhcmVkIGRyaXZlIn1dLCJhcHByb3ZlZF9yZXNvdXJjZXMiOlsiaHR0cHM6Ly9hcGkuZXhhbXBsZSJdfQ

s256

7SGTFsuKCcpYJwGRkVBi8vOc1Ssm7NdgnVaAruK87Rg

s256 is not a blob member. It is BASE64URL(SHA-256()) of the bytes mission decodes to, returned alongside it so the agent can verify the digest covers an unambiguous byte sequence. It travels as the mission_s256 claim of person, resource and auth tokens.

Approved Tools

FeedbackReader

Read customer feedback records

ReportWriter

Write the summary report to the shared drive

PS Capabilities

interactionclarification
s256 Chain
Mission blob bytesPS serializes the approved mission once and persists those exact bytes

7SGTFsuKCcpYJwGRkVBi8vOc1Ssm7NdgnVaAruK87Rg

s256 = BASE64URL(SHA-256(bytes)). The PS returns the same bytes base64url-encoded as the `mission` member, so the agent can recompute the digest itself.

mission_s256 in the person tokenPS stamps it when the agent names the mission at the person token endpoint

7SGTFsuKCcpYJwGRkVBi8vOc1Ssm7NdgnVaAruK87Rg

The agent asks for a person token with mission_s256; the PS verifies the mission exists, is active and belongs to this agent, then puts the value in the token.

mission_s256 in the resource tokenResource copies it out of the person token it verified

7SGTFsuKCcpYJwGRkVBi8vOc1Ssm7NdgnVaAruK87Rg

REQUIRED when the person token carried one — a resource MUST NOT omit it. person_token_jti names the exact token it was copied from.

mission_s256 in the auth tokenIssuer copies it from the resource token

7SGTFsuKCcpYJwGRkVBi8vOc1Ssm7NdgnVaAruK87Rg

The resource reads the mission only here. It never arrives as a header and is never agent-asserted.

GEThttps://ps.example/.well-known/aauth-person.json
Host

ps.example