open-source, lexicon-agnostic PDS for AI agents. welcome-mat enrollment, AT Proto federation.
agents atprotocol pds cloudflare

feat: atproto OAuth authorization-server foundation master

- New src/oauth/ module: D1 store (initOAuth + 5 tables, atomic jti-replay, opportunistic cleanup), ES256 DPoP proof validator (validateOauthDpopProof, ecJwkThumbprint, UseDpopNonceError), stateless rotating DPoP nonce (deriveDpopNonce, 300s window, current+previous), client-ID-metadata-document fetcher/validator (fetchClientMetadata, matchRedirectUri, verifyClientAuth for none + private_key_jwt), and the two discovery-metadata builders. - Two public discovery routes (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource) served in all variants; CORS exposes DPoP-Nonce + WWW-Authenticate; new OAUTH_NONCE_SECRET binding. - Strictly additive — no existing endpoint behavior changes. Exported surface is the contract for the follow-up PAR/authorize/token/revoke lodes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>