# Spec: Java SDK (`ai.sentryagent:idp-sdk`) **Status**: Pending CEO approval **Workstream**: 4 of 8 ## Scope - `sdk-java/` directory at project root - `AgentIdPClient` with sync and `CompletableFuture` async variants - `TokenManager` with thread-safe cache and 60s auto-refresh - Service clients: `AgentRegistryClient`, `CredentialClient`, `TokenClient`, `AuditClient` - `AgentIdPException` extending `RuntimeException` with `code`, `httpStatus`, `details` - `pom.xml`: groupId=`ai.sentryagent`, artifactId=`idp-sdk`, Java 17+ - `sdk-java/README.md` ## Acceptance Criteria - [ ] All 14 endpoints covered - [ ] Sync methods return typed POJOs; async methods return `CompletableFuture` - [ ] `AgentIdPException` thrown (not raw IOException) on all failure paths - [ ] `TokenManager` is thread-safe (`synchronized` on cache) - [ ] Apache HttpClient 5 for HTTP transport - [ ] Jackson for JSON serialization - [ ] `mvn verify` passes with >80% coverage (JUnit 5) - [ ] README matches Node.js SDK structure