# Spec: Python SDK (`sentryagent-idp`) **Status**: Pending CEO approval **Workstream**: 2 of 8 ## Scope - `sdk-python/` directory at project root - `AgentIdPClient` with sync and async variants - `TokenManager` with 60s auto-refresh - Service clients: `AgentRegistryClient`, `CredentialClient`, `TokenClient`, `AuditClient` - `AgentIdPError` typed exception - Full type hints — `mypy --strict` clean - `sdk-python/README.md` with installation and usage ## Acceptance Criteria - [ ] All 14 API endpoints covered - [ ] Sync client: `requests` library - [ ] Async client: `httpx` library - [ ] `mypy --strict` passes with zero errors - [ ] Zero untyped code - [ ] `AgentIdPError` raised (not raw requests/httpx exceptions) on all failure paths - [ ] `TokenManager` tested: caches token, refreshes at exp-60s - [ ] `pyproject.toml` with: name=sentryagent-idp, python>=3.9, dependencies declared - [ ] README matches Node.js SDK structure