// Package registry provides model definitions for various AI service providers.
// This file stores the static model metadata catalog.
package registry

// GetClaudeModels returns the standard Claude model definitions
func GetClaudeModels() []*ModelInfo {
	return []*ModelInfo{

		{
			ID:                  "claude-haiku-4-5-20251001",
			Object:              "model",
			Created:             1759276800, // 2025-10-01
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4.5 Haiku",
			ContextLength:       200000,
			MaxCompletionTokens: 64000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false},
		},
		{
			ID:                  "claude-sonnet-4-5-20250929",
			Object:              "model",
			Created:             1759104000, // 2025-09-29
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4.5 Sonnet",
			ContextLength:       200000,
			MaxCompletionTokens: 64000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false},
		},
		{
			ID:                  "claude-sonnet-4-6",
			Object:              "model",
			Created:             1771372800, // 2026-02-17
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4.6 Sonnet",
			ContextLength:       200000,
			MaxCompletionTokens: 64000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false, Levels: []string{"low", "medium", "high"}},
		},
		{
			ID:                  "claude-opus-4-6",
			Object:              "model",
			Created:             1770318000, // 2026-02-05
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4.6 Opus",
			Description:         "Premium model combining maximum intelligence with practical performance",
			ContextLength:       1000000,
			MaxCompletionTokens: 128000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false, Levels: []string{"low", "medium", "high", "max"}},
		},
		{
			ID:                  "claude-opus-4-5-20251101",
			Object:              "model",
			Created:             1761955200, // 2025-11-01
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4.5 Opus",
			Description:         "Premium model combining maximum intelligence with practical performance",
			ContextLength:       200000,
			MaxCompletionTokens: 64000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false},
		},
		{
			ID:                  "claude-opus-4-1-20250805",
			Object:              "model",
			Created:             1722945600, // 2025-08-05
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4.1 Opus",
			ContextLength:       200000,
			MaxCompletionTokens: 32000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false},
		},
		{
			ID:                  "claude-opus-4-20250514",
			Object:              "model",
			Created:             1715644800, // 2025-05-14
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4 Opus",
			ContextLength:       200000,
			MaxCompletionTokens: 32000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false},
		},
		{
			ID:                  "claude-sonnet-4-20250514",
			Object:              "model",
			Created:             1715644800, // 2025-05-14
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 4 Sonnet",
			ContextLength:       200000,
			MaxCompletionTokens: 64000,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false},
		},
		{
			ID:                  "claude-3-7-sonnet-20250219",
			Object:              "model",
			Created:             1708300800, // 2025-02-19
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 3.7 Sonnet",
			ContextLength:       128000,
			MaxCompletionTokens: 8192,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false},
		},
		{
			ID:                  "claude-3-5-haiku-20241022",
			Object:              "model",
			Created:             1729555200, // 2024-10-22
			OwnedBy:             "anthropic",
			Type:                "claude",
			DisplayName:         "Claude 3.5 Haiku",
			ContextLength:       128000,
			MaxCompletionTokens: 8192,
			// Thinking: not supported for Haiku models
		},
	}
}

