MODELS = {

  "Qwen2.5-Coder-1.5B-Instruct-GGUF": {
    "model_max_length": 32768,
    "include": None,
    "name": "Qwen2.5-Coder-1.5B-Instruct-GGUF",
    "framework": "llama_cpp",
    "hub_id": "bartowski/Qwen2.5-Coder-1.5B-Instruct-GGUF",
    "filename": "Qwen2.5-Coder-1.5B-Instruct-Q4_K_M.gguf",
    "folder": "bartowski/Qwen2.5-Coder-1.5B-Instruct-GGUF",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": 7000
  },
  "Qwen2.5-VL-3B-Instruct": {
    "model_max_length": 32768,
    "include": None,
    "name": "Qwen2.5-VL-3B-Instruct",
    "framework": "transformers",
    "hub_id": "Qwen/Qwen2.5-VL-3B-Instruct",
    "filename": None,
    "folder": "Qwen/Qwen2.5-VL-3B-Instruct",
    "tasks": ["image-text-to-text", "text-generation"],
    "primary_task": "image-text-to-text",
    "port": None
  },
  "Qwen2.5-Coder-3B-Instruct-GGUF": {
    "model_max_length": 131072,
    "include": None,
    "name": "Qwen2.5-Coder-3B-Instruct-GGUF",
    "framework": "llama_cpp",
    "hub_id": "Qwen/Qwen2.5-Coder-3B-Instruct-GGUF",
    "filename": "qwen2.5-coder-3b-instruct-q4_k_m.gguf",
    "folder": "Qwen/Qwen2.5-Coder-3B-Instruct-GGUF",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": 7001
  },
  "Qwen2.5-VL-7B-Instruct": {
    "model_max_length": 32768,
    "include": None,
    "name": "Qwen2.5-VL-7B-Instruct",
    "framework": "transformers",
    "hub_id": "Qwen/Qwen2.5-VL-7B-Instruct",
    "filename": None,
    "folder": "Qwen/Qwen2.5-VL-7B-Instruct",
    "tasks": ["image-text-to-text", "text-generation"],
    "primary_task": "image-text-to-text",
    "port": 7005
  },
  "DAN-Qwen3-1.7B": {
    "model_max_length": 32768,
    "include": None,
    "name": "DAN-Qwen3-1.7B",
    "framework": "transformers",
    "hub_id": "UnfilteredAI/DAN-Qwen3-1.7B",
    "filename": None,
    "folder": "UnfilteredAI/DAN-Qwen3-1.7B",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": None
  },
  # FIXED: was primary_task="text-generation" with framework=transformers and
  # tasks=["text-generation"] — that pair IS registered, leave alone. But the
  # entry below had a copy-paste mismatch.
  "Qwen3.6-27B-AEON-Ultimate-Uncensored-GPTQ-Pro-FOEM-4bit-g128": {
    "model_max_length": 262144,
    "include": None,
    "name": "Qwen3.6-27B-AEON-Ultimate-Uncensored-GPTQ-Pro-FOEM-4bit-g128",
    "framework": "transformers",
    "hub_id": "groxaxo/Qwen3.6-27B-AEON-Ultimate-Uncensored-GPTQ-Pro-FOEM-4bit-g128",
    "filename": None,
    "folder": "groxaxo/Qwen3.6-27B-AEON-Ultimate-Uncensored-GPTQ-Pro-FOEM-4bit-g128",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": None
  },
  "Qwen3.6-35B-A3B": {
    "model_max_length": 32768,
    "include": "*.safetensors",
    "name": "Qwen3.6-35B-A3B",
    "framework": "transformers",
    "hub_id": "Qwen/Qwen3.6-35B-A3B",
    "filename": None,
    "folder": "Qwen/Qwen3.6-35B-A3B",
    "tasks": ["image-text-to-text", "text-generation"],
    "primary_task": "image-text-to-text",
    "port": None
  },
  # FIXED: was primary_task="image-text-to-text" on framework=llama_cpp.
  # There is no ("llama_cpp", "image-text-to-text") runner — and shouldn't be,
  # llama.cpp here doesn't do vision. This is a coder model on a chat GGUF.
  "Qwen3-Coder-Next-GGUF": {
    "model_max_length": 32768,
    "include": "Qwen3-Coder-Next-Q4_K_M/*.gguf",
    "name": "Qwen3-Coder-Next-GGUF",
    "framework": "llama_cpp",
    "hub_id": "Qwen/Qwen3-Coder-Next-GGUF",
    "filename": "Qwen3-Coder-Next-Q4_K_M-00001-of-00004.gguf",
    "folder": "Qwen/Qwen3-Coder-Next-GGUF",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": 7002
  },
  "flux2-klein-9b-uncensored-text-encoder": {
    "model_max_length": 131072,
    "include": None,
    "name": "flux2-klein-9b-uncensored-text-encoder",
    "framework": "llama_cpp",
    "hub_id": "ponpoke/flux2-klein-9b-uncensored-text-encoder",
    "filename": "flux2-klein-9b-uncensored-f16.gguf",
    "folder": "ponpoke/flux2-klein-9b-uncensored-text-encoder",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": 7003
  },
  # FIXED: was primary_task="image-text-to-text" with tasks=["image-text-to-text",
  # "text-generation"]. DeepCoder is a coder model; image-text-to-text is wrong.
  "DeepCoder-14B-Preview": {
    "model_max_length": 32768,
    "include": None,
    "name": "DeepCoder-14B-Preview",
    "framework": "transformers",
    "hub_id": "agentica-org/DeepCoder-14B-Preview",
    "filename": None,
    "folder": "agentica-org/DeepCoder-14B-Preview",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": None
  },
  "DAN-L3-R1-8B-i1-GGUF": {
    "model_max_length": 32768,
    "include": "*Q4_K_M.gguf",
    "name": "DAN-L3-R1-8B-i1-GGUF",
    "framework": "llama_cpp",
    "hub_id": "mradermacher/DAN-L3-R1-8B-i1-GGUF",
    "filename": "DAN-L3-R1-8B.i1-IQ1_M.gguf",
    "folder": "mradermacher/DAN-L3-R1-8B-i1-GGUF",
    "tasks": ["text-generation"],
    "primary_task": "text-generation",
    "port": 7004
  },
  "Falconsai-text-summarization": {
    "model_max_length": 512,
    "include": None,
    "name": "Falconsai-text-summarization",
    "framework": "transformers",
    "hub_id": "Falconsai/text_summarization",
    "filename": None,
    "folder": "Falconsai/text_summarization",
    "tasks": ["summarization"],
    "primary_task": "summarization",
    "port": None,
  },
  "led-large-16384": {
    "model_max_length": 16384,
    "include": None,
    "name": "led-large-16384",
    "framework": "transformers",
    "hub_id": "allenai/led-large-16384",
    "filename": None,
    "folder": "allenai/led-large-16384",
    "tasks": ["summarization"],
    "primary_task": "summarization",
    "port": None,
  },
  "flan-t5-xl": {
    "model_max_length": 1024,
    "include": None,
    "name": "flan-t5-xl",
    "framework": "transformers",
    "hub_id": "google/flan-t5-xl",
    "filename": None,
    "folder": "google/flan-t5-xl",
    "tasks": ["summarization", "text2text-generation"],
    "primary_task": "summarization",
    "port": None,
  },
  # NOTE: feature-extraction / sentence-similarity have no runner or builder
  # registered. validate_registry() will reject these two until you add a
  # ("transformers", "feature-extraction") runner+builder pair. Leaving them
  # here as a deliberate signal — if you don't intend to serve them yet,
  # remove the entries; if you do, wire up the runner.
  "all-minilm-l6-v2": {
    "model_max_length": 512,
    "include": None,
    "name": "all-minilm-l6-v2",
    "framework": "transformers",
    "hub_id": "sentence-transformers/all-minilm-l6-v2",
    "filename": None,
    "folder": "sentence-transformers/all-minilm-l6-v2",
    "tasks": ["feature-extraction", "sentence-similarity"],
    "primary_task": "feature-extraction",
    "port": None,
  },
  "gte-large-en-v1.5": {
    "model_max_length": 8192,
    "include": None,
    "name": "gte-large-en-v1.5",
    "framework": "transformers",
    "hub_id": "Alibaba-NLP/gte-large-en-v1.5",
    "filename": None,
    "folder": "Alibaba-NLP/gte-large-en-v1.5",
    "tasks": ["feature-extraction", "sentence-similarity"],
    "primary_task": "feature-extraction",
    "port": None,
  },
  "whisper-large-v3": {
    "model_max_length": 448,
    "include": None,
    "name": "whisper-large-v3",
    "framework": "transformers",
    "hub_id": "openai/whisper-large-v3",
    "filename": None,
    "folder": "openai/whisper-large-v3",
    "tasks": ["automatic-speech-recognition"],
    "primary_task": "automatic-speech-recognition",
    "port": None,
  },
}
