@@ -96,7 +96,7 @@ func (g *geminiClient) convertMessages(messages []message.Message) []*genai.Cont
9696
9797 case message.Tool:
9898 for _, result := range msg.ToolResults() {
99− response := map[string]interface{}{"result": result.Content}
99+ response := map[string]any{"result": result.Content}
100100 parsed, err := parseJsonToMap(result.Content)
101101 if err == nil {
102102 response = parsed
@@ -155,10 +155,10 @@ func (g *geminiClient) convertTools(tools []tools.BaseTool) []*genai.Tool {
155155}
156156
157157func (g *geminiClient) finishReason(reason genai.FinishReason) message.FinishReason {
158− switch {
159− case reason == genai.FinishReasonStop:
158+ switch reason {
159+ case genai.FinishReasonStop:
160160 return message.FinishReasonEndTurn
161− case reason == genai.FinishReasonMaxTokens:
161+ case genai.FinishReasonMaxTokens:
162162 return message.FinishReasonMaxTokens
163163 default:
164164 return message.FinishReasonUnknown
@@ -402,12 +402,9 @@ func (g *geminiClient) shouldRetry(attempts int, err error) (bool, int64, error)
402402 }
403403
404404 errMsg := err.Error()
405− isRateLimit := false
405+ isRateLimit := contains(errMsg, "rate limit", "quota exceeded", "too many requests")
406406
407407 // Check for common rate limit error messages
408− if contains(errMsg, "rate limit", "quota exceeded", "too many requests") {
409− isRateLimit = true
410− }
411408
412409 if !isRateLimit {
413410 return false, 0, err
@@ -462,13 +459,13 @@ func WithGeminiDisableCache() GeminiOption {
462459}
463460
464461// Helper functions
465−func parseJsonToMap(jsonStr string) (map[string]interface{}, error) {
466− var result map[string]interface{}
462+func parseJsonToMap(jsonStr string) (map[string]any, error) {
463+ var result map[string]any
467464 err := json.Unmarshal([]byte(jsonStr), &result)
468465 return result, err
469466}
470467
471−func convertSchemaProperties(parameters map[string]interface{}) map[string]*genai.Schema {
468+func convertSchemaProperties(parameters map[string]any) map[string]*genai.Schema {
472469 properties := make(map[string]*genai.Schema)
473470
474471 for name, param := range parameters {
@@ -478,10 +475,10 @@ func convertSchemaProperties(parameters map[string]interface{}) map[string]*gena
478475 return properties
479476}
480477
481−func convertToSchema(param interface{}) *genai.Schema {
478+func convertToSchema(param any) *genai.Schema {
482479 schema := &genai.Schema{Type: genai.TypeString}
483480
484− paramMap, ok := param.(map[string]interface{})
481+ paramMap, ok := param.(map[string]any)
485482 if !ok {
486483 return schema
487484 }
@@ -506,7 +503,7 @@ func convertToSchema(param interface{}) *genai.Schema {
506503 case "array":
507504 schema.Items = processArrayItems(paramMap)
508505 case "object":
509− if props, ok := paramMap["properties"].(map[string]interface{}); ok {
506+ if props, ok := paramMap["properties"].(map[string]any); ok {
510507 schema.Properties = convertSchemaProperties(props)
511508 }
512509 }
@@ -514,8 +511,8 @@ func convertToSchema(param interface{}) *genai.Schema {
514511 return schema
515512}
516513
517−func processArrayItems(paramMap map[string]interface{}) *genai.Schema {
518− items, ok := paramMap["items"].(map[string]interface{})
514+func processArrayItems(paramMap map[string]any) *genai.Schema {
515+ items, ok := paramMap["items"].(map[string]any)
519516 if !ok {
520517 return nil
521518 }