// GetGeminiModels returns the standard Gemini model definitions
func GetGeminiModels() []*ModelInfo {
	return []*ModelInfo{
		{
			ID:                         "gemini-2.5-pro",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-pro",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Pro",
			Description:                "Stable release (June 17th, 2025) of Gemini 2.5 Pro",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash",
			Version:                    "001",
			DisplayName:                "Gemini 2.5 Flash",
			Description:                "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash-lite",
			Object:                     "model",
			Created:                    1753142400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash-lite",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Flash Lite",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-3-pro-preview",
			Object:                     "model",
			Created:                    1737158400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-pro-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Pro Preview",
			Description:                "Gemini 3 Pro Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
		{
			ID:                         "gemini-3.1-pro-preview",
			Object:                     "model",
			Created:                    1771459200,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-pro-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Pro Preview",
			Description:                "Gemini 3.1 Pro Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
		{
			ID:                         "gemini-3.1-flash-image-preview",
			Object:                     "model",
			Created:                    1771459200,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-flash-image-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Flash Image Preview",
			Description:                "Gemini 3.1 Flash Image Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "high"}},
		},
		{
			ID:                         "gemini-3-flash-preview",
			Object:                     "model",
			Created:                    1765929600,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-flash-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Flash Preview",
			Description:                "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}},
		},
		{
			ID:                         "gemini-3.1-flash-lite-preview",
			Object:                     "model",
			Created:                    1776288000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-flash-lite-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Flash Lite Preview",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "high"}},
		},
		{
			ID:                         "gemini-3-pro-image-preview",
			Object:                     "model",
			Created:                    1737158400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-pro-image-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Pro Image Preview",
			Description:                "Gemini 3 Pro Image Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
	}
}

func GetGeminiVertexModels() []*ModelInfo {
	return []*ModelInfo{
		{
			ID:                         "gemini-2.5-pro",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-pro",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Pro",
			Description:                "Stable release (June 17th, 2025) of Gemini 2.5 Pro",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash",
			Version:                    "001",
			DisplayName:                "Gemini 2.5 Flash",
			Description:                "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash-lite",
			Object:                     "model",
			Created:                    1753142400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash-lite",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Flash Lite",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-3-pro-preview",
			Object:                     "model",
			Created:                    1737158400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-pro-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Pro Preview",
			Description:                "Gemini 3 Pro Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
		{
			ID:                         "gemini-3-flash-preview",
			Object:                     "model",
			Created:                    1765929600,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-flash-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Flash Preview",
			Description:                "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}},
		},
		{
			ID:                         "gemini-3.1-pro-preview",
			Object:                     "model",
			Created:                    1771459200,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-pro-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Pro Preview",
			Description:                "Gemini 3.1 Pro Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
		{
			ID:                         "gemini-3.1-flash-image-preview",
			Object:                     "model",
			Created:                    1771459200,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-flash-image-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Flash Image Preview",
			Description:                "Gemini 3.1 Flash Image Preview",
		},
		{
			ID:                         "gemini-3.1-flash-lite-preview",
			Object:                     "model",
			Created:                    1776288000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-flash-lite-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Flash Lite Preview",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "high"}},
		},
		{
			ID:                         "gemini-3-pro-image-preview",
			Object:                     "model",
			Created:                    1737158400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-pro-image-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Pro Image Preview",
			Description:                "Gemini 3 Pro Image Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
		// Imagen image generation models - use :predict action
		{
			ID:                         "imagen-4.0-generate-001",
			Object:                     "model",
			Created:                    1750000000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/imagen-4.0-generate-001",
			Version:                    "4.0",
			DisplayName:                "Imagen 4.0 Generate",
			Description:                "Imagen 4.0 image generation model",
			SupportedGenerationMethods: []string{"predict"},
		},
		{
			ID:                         "imagen-4.0-ultra-generate-001",
			Object:                     "model",
			Created:                    1750000000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/imagen-4.0-ultra-generate-001",
			Version:                    "4.0",
			DisplayName:                "Imagen 4.0 Ultra Generate",
			Description:                "Imagen 4.0 Ultra high-quality image generation model",
			SupportedGenerationMethods: []string{"predict"},
		},
		{
			ID:                         "imagen-3.0-generate-002",
			Object:                     "model",
			Created:                    1740000000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/imagen-3.0-generate-002",
			Version:                    "3.0",
			DisplayName:                "Imagen 3.0 Generate",
			Description:                "Imagen 3.0 image generation model",
			SupportedGenerationMethods: []string{"predict"},
		},
		{
			ID:                         "imagen-3.0-fast-generate-001",
			Object:                     "model",
			Created:                    1740000000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/imagen-3.0-fast-generate-001",
			Version:                    "3.0",
			DisplayName:                "Imagen 3.0 Fast Generate",
			Description:                "Imagen 3.0 fast image generation model",
			SupportedGenerationMethods: []string{"predict"},
		},
		{
			ID:                         "imagen-4.0-fast-generate-001",
			Object:                     "model",
			Created:                    1750000000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/imagen-4.0-fast-generate-001",
			Version:                    "4.0",
			DisplayName:                "Imagen 4.0 Fast Generate",
			Description:                "Imagen 4.0 fast image generation model",
			SupportedGenerationMethods: []string{"predict"},
		},
	}
}

// GetGeminiCLIModels returns the standard Gemini model definitions
func GetGeminiCLIModels() []*ModelInfo {
	return []*ModelInfo{
		{
			ID:                         "gemini-2.5-pro",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-pro",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Pro",
			Description:                "Stable release (June 17th, 2025) of Gemini 2.5 Pro",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash",
			Version:                    "001",
			DisplayName:                "Gemini 2.5 Flash",
			Description:                "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash-lite",
			Object:                     "model",
			Created:                    1753142400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash-lite",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Flash Lite",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-3-pro-preview",
			Object:                     "model",
			Created:                    1737158400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-pro-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Pro Preview",
			Description:                "Our most intelligent model with SOTA reasoning and multimodal understanding, and powerful agentic and vibe coding capabilities",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
		{
			ID:                         "gemini-3.1-pro-preview",
			Object:                     "model",
			Created:                    1771459200,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-pro-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Pro Preview",
			Description:                "Gemini 3.1 Pro Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}},
		},
		{
			ID:                         "gemini-3-flash-preview",
			Object:                     "model",
			Created:                    1765929600,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-flash-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Flash Preview",
			Description:                "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}},
		},
		{
			ID:                         "gemini-3.1-flash-lite-preview",
			Object:                     "model",
			Created:                    1776288000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-flash-lite-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Flash Lite Preview",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "high"}},
		},
	}
}

// GetAIStudioModels returns the Gemini model definitions for AI Studio integrations
func GetAIStudioModels() []*ModelInfo {
	return []*ModelInfo{
		{
			ID:                         "gemini-2.5-pro",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-pro",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Pro",
			Description:                "Stable release (June 17th, 2025) of Gemini 2.5 Pro",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash",
			Version:                    "001",
			DisplayName:                "Gemini 2.5 Flash",
			Description:                "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-2.5-flash-lite",
			Object:                     "model",
			Created:                    1753142400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash-lite",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Flash Lite",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-3-pro-preview",
			Object:                     "model",
			Created:                    1737158400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-pro-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Pro Preview",
			Description:                "Gemini 3 Pro Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-3.1-pro-preview",
			Object:                     "model",
			Created:                    1771459200,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-pro-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Pro Preview",
			Description:                "Gemini 3.1 Pro Preview",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-3-flash-preview",
			Object:                     "model",
			Created:                    1765929600,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3-flash-preview",
			Version:                    "3.0",
			DisplayName:                "Gemini 3 Flash Preview",
			Description:                "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-3.1-flash-lite-preview",
			Object:                     "model",
			Created:                    1776288000,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-3.1-flash-lite-preview",
			Version:                    "3.1",
			DisplayName:                "Gemini 3.1 Flash Lite Preview",
			Description:                "Our smallest and most cost effective model, built for at scale usage.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "high"}},
		},
		{
			ID:                         "gemini-pro-latest",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-pro-latest",
			Version:                    "2.5",
			DisplayName:                "Gemini Pro Latest",
			Description:                "Latest release of Gemini Pro",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-flash-latest",
			Object:                     "model",
			Created:                    1750118400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-flash-latest",
			Version:                    "2.5",
			DisplayName:                "Gemini Flash Latest",
			Description:                "Latest release of Gemini Flash",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                         "gemini-flash-lite-latest",
			Object:                     "model",
			Created:                    1753142400,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-flash-lite-latest",
			Version:                    "2.5",
			DisplayName:                "Gemini Flash-Lite Latest",
			Description:                "Latest release of Gemini Flash-Lite",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           65536,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			Thinking:                   &ThinkingSupport{Min: 512, Max: 24576, ZeroAllowed: true, DynamicAllowed: true},
		},
		// {
		// 	ID:                         "gemini-2.5-flash-image-preview",
		// 	Object:                     "model",
		// 	Created:                    1756166400,
		// 	OwnedBy:                    "google",
		// 	Type:                       "gemini",
		// 	Name:                       "models/gemini-2.5-flash-image-preview",
		// 	Version:                    "2.5",
		// 	DisplayName:                "Gemini 2.5 Flash Image Preview",
		// 	Description:                "State-of-the-art image generation and editing model.",
		// 	InputTokenLimit:            1048576,
		// 	OutputTokenLimit:           8192,
		// 	SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
		// 	// image models don't support thinkingConfig; leave Thinking nil
		// },
		{
			ID:                         "gemini-2.5-flash-image",
			Object:                     "model",
			Created:                    1759363200,
			OwnedBy:                    "google",
			Type:                       "gemini",
			Name:                       "models/gemini-2.5-flash-image",
			Version:                    "2.5",
			DisplayName:                "Gemini 2.5 Flash Image",
			Description:                "State-of-the-art image generation and editing model.",
			InputTokenLimit:            1048576,
			OutputTokenLimit:           8192,
			SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
			// image models don't support thinkingConfig; leave Thinking nil
		},
	}
}

// GetOpenAIModels returns the standard OpenAI model definitions
func GetOpenAIModels() []*ModelInfo {
	return []*ModelInfo{
		{
			ID:                  "gpt-5",
			Object:              "model",
			Created:             1754524800,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5-2025-08-07",
			DisplayName:         "GPT 5",
			Description:         "Stable version of GPT 5, The best model for coding and agentic tasks across domains.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"minimal", "low", "medium", "high"}},
		},
		{
			ID:                  "gpt-5-codex",
			Object:              "model",
			Created:             1757894400,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5-2025-09-15",
			DisplayName:         "GPT 5 Codex",
			Description:         "Stable version of GPT 5 Codex, The best model for coding and agentic tasks across domains.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high"}},
		},
		{
			ID:                  "gpt-5-codex-mini",
			Object:              "model",
			Created:             1762473600,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5-2025-11-07",
			DisplayName:         "GPT 5 Codex Mini",
			Description:         "Stable version of GPT 5 Codex Mini: cheaper, faster, but less capable version of GPT 5 Codex.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high"}},
		},
		{
			ID:                  "gpt-5.1",
			Object:              "model",
			Created:             1762905600,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.1-2025-11-12",
			DisplayName:         "GPT 5",
			Description:         "Stable version of GPT 5, The best model for coding and agentic tasks across domains.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"none", "low", "medium", "high"}},
		},
		{
			ID:                  "gpt-5.1-codex",
			Object:              "model",
			Created:             1762905600,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.1-2025-11-12",
			DisplayName:         "GPT 5.1 Codex",
			Description:         "Stable version of GPT 5.1 Codex, The best model for coding and agentic tasks across domains.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high"}},
		},
		{
			ID:                  "gpt-5.1-codex-mini",
			Object:              "model",
			Created:             1762905600,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.1-2025-11-12",
			DisplayName:         "GPT 5.1 Codex Mini",
			Description:         "Stable version of GPT 5.1 Codex Mini: cheaper, faster, but less capable version of GPT 5.1 Codex.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high"}},
		},
		{
			ID:                  "gpt-5.1-codex-max",
			Object:              "model",
			Created:             1763424000,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.1-max",
			DisplayName:         "GPT 5.1 Codex Max",
			Description:         "Stable version of GPT 5.1 Codex Max",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}},
		},
		{
			ID:                  "gpt-5.2",
			Object:              "model",
			Created:             1765440000,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.2",
			DisplayName:         "GPT 5.2",
			Description:         "Stable version of GPT 5.2",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"none", "low", "medium", "high", "xhigh"}},
		},
		{
			ID:                  "gpt-5.2-codex",
			Object:              "model",
			Created:             1765440000,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.2",
			DisplayName:         "GPT 5.2 Codex",
			Description:         "Stable version of GPT 5.2 Codex, The best model for coding and agentic tasks across domains.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}},
		},
		{
			ID:                  "gpt-5.3-codex",
			Object:              "model",
			Created:             1770307200,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.3",
			DisplayName:         "GPT 5.3 Codex",
			Description:         "Stable version of GPT 5.3 Codex, The best model for coding and agentic tasks across domains.",
			ContextLength:       400000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}},
		},
		{
			ID:                  "gpt-5.3-codex-spark",
			Object:              "model",
			Created:             1770912000,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.3",
			DisplayName:         "GPT 5.3 Codex Spark",
			Description:         "Ultra-fast coding model.",
			ContextLength:       128000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}},
		},
		{
			ID:                  "gpt-5.4",
			Object:              "model",
			Created:             1772668800,
			OwnedBy:             "openai",
			Type:                "openai",
			Version:             "gpt-5.4",
			DisplayName:         "GPT 5.4",
			Description:         "Stable version of GPT 5.4",
			ContextLength:       1_050_000,
			MaxCompletionTokens: 128000,
			SupportedParameters: []string{"tools"},
			Thinking:            &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}},
		},
	}
}

