diff --git a/internal/agent/coordinator.go b/internal/agent/coordinator.go index 14f3cf6562865b3f492e263c24fb69f8d96c0c87..5690b1311a4fd0d0290277d01e734b17ab3d2a66 100644 --- a/internal/agent/coordinator.go +++ b/internal/agent/coordinator.go @@ -132,6 +132,13 @@ func (c *coordinator) Run(ctx context.Context, sessionID string, prompt string, mergedOptions, temp, topP, topK, freqPenalty, presPenalty := mergeCallOptions(model, providerCfg) + if providerCfg.OAuthToken != nil && providerCfg.OAuthToken.IsExpired() { + slog.Info("Token needs to be refreshed", "provider", providerCfg.ID) + if err := c.refreshOAuth2Token(ctx, providerCfg); err != nil { + return nil, err + } + } + run := func() (*fantasy.AgentResult, error) { return c.currentAgent.Run(ctx, SessionAgentCall{ SessionID: sessionID,