feat(ai): derive generated model types from JSON

This commit is contained in:
Armin Ronacher
2026-07-22 13:11:21 +02:00
parent 906b40a753
commit 5dc40fee33
45 changed files with 384 additions and 4687 deletions
+3 -199
View File
@@ -2,203 +2,7 @@
// Do not edit manually - run 'npm run generate-models' to update
import values from "./data/huggingface.json" with { type: "json" };
import type { Model } from "../types.ts";
import { flattenModelCatalog, type ModelCatalog } from "../model-catalog.ts";
export const HUGGINGFACE_MODELS = values as {
"MiniMaxAI/MiniMax-M2": Model<"openai-completions"> & {
id: "MiniMaxAI/MiniMax-M2";
provider: "huggingface";
};
"MiniMaxAI/MiniMax-M2.1": Model<"openai-completions"> & {
id: "MiniMaxAI/MiniMax-M2.1";
provider: "huggingface";
};
"MiniMaxAI/MiniMax-M2.5": Model<"openai-completions"> & {
id: "MiniMaxAI/MiniMax-M2.5";
provider: "huggingface";
};
"MiniMaxAI/MiniMax-M2.7": Model<"openai-completions"> & {
id: "MiniMaxAI/MiniMax-M2.7";
provider: "huggingface";
};
"MiniMaxAI/MiniMax-M3": Model<"openai-completions"> & {
id: "MiniMaxAI/MiniMax-M3";
provider: "huggingface";
};
"Qwen/Qwen3-235B-A22B": Model<"openai-completions"> & {
id: "Qwen/Qwen3-235B-A22B";
provider: "huggingface";
};
"Qwen/Qwen3-235B-A22B-Thinking-2507": Model<"openai-completions"> & {
id: "Qwen/Qwen3-235B-A22B-Thinking-2507";
provider: "huggingface";
};
"Qwen/Qwen3-32B": Model<"openai-completions"> & {
id: "Qwen/Qwen3-32B";
provider: "huggingface";
};
"Qwen/Qwen3-Coder-30B-A3B-Instruct": Model<"openai-completions"> & {
id: "Qwen/Qwen3-Coder-30B-A3B-Instruct";
provider: "huggingface";
};
"Qwen/Qwen3-Coder-480B-A35B-Instruct": Model<"openai-completions"> & {
id: "Qwen/Qwen3-Coder-480B-A35B-Instruct";
provider: "huggingface";
};
"Qwen/Qwen3-Coder-Next": Model<"openai-completions"> & {
id: "Qwen/Qwen3-Coder-Next";
provider: "huggingface";
};
"Qwen/Qwen3-Next-80B-A3B-Instruct": Model<"openai-completions"> & {
id: "Qwen/Qwen3-Next-80B-A3B-Instruct";
provider: "huggingface";
};
"Qwen/Qwen3-Next-80B-A3B-Thinking": Model<"openai-completions"> & {
id: "Qwen/Qwen3-Next-80B-A3B-Thinking";
provider: "huggingface";
};
"Qwen/Qwen3.5-122B-A10B": Model<"openai-completions"> & {
id: "Qwen/Qwen3.5-122B-A10B";
provider: "huggingface";
};
"Qwen/Qwen3.5-27B": Model<"openai-completions"> & {
id: "Qwen/Qwen3.5-27B";
provider: "huggingface";
};
"Qwen/Qwen3.5-35B-A3B": Model<"openai-completions"> & {
id: "Qwen/Qwen3.5-35B-A3B";
provider: "huggingface";
};
"Qwen/Qwen3.5-397B-A17B": Model<"openai-completions"> & {
id: "Qwen/Qwen3.5-397B-A17B";
provider: "huggingface";
};
"Qwen/Qwen3.5-9B": Model<"openai-completions"> & {
id: "Qwen/Qwen3.5-9B";
provider: "huggingface";
};
"Qwen/Qwen3.6-27B": Model<"openai-completions"> & {
id: "Qwen/Qwen3.6-27B";
provider: "huggingface";
};
"Qwen/Qwen3.6-35B-A3B": Model<"openai-completions"> & {
id: "Qwen/Qwen3.6-35B-A3B";
provider: "huggingface";
};
"XiaomiMiMo/MiMo-V2-Flash": Model<"openai-completions"> & {
id: "XiaomiMiMo/MiMo-V2-Flash";
provider: "huggingface";
};
"XiaomiMiMo/MiMo-V2.5-Pro": Model<"openai-completions"> & {
id: "XiaomiMiMo/MiMo-V2.5-Pro";
provider: "huggingface";
};
"deepseek-ai/DeepSeek-R1": Model<"openai-completions"> & {
id: "deepseek-ai/DeepSeek-R1";
provider: "huggingface";
};
"deepseek-ai/DeepSeek-R1-0528": Model<"openai-completions"> & {
id: "deepseek-ai/DeepSeek-R1-0528";
provider: "huggingface";
};
"deepseek-ai/DeepSeek-V3.2": Model<"openai-completions"> & {
id: "deepseek-ai/DeepSeek-V3.2";
provider: "huggingface";
};
"deepseek-ai/DeepSeek-V4-Flash": Model<"openai-completions"> & {
id: "deepseek-ai/DeepSeek-V4-Flash";
provider: "huggingface";
};
"deepseek-ai/DeepSeek-V4-Pro": Model<"openai-completions"> & {
id: "deepseek-ai/DeepSeek-V4-Pro";
provider: "huggingface";
};
"google/gemma-4-26B-A4B-it": Model<"openai-completions"> & {
id: "google/gemma-4-26B-A4B-it";
provider: "huggingface";
};
"google/gemma-4-31B-it": Model<"openai-completions"> & {
id: "google/gemma-4-31B-it";
provider: "huggingface";
};
"meta-llama/Llama-3.3-70B-Instruct": Model<"openai-completions"> & {
id: "meta-llama/Llama-3.3-70B-Instruct";
provider: "huggingface";
};
"moonshotai/Kimi-K2-Instruct": Model<"openai-completions"> & {
id: "moonshotai/Kimi-K2-Instruct";
provider: "huggingface";
};
"moonshotai/Kimi-K2-Instruct-0905": Model<"openai-completions"> & {
id: "moonshotai/Kimi-K2-Instruct-0905";
provider: "huggingface";
};
"moonshotai/Kimi-K2-Thinking": Model<"openai-completions"> & {
id: "moonshotai/Kimi-K2-Thinking";
provider: "huggingface";
};
"moonshotai/Kimi-K2.5": Model<"openai-completions"> & {
id: "moonshotai/Kimi-K2.5";
provider: "huggingface";
};
"moonshotai/Kimi-K2.6": Model<"openai-completions"> & {
id: "moonshotai/Kimi-K2.6";
provider: "huggingface";
};
"moonshotai/Kimi-K2.7-Code": Model<"openai-completions"> & {
id: "moonshotai/Kimi-K2.7-Code";
provider: "huggingface";
};
"openai/gpt-oss-120b": Model<"openai-completions"> & {
id: "openai/gpt-oss-120b";
provider: "huggingface";
};
"openai/gpt-oss-20b": Model<"openai-completions"> & {
id: "openai/gpt-oss-20b";
provider: "huggingface";
};
"stepfun-ai/Step-3.5-Flash": Model<"openai-completions"> & {
id: "stepfun-ai/Step-3.5-Flash";
provider: "huggingface";
};
"stepfun-ai/Step-3.7-Flash": Model<"openai-completions"> & {
id: "stepfun-ai/Step-3.7-Flash";
provider: "huggingface";
};
"zai-org/GLM-4.5": Model<"openai-completions"> & {
id: "zai-org/GLM-4.5";
provider: "huggingface";
};
"zai-org/GLM-4.5-Air": Model<"openai-completions"> & {
id: "zai-org/GLM-4.5-Air";
provider: "huggingface";
};
"zai-org/GLM-4.5V": Model<"openai-completions"> & {
id: "zai-org/GLM-4.5V";
provider: "huggingface";
};
"zai-org/GLM-4.6": Model<"openai-completions"> & {
id: "zai-org/GLM-4.6";
provider: "huggingface";
};
"zai-org/GLM-4.7": Model<"openai-completions"> & {
id: "zai-org/GLM-4.7";
provider: "huggingface";
};
"zai-org/GLM-4.7-Flash": Model<"openai-completions"> & {
id: "zai-org/GLM-4.7-Flash";
provider: "huggingface";
};
"zai-org/GLM-5": Model<"openai-completions"> & {
id: "zai-org/GLM-5";
provider: "huggingface";
};
"zai-org/GLM-5.1": Model<"openai-completions"> & {
id: "zai-org/GLM-5.1";
provider: "huggingface";
};
"zai-org/GLM-5.2": Model<"openai-completions"> & {
id: "zai-org/GLM-5.2";
provider: "huggingface";
};
};
export const HUGGINGFACE_MODELS: ModelCatalog<typeof values, "huggingface"> =
flattenModelCatalog("huggingface", values);