// GetQwenModels returns the standard Qwen model definitions
func GetQwenModels() []*ModelInfo {
	return []*ModelInfo{
		{
			ID:                  "qwen3-coder-plus",
			Object:              "model",
			Created:             1753228800,
			OwnedBy:             "qwen",
			Type:                "qwen",
			Version:             "3.0",
			DisplayName:         "Qwen3 Coder Plus",
			Description:         "Advanced code generation and understanding model",
			ContextLength:       32768,
			MaxCompletionTokens: 8192,
			SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"},
		},
		{
			ID:                  "qwen3-coder-flash",
			Object:              "model",
			Created:             1753228800,
			OwnedBy:             "qwen",
			Type:                "qwen",
			Version:             "3.0",
			DisplayName:         "Qwen3 Coder Flash",
			Description:         "Fast code generation model",
			ContextLength:       8192,
			MaxCompletionTokens: 2048,
			SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"},
		},
		{
			ID:                  "coder-model",
			Object:              "model",
			Created:             1771171200,
			OwnedBy:             "qwen",
			Type:                "qwen",
			Version:             "3.5",
			DisplayName:         "Qwen 3.5 Plus",
			Description:         "efficient hybrid model with leading coding performance",
			ContextLength:       1048576,
			MaxCompletionTokens: 65536,
			SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"},
		},
		{
			ID:                  "vision-model",
			Object:              "model",
			Created:             1758672000,
			OwnedBy:             "qwen",
			Type:                "qwen",
			Version:             "3.0",
			DisplayName:         "Qwen3 Vision Model",
			Description:         "Vision model model",
			ContextLength:       32768,
			MaxCompletionTokens: 2048,
			SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"},
		},
	}
}

