Add token refresh handling for 401 responses across clients

- Implemented `RefreshTokens` method in client interfaces and Gemini clients.
- Updated handlers to call `RefreshTokens` on 401 responses and retry requests if token refresh succeeds.
- Enhanced error handling and retry logic to accommodate token refresh flow.
This commit is contained in:
Luis Pater
2025-08-30 16:10:56 +08:00
parent 1aad033fec
commit 512c8b600a
7 changed files with 46 additions and 0 deletions

View File

@@ -860,3 +860,8 @@ func (c *GeminiCLIClient) GetUserAgent() string {
func (c *GeminiCLIClient) GetRequestMutex() *sync.Mutex {
return nil
}
func (c *GeminiCLIClient) RefreshTokens(ctx context.Context) error {
// API keys don't need refreshing
return nil
}

View File

@@ -434,3 +434,8 @@ func (c *GeminiClient) GetUserAgent() string {
func (c *GeminiClient) GetRequestMutex() *sync.Mutex {
return nil
}
func (c *GeminiClient) RefreshTokens(ctx context.Context) error {
// API keys don't need refreshing
return nil
}