OAuthBackend
class OAuthBackend(tokens: TokenSource, backendFor: (OAuthTokens) -> ChatBackend) : ChatBackend(source)
A ChatBackend for signed-in providers: takes a fresh access token each turn and builds the protocol backend with it. If the provider rejects the token (401) before anything was streamed, it refreshes once and retries.