// iFlowThinkingSupport is a shared ThinkingSupport configuration for iFlow models
// that support thinking mode via chat_template_kwargs.enable_thinking (boolean toggle).
// Uses level-based configuration so standard normalization flows apply before conversion.
var iFlowThinkingSupport = &ThinkingSupport{
	Levels: []string{"none", "auto", "minimal", "low", "medium", "high", "xhigh"},
}

// GetIFlowModels returns supported models for iFlow OAuth accounts.
func GetIFlowModels() []*ModelInfo {
	entries := []struct {
		ID          string
		DisplayName string
		Description string
		Created     int64
		Thinking    *ThinkingSupport
	}{
		{ID: "qwen3-coder-plus", DisplayName: "Qwen3-Coder-Plus", Description: "Qwen3 Coder Plus code generation", Created: 1753228800},
		{ID: "qwen3-max", DisplayName: "Qwen3-Max", Description: "Qwen3 flagship model", Created: 1758672000},
		{ID: "qwen3-vl-plus", DisplayName: "Qwen3-VL-Plus", Description: "Qwen3 multimodal vision-language", Created: 1758672000},
		{ID: "qwen3-max-preview", DisplayName: "Qwen3-Max-Preview", Description: "Qwen3 Max preview build", Created: 1757030400, Thinking: iFlowThinkingSupport},
		{ID: "glm-4.6", DisplayName: "GLM-4.6", Description: "Zhipu GLM 4.6 general model", Created: 1759190400, Thinking: iFlowThinkingSupport},
		{ID: "kimi-k2", DisplayName: "Kimi-K2", Description: "Moonshot Kimi K2 general model", Created: 1752192000},
		{ID: "deepseek-v3.2", DisplayName: "DeepSeek-V3.2-Exp", Description: "DeepSeek V3.2 experimental", Created: 1759104000, Thinking: iFlowThinkingSupport},
		{ID: "deepseek-v3.1", DisplayName: "DeepSeek-V3.1-Terminus", Description: "DeepSeek V3.1 Terminus", Created: 1756339200, Thinking: iFlowThinkingSupport},
		{ID: "deepseek-r1", DisplayName: "DeepSeek-R1", Description: "DeepSeek reasoning model R1", Created: 1737331200},
		{ID: "deepseek-v3", DisplayName: "DeepSeek-V3-671B", Description: "DeepSeek V3 671B", Created: 1734307200},
		{ID: "qwen3-32b", DisplayName: "Qwen3-32B", Description: "Qwen3 32B", Created: 1747094400},
		{ID: "qwen3-235b-a22b-thinking-2507", DisplayName: "Qwen3-235B-A22B-Thinking", Description: "Qwen3 235B A22B Thinking (2507)", Created: 1753401600},
		{ID: "qwen3-235b-a22b-instruct", DisplayName: "Qwen3-235B-A22B-Instruct", Description: "Qwen3 235B A22B Instruct", Created: 1753401600},
		{ID: "qwen3-235b", DisplayName: "Qwen3-235B-A22B", Description: "Qwen3 235B A22B", Created: 1753401600},
		{ID: "iflow-rome-30ba3b", DisplayName: "iFlow-ROME", Description: "iFlow Rome 30BA3B model", Created: 1736899200},
	}
	models := make([]*ModelInfo, 0, len(entries))
	for _, entry := range entries {
		models = append(models, &ModelInfo{
			ID:          entry.ID,
			Object:      "model",
			Created:     entry.Created,
			OwnedBy:     "iflow",
			Type:        "iflow",
			DisplayName: entry.DisplayName,
			Description: entry.Description,
			Thinking:    entry.Thinking,
		})
	}
	return models
}

