//go:build integration && library

package integration

// Broad public library inventory, roughly newest to oldest from
// https://ollama.com/library?sort=newest. Cloud-only models are omitted;
// models with only very large local tags are kept commented in place.
var libraryModels = []string{
	"lfm2.5",
	"mistral-medium-3.5",
	"granite4.1",
	"nemotron3",
	"laguna-xs.2",
	"qwen3.6",
	"medgemma1.5",
	"medgemma",
	"nemotron-cascade-2",
	"gemma4",
	"lfm2",
	"nemotron-3-super",
	"qwen3.5",
	"qwen3-coder-next",
	"glm-ocr",
	"lfm2.5-thinking",
	"glm-4.7-flash",
	"translategemma",
	"nemotron-3-nano",
	"functiongemma",
	"olmo-3.1",
	"olmo-3",
	"nomic-embed-text-v2-moe",
	"devstral-small-2",
	"rnj-1",
	"devstral-2",
	"qwen3-next",
	"ministral-3",
	"deepseek-ocr",
	// "cogito-2.1", // only local tags are very large (404.0GB minimum)
	"gpt-oss-safeguard",
	"qwen3-vl",
	"granite4",
	"qwen3-embedding",
	"embeddinggemma",
	// "deepseek-v3.1", // only local tags are very large (404.0GB minimum)
	"gpt-oss",
	"qwen3-coder",
	"mistral-small3.2",
	"gemma3n",
	"magistral",
	"devstral",
	"qwen2.5vl",
	"phi4-reasoning",
	"phi4-mini-reasoning",
	"qwen3",
	"granite3.3",
	"deepcoder",
	"mistral-small3.1",
	"cogito",
	"llama4",
	"exaone-deep",
	"command-a",
	"gemma3",
	"command-r7b-arabic",
	"granite3.2-vision",
	"phi4-mini",
	"granite3.2",
	"r1-1776",
	"deepscaler",
	"openthinker",
	"deepseek-r1",
	"olmo2",
	"command-r7b",
	// "deepseek-v3", // only local tags are very large (404.0GB minimum)
	"phi4",
	"dolphin3",
	"smallthinker",
	"granite3.1-dense",
	"granite3.1-moe",
	"falcon3",
	"granite-embedding",
	"exaone3.5",
	"llama3.3",
	"snowflake-arctic-embed2",
	"sailor2",
	"qwq",
	"marco-o1",
	"tulu3",
	"athene-v2",
	"opencoder",
	"llama3.2-vision",
	"smollm2",
	"granite3-guardian",
	"aya-expanse",
	"granite3-dense",
	"granite3-moe",
	"nemotron",
	"shieldgemma",
	"llama-guard3",
	"llama3.2",
	"qwen2.5-coder",
	"solar-pro",
	"nemotron-mini",
	"qwen2.5",
	"bespoke-minicheck",
	"mistral-small",
	"reader-lm",
	"minicpm-v",
	// "deepseek-v2.5", // only local tags are very large (133.0GB minimum)
	"reflection",
	"yi-coder",
	"qwen2-math",
	"hermes3",
	"phi3.5",
	"smollm",
	"bge-large",
	"paraphrase-multilingual",
	"bge-m3",
	"mistral-large",
	"llama3.1",
	"nuextract",
	"mistral-nemo",
	"firefunction-v2",
	"llama3-groq-tool-use",
	"mathstral",
	"codegeex4",
	"glm4",
	"internlm2",
	"gemma2",
	"deepseek-coder-v2",
	"qwen2",
	"deepseek-v2",
	"codestral",
	"granite-code",
	"aya",
	"falcon2",
	"llama3-chatqa",
	"llava-phi3",
	"llava-llama3",
	"llama3-gradient",
	"moondream",
	"phi3",
	"dolphin-llama3",
	"llama3",
	"codeqwen",
	"snowflake-arctic-embed",
	"dbrx",
	"command-r-plus",
	"wizardlm2",
	"codegemma",
	"command-r",
	"mxbai-embed-large",
	"dolphincoder",
	"starcoder2",
	"all-minilm",
	"nomic-embed-text",
	"gemma",
	"stablelm2",
	"duckdb-nsql",
	"qwen",
	"tinydolphin",
	"stable-code",
	"nous-hermes2-mixtral",
	"megadolphin",
	"llama-pro",
	"tinyllama",
	"openhermes",
	"notux",
	"notus",
	"dolphin-mistral",
	"nous-hermes2",
	"dolphin-phi",
	"phi",
	"solar",
	"dolphin-mixtral",
	"mixtral",
	"bakllava",
	"llava",
	"stablelm-zephyr",
	"magicoder",
	"deepseek-llm",
	"meditron",
	"starling-lm",
	"orca2",
	"deepseek-coder",
	"alfred",
	"goliath",
	"neural-chat",
	"openchat",
	"yi",
	"yarn-mistral",
	"yarn-llama2",
	"xwinlm",
	"mistrallite",
	"codebooga",
	"mistral-openorca",
	"zephyr",
	"nexusraven",
	"samantha-mistral",
	"starcoder",
	"sqlcoder",
	"mistral",
	"falcon",
	"wizardcoder",
	"phind-codellama",
	"codellama",
	"wizardlm",
	"wizardlm-uncensored",
	"wizard-vicuna",
	"wizard-vicuna-uncensored",
	"wizard-math",
	"vicuna",
	"stable-beluga",
	"orca-mini",
	"open-orca-platypus2",
	"nous-hermes",
	"medllama2",
	"llama2",
	"llama2-uncensored",
	"llama2-chinese",
	"everythinglm",
	"codeup",
}

func init() {
	// Broad model sweeps. Each case skips models that do not expose the
	// capability it is testing.
	registerChatCases(testModels(libraryModels))
	registerLibraryEmbeddingCases(testModels(libraryModels))
	registerToolCases(testModels(libraryModels))
	registerVisionTextCases(testModels(libraryModels))
}