// AntigravityModelConfig captures static antigravity model overrides, including
// Thinking budget limits and provider max completion tokens.
type AntigravityModelConfig struct {
	Thinking            *ThinkingSupport
	MaxCompletionTokens int
}

// GetAntigravityModelConfig returns static configuration for antigravity models.
// Keys use upstream model names returned by the Antigravity models endpoint.
func GetAntigravityModelConfig() map[string]*AntigravityModelConfig {
	return map[string]*AntigravityModelConfig{
		"gemini-2.5-flash":         {Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}},
		"gemini-2.5-flash-lite":    {Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}},
		"gemini-3-pro-high":        {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}},
		"gemini-3-pro-low":         {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}},
		"gemini-3.1-pro-high":      {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}},
		"gemini-3.1-pro-low":       {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}},
		"gemini-3.1-flash-image":   {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "high"}}},
		"gemini-3.1-flash-lite-preview": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "high"}}},
		"gemini-3-flash":           {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}}},
		"claude-opus-4-6-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 64000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000},
		"claude-sonnet-4-6":        {Thinking: &ThinkingSupport{Min: 1024, Max: 64000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000},
		"gpt-oss-120b-medium":      {},
	}
}

// GetKimiModels returns the standard Kimi (Moonshot AI) model definitions
func GetKimiModels() []*ModelInfo {
	return []*ModelInfo{
		{
			ID:                  "kimi-k2",
			Object:              "model",
			Created:             1752192000, // 2025-07-11
			OwnedBy:             "moonshot",
			Type:                "kimi",
			DisplayName:         "Kimi K2",
			Description:         "Kimi K2 - Moonshot AI's flagship coding model",
			ContextLength:       131072,
			MaxCompletionTokens: 32768,
		},
		{
			ID:                  "kimi-k2-thinking",
			Object:              "model",
			Created:             1762387200, // 2025-11-06
			OwnedBy:             "moonshot",
			Type:                "kimi",
			DisplayName:         "Kimi K2 Thinking",
			Description:         "Kimi K2 Thinking - Extended reasoning model",
			ContextLength:       131072,
			MaxCompletionTokens: 32768,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
		},
		{
			ID:                  "kimi-k2.5",
			Object:              "model",
			Created:             1769472000, // 2026-01-26
			OwnedBy:             "moonshot",
			Type:                "kimi",
			DisplayName:         "Kimi K2.5",
			Description:         "Kimi K2.5 - Latest Moonshot AI coding model with improved capabilities",
			ContextLength:       131072,
			MaxCompletionTokens: 32768,
			Thinking:            &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
		},
	}
}
