Преглед изворни кода

feat(core): add china providers batch 1 (10 providers, 419 models from lobe@main)

Includes: moonshot, zhipu, siliconcloud, ppio, bailian, volcengine,
hunyuan, baichuan, stepfun, wenxin.

bailian 和 minimax 保留 inkos 原 Anthropic 兼容端点(api=anthropic-messages),
其余按 lobe sdkType 派生 api 字段。bailian 复用 qwen models(lobe 无独立 bailian.ts)。
fanghanjun пре 6 месеци
родитељ
комит
57f353dbcf

+ 21 - 1
packages/core/src/__tests__/providers-schema.test.ts

@@ -1,5 +1,5 @@
 import { describe, it, expect } from "vitest";
 import { describe, it, expect } from "vitest";
-import { getAllProviders } from "../llm/providers/index.js";
+import { getAllProviders, getProvider } from "../llm/providers/index.js";
 
 
 describe("providers structural integrity", () => {
 describe("providers structural integrity", () => {
   it("每个 provider 必填字段都存在", () => {
   it("每个 provider 必填字段都存在", () => {
@@ -42,4 +42,24 @@ describe("providers structural integrity", () => {
     expect(ids).toContain("qwen");
     expect(ids).toContain("qwen");
     expect(ids).toContain("minimax");
     expect(ids).toContain("minimax");
   });
   });
+
+  it("B1:中国原厂批次 1 全部收录(10 个)", () => {
+    const ids = getAllProviders().map((p) => p.id);
+    for (const id of [
+      "moonshot", "zhipu", "siliconcloud", "ppio", "bailian",
+      "volcengine", "hunyuan", "baichuan", "stepfun", "wenxin",
+    ]) {
+      expect(ids).toContain(id);
+    }
+  });
+
+  it("B1:bailian 保留 anthropic-messages api(例外,不按 lobe 迁移)", () => {
+    expect(getProvider("bailian")?.api).toBe("anthropic-messages");
+    expect(getProvider("bailian")?.baseUrl).toContain("/anthropic");
+  });
+
+  it("B1:minimax 保留 anthropic-messages api(例外)", () => {
+    expect(getProvider("minimax")?.api).toBe("anthropic-messages");
+    expect(getProvider("minimax")?.baseUrl).toContain("/anthropic");
+  });
 });
 });

+ 20 - 0
packages/core/src/llm/providers/baichuan.ts

@@ -0,0 +1,20 @@
+import type { InkosProvider } from "./types.js";
+
+export const BAICHUAN: InkosProvider = {
+  id: "baichuan",
+  label: "百川智能",
+  api: "openai-completions",
+  baseUrl: "https://api.baichuan-ai.com/v1",
+  checkModel: "Baichuan4",
+  temperatureRange: [0, 1],
+  defaultTemperature: 0.3,
+  writingTemperature: 1,
+  models: [
+    { id: "Baichuan4", displayName: "Baichuan 4", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true, search: true }, enabled: true },
+    { id: "Baichuan4-Turbo", displayName: "Baichuan 4 Turbo", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true, search: true }, enabled: true },
+    { id: "Baichuan4-Air", displayName: "Baichuan 4 Air", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true, search: true }, enabled: true },
+    { id: "Baichuan3-Turbo", displayName: "Baichuan 3 Turbo", maxOutput: 8192, contextWindowTokens: 32768, abilities: { functionCall: true, search: true } },
+    { id: "Baichuan3-Turbo-128k", displayName: "Baichuan 3 Turbo 128k", maxOutput: 4096, contextWindowTokens: 128000 },
+    { id: "Baichuan2-Turbo", displayName: "Baichuan 2 Turbo", maxOutput: 8192, contextWindowTokens: 32768 },
+  ],
+};

+ 110 - 0
packages/core/src/llm/providers/bailian.ts

@@ -0,0 +1,110 @@
+import type { InkosProvider } from "./types.js";
+
+export const BAILIAN: InkosProvider = {
+  id: "bailian",
+  label: "百炼 (通义千问)",
+  api: "anthropic-messages",
+  baseUrl: "https://dashscope.aliyuncs.com/apps/anthropic",
+  modelsBaseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
+  piProvider: "anthropic",
+  checkModel: "qwen-turbo",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "kimi-k2.5", displayName: "Kimi K2.5", maxOutput: 32768, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "MiniMax-M2.5", displayName: "MiniMax-M2.5", maxOutput: 32768, contextWindowTokens: 196608, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "MiniMax-M2.1", displayName: "MiniMax-M2.1", maxOutput: 32768, contextWindowTokens: 204800, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "qwen3-vl-plus", displayName: "Qwen3 VL Plus", maxOutput: 32768, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true }, releasedAt: "2025-09-23" },
+    { id: "qwen3-vl-flash", displayName: "Qwen3 VL Flash", maxOutput: 32768, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true } },
+    { id: "deepseek-v3.2", displayName: "DeepSeek V3.2", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "deepseek-v3.2-exp", displayName: "DeepSeek V3.2 Exp", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "deepseek-v3.1", displayName: "DeepSeek V3.1", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "kimi-k2-thinking", displayName: "Kimi K2 Thinking", maxOutput: 16384, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-11-10" },
+    { id: "Moonshot-Kimi-K2-Instruct", displayName: "Kimi K2 Instruct", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true, search: true }, releasedAt: "2025-07-17" },
+    { id: "glm-5", displayName: "GLM-5", maxOutput: 16384, contextWindowTokens: 202752, abilities: { reasoning: true, functionCall: true } },
+    { id: "glm-4.7", displayName: "GLM-4.7", maxOutput: 16384, contextWindowTokens: 202752, abilities: { reasoning: true, functionCall: true } },
+    { id: "glm-4.6", displayName: "GLM-4.6", maxOutput: 16384, contextWindowTokens: 202752, abilities: { reasoning: true, functionCall: true } },
+    { id: "glm-4.5", displayName: "GLM-4.5", maxOutput: 16384, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "glm-4.5-air", displayName: "GLM-4.5-Air", maxOutput: 16384, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-coder-next", displayName: "Qwen3 Coder Next", maxOutput: 65536, contextWindowTokens: 262144, abilities: { functionCall: true } },
+    { id: "qwen3-coder-plus", displayName: "Qwen3 Coder Plus", maxOutput: 65536, contextWindowTokens: 1000000, abilities: { functionCall: true } },
+    { id: "qwen3-coder-flash", displayName: "Qwen3 Coder Flash", maxOutput: 65536, contextWindowTokens: 1000000, abilities: { functionCall: true } },
+    { id: "qwen3-coder-480b-a35b-instruct", displayName: "Qwen3 Coder 480B A35B", maxOutput: 65536, contextWindowTokens: 262144, abilities: { functionCall: true } },
+    { id: "qwen3-coder-30b-a3b-instruct", displayName: "Qwen3 Coder 30B A3B", maxOutput: 65536, contextWindowTokens: 262144, abilities: { functionCall: true } },
+    { id: "qwen3.5-397b-a17b", displayName: "Qwen3.5-397B-A17B", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-16" },
+    { id: "qwen3.5-122b-a10b", displayName: "Qwen3.5-122B-A10B", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-24" },
+    { id: "qwen3.5-27b", displayName: "Qwen3.5-27B", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-24" },
+    { id: "qwen3.5-35b-a3b", displayName: "Qwen3.5-35B-A3B", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-24" },
+    { id: "qwen3-235b-a22b-thinking-2507", displayName: "Qwen3 235B A22B Thinking 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-07-25" },
+    { id: "qwen3-235b-a22b-instruct-2507", displayName: "Qwen3 235B A22B Instruct 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-07-22" },
+    { id: "qwen3-30b-a3b-thinking-2507", displayName: "Qwen3 30B A3B Thinking 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-07-30" },
+    { id: "qwen3-30b-a3b-instruct-2507", displayName: "Qwen3 30B A3B Instruct 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-07-29" },
+    { id: "qwen3-next-80b-a3b-thinking", displayName: "Qwen3 Next 80B A3B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-09-12" },
+    { id: "qwen3-next-80b-a3b-instruct", displayName: "Qwen3 Next 80B A3B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-09-12" },
+    { id: "qwen3-235b-a22b", displayName: "Qwen3 235B A22B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwen3-32b", displayName: "Qwen3 32B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwen3-30b-a3b", displayName: "Qwen3 30B A3B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwen3-14b", displayName: "Qwen3 14B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwen3-8b", displayName: "Qwen3 8B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwen3-4b", displayName: "Qwen3 4B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwen3-1.7b", displayName: "Qwen3 1.7B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwen3-0.6b", displayName: "Qwen3 0.6B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "qwq-plus", displayName: "QwQ Plus", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2025-03-05" },
+    { id: "qwen3.5-flash", displayName: "Qwen3.5 Flash", maxOutput: 65536, contextWindowTokens: 1000000, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, enabled: true, releasedAt: "2026-02-24" },
+    { id: "qwen-flash", displayName: "Qwen Flash", maxOutput: 32768, contextWindowTokens: 1000000, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2025-07-28" },
+    { id: "qwen-turbo", displayName: "Qwen Turbo", maxOutput: 16384, contextWindowTokens: 1000000, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2025-07-15" },
+    { id: "qwen3.5-plus", displayName: "Qwen3.5 Plus", maxOutput: 65536, contextWindowTokens: 1000000, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, enabled: true, releasedAt: "2026-02-15" },
+    { id: "qwen-plus", displayName: "Qwen Plus", maxOutput: 32768, contextWindowTokens: 1000000, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "qwen3-max", displayName: "Qwen3 Max", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2026-01-23" },
+    { id: "qwen3-max-preview", displayName: "Qwen3 Max Preview", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2025-10-30" },
+    { id: "qwen-max", displayName: "Qwen Max", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "qwen-long", displayName: "Qwen Long", maxOutput: 32768, contextWindowTokens: 10000000, abilities: { functionCall: true } },
+    { id: "qwen3.5-omni-plus", displayName: "Qwen3.5 Omni Plus", maxOutput: 65536, contextWindowTokens: 262144, abilities: { vision: true, search: true }, releasedAt: "2026-03-30" },
+    { id: "qwen3.5-omni-flash", displayName: "Qwen3.5 Omni Flash", maxOutput: 65536, contextWindowTokens: 262144, abilities: { vision: true, search: true }, releasedAt: "2026-03-30" },
+    { id: "qwen3-omni-flash", displayName: "Qwen3 Omni Flash", maxOutput: 16384, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2025-12-04" },
+    { id: "qwen-omni-turbo", displayName: "Qwen Omni Turbo", maxOutput: 2048, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qwen2.5-omni-7b", displayName: "Qwen2.5 Omni 7B", maxOutput: 2048, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qwen-vl-plus", displayName: "Qwen VL Plus", maxOutput: 8192, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen-vl-max", displayName: "Qwen VL Max", maxOutput: 8192, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen-vl-ocr", displayName: "Qwen VL OCR", maxOutput: 4096, contextWindowTokens: 34096, abilities: { vision: true } },
+    { id: "qwen3-vl-30b-a3b-thinking", displayName: "Qwen3 VL 30B A3B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true } },
+    { id: "qwen3-vl-30b-a3b-instruct", displayName: "Qwen3 VL 30B A3B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-8b-thinking", displayName: "Qwen3 VL 8B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true } },
+    { id: "qwen3-vl-8b-instruct", displayName: "Qwen3 VL 8B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-235b-a22b-thinking", displayName: "Qwen3 VL 235B A22B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true } },
+    { id: "qwen3-vl-235b-a22b-instruct", displayName: "Qwen3 VL 235B A22B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-32b-thinking", displayName: "Qwen3 VL 32B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true } },
+    { id: "qwen3-vl-32b-instruct", displayName: "Qwen3 VL 32B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen-math-turbo", displayName: "Qwen Math Turbo", maxOutput: 3072, contextWindowTokens: 4096 },
+    { id: "qwen-math-plus", displayName: "Qwen Math Plus", maxOutput: 3072, contextWindowTokens: 4096 },
+    { id: "qwen-coder-turbo", displayName: "Qwen Coder Turbo", maxOutput: 8192, contextWindowTokens: 131072 },
+    { id: "qwen-coder-plus", displayName: "Qwen Coder Plus", maxOutput: 8192, contextWindowTokens: 131072 },
+    { id: "qwq-32b", displayName: "QwQ 32B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, search: true }, releasedAt: "2025-03-06" },
+    { id: "qwq-32b-preview", displayName: "QwQ 32B Preview", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true }, releasedAt: "2024-11-28" },
+    { id: "qvq-max", displayName: "QVQ Max", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true }, releasedAt: "2025-05-15" },
+    { id: "qvq-plus", displayName: "QVQ Plus", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true }, releasedAt: "2025-05-15" },
+    { id: "qvq-72b-preview", displayName: "QVQ 72B Preview", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true, vision: true }, releasedAt: "2024-12-25" },
+    { id: "qwen2.5-7b-instruct", displayName: "Qwen2.5 7B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-14b-instruct", displayName: "Qwen2.5 14B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-32b-instruct", displayName: "Qwen2.5 32B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-72b-instruct", displayName: "Qwen2.5 72B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-14b-instruct-1m", displayName: "Qwen2.5 14B 1M", maxOutput: 8192, contextWindowTokens: 1000000, abilities: { functionCall: true }, releasedAt: "2025-01-27" },
+    { id: "qwen2.5-math-7b-instruct", displayName: "Qwen2.5 Math 7B", maxOutput: 3072, contextWindowTokens: 4096 },
+    { id: "qwen2.5-math-72b-instruct", displayName: "Qwen2.5 Math 72B", maxOutput: 3072, contextWindowTokens: 4096, releasedAt: "2025-07-23" },
+    { id: "qwen2.5-coder-7b-instruct", displayName: "Qwen2.5 Coder 7B", maxOutput: 8192, contextWindowTokens: 131072 },
+    { id: "qwen2.5-coder-14b-instruct", displayName: "Qwen2.5 Coder 14B", maxOutput: 8192, contextWindowTokens: 131072 },
+    { id: "qwen2.5-coder-32b-instruct", displayName: "Qwen2.5 Coder 32B", maxOutput: 8192, contextWindowTokens: 131072 },
+    { id: "qwen2.5-vl-72b-instruct", displayName: "Qwen2.5 VL 72B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { vision: true }, releasedAt: "2025-01-27" },
+    { id: "qwen2.5-vl-32b-instruct", displayName: "Qwen2.5 VL 32B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { vision: true }, releasedAt: "2025-03-24" },
+    { id: "qwen2.5-vl-7b-instruct", displayName: "Qwen2.5 VL 7B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { vision: true }, releasedAt: "2025-01-27" },
+    { id: "deepseek-r1-0528", displayName: "DeepSeek R1 0528", maxOutput: 16384, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2025-05-28" },
+    { id: "deepseek-v3", displayName: "DeepSeek V3", maxOutput: 8192, contextWindowTokens: 65536, abilities: { functionCall: true, search: true }, releasedAt: "2025-01-27" },
+    { id: "deepseek-r1-distill-qwen-1.5b", displayName: "DeepSeek R1 Distill Qwen 1.5B", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true } },
+    { id: "deepseek-r1-distill-qwen-7b", displayName: "DeepSeek R1 Distill Qwen 7B", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true } },
+    { id: "deepseek-r1-distill-qwen-14b", displayName: "DeepSeek R1 Distill Qwen 14B", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true } },
+    { id: "deepseek-r1-distill-qwen-32b", displayName: "DeepSeek R1 Distill Qwen 32B", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true } },
+    { id: "deepseek-r1-distill-llama-8b", displayName: "DeepSeek R1 Distill Llama 8B", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true } },
+    { id: "deepseek-r1-distill-llama-70b", displayName: "DeepSeek R1 Distill Llama 70B", maxOutput: 16384, contextWindowTokens: 32768, abilities: { reasoning: true } },
+  ],
+};

+ 34 - 0
packages/core/src/llm/providers/hunyuan.ts

@@ -0,0 +1,34 @@
+import type { InkosProvider } from "./types.js";
+
+export const HUNYUAN: InkosProvider = {
+  id: "hunyuan",
+  label: "腾讯混元",
+  api: "openai-completions",
+  baseUrl: "https://api.hunyuan.cloud.tencent.com/v1",
+  checkModel: "hunyuan-lite",
+  temperatureRange: [0, 2],
+  defaultTemperature: 1,
+  writingTemperature: 1,
+  models: [
+    { id: "hunyuan-2.0-thinking-20251109", displayName: "Tencent HY 2.0 Think", maxOutput: 64000, contextWindowTokens: 128000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2025-11-09" },
+    { id: "hunyuan-2.0-instruct-20251111", displayName: "Tencent HY 2.0 Instruct", maxOutput: 16000, contextWindowTokens: 128000, abilities: { functionCall: true, search: true }, enabled: true, releasedAt: "2025-11-11" },
+    { id: "hunyuan-a13b", displayName: "Hunyuan A13B", maxOutput: 32000, contextWindowTokens: 256000, abilities: { reasoning: true, search: true }, enabled: true, releasedAt: "2025-06-25" },
+    { id: "hunyuan-t1-latest", displayName: "Hunyuan T1", maxOutput: 64000, contextWindowTokens: 96000, abilities: { reasoning: true, search: true }, releasedAt: "2025-08-22" },
+    { id: "hunyuan-t1-20250711", displayName: "Hunyuan T1 20250711", maxOutput: 64000, contextWindowTokens: 92000, abilities: { reasoning: true, search: true }, releasedAt: "2025-07-11" },
+    { id: "hunyuan-t1-20250529", displayName: "Hunyuan T1 20250529", maxOutput: 64000, contextWindowTokens: 92000, abilities: { reasoning: true, search: true }, releasedAt: "2025-05-29" },
+    { id: "hunyuan-t1-20250403", displayName: "Hunyuan T1 20250403", maxOutput: 64000, contextWindowTokens: 92000, abilities: { reasoning: true, search: true }, releasedAt: "2025-04-03" },
+    { id: "hunyuan-t1-20250321", displayName: "Hunyuan T1 20250321", maxOutput: 64000, contextWindowTokens: 92000, abilities: { reasoning: true, search: true }, releasedAt: "2025-03-21" },
+    { id: "hunyuan-lite", displayName: "Hunyuan Lite", maxOutput: 6000, contextWindowTokens: 256000, enabled: true, releasedAt: "2024-10-30" },
+    { id: "hunyuan-standard", displayName: "Hunyuan Standard", maxOutput: 2000, contextWindowTokens: 32000, abilities: { search: true }, releasedAt: "2025-02-10" },
+    { id: "hunyuan-standard-256K", displayName: "Hunyuan Standard 256K", maxOutput: 6000, contextWindowTokens: 256000, abilities: { search: true }, releasedAt: "2025-02-10" },
+    { id: "hunyuan-large", displayName: "Hunyuan Large", maxOutput: 4000, contextWindowTokens: 32000, abilities: { search: true }, releasedAt: "2025-02-10" },
+    { id: "hunyuan-large-longcontext", displayName: "Hunyuan Large Longcontext", maxOutput: 6000, contextWindowTokens: 134000, abilities: { search: true }, releasedAt: "2024-12-18" },
+    { id: "hunyuan-turbo-latest", displayName: "Hunyuan Turbo", maxOutput: 4000, contextWindowTokens: 32000, abilities: { functionCall: true, search: true }, releasedAt: "2025-01-10" },
+    { id: "hunyuan-turbo-20241223", displayName: "Hunyuan Turbo 20241223", maxOutput: 4000, contextWindowTokens: 32000, abilities: { functionCall: true, search: true }, releasedAt: "2025-01-10" },
+    { id: "hunyuan-turbos-longtext-128k-20250325", displayName: "Hunyuan TurboS LongText 128K", maxOutput: 6000, contextWindowTokens: 134000, abilities: { functionCall: true, search: true }, releasedAt: "2025-03-25" },
+    { id: "hunyuan-turbos-latest", displayName: "Hunyuan TurboS", maxOutput: 16000, contextWindowTokens: 44000, abilities: { functionCall: true, search: true }, releasedAt: "2025-07-16" },
+    { id: "hunyuan-vision-1.5-instruct", displayName: "Hunyuan Vision 1.5 Instruct", maxOutput: 16000, contextWindowTokens: 40000, abilities: { vision: true }, releasedAt: "2025-12-17" },
+    { id: "hunyuan-t1-vision-20250916", displayName: "Hunyuan T1 Vision 20250916", maxOutput: 20000, contextWindowTokens: 48000, abilities: { reasoning: true, vision: true }, releasedAt: "2025-09-16" },
+    { id: "hunyuan-turbos-vision-video", displayName: "Hunyuan Turbos Vision Video", maxOutput: 8000, contextWindowTokens: 32000, abilities: { vision: true }, releasedAt: "2025-07-28" },
+  ],
+};

+ 13 - 6
packages/core/src/llm/providers/index.ts

@@ -5,6 +5,17 @@ import { GOOGLE } from "./google.js";
 import { DEEPSEEK } from "./deepseek.js";
 import { DEEPSEEK } from "./deepseek.js";
 import { QWEN } from "./qwen.js";
 import { QWEN } from "./qwen.js";
 import { MINIMAX } from "./minimax.js";
 import { MINIMAX } from "./minimax.js";
+// B1
+import { MOONSHOT } from "./moonshot.js";
+import { ZHIPU } from "./zhipu.js";
+import { SILICONCLOUD } from "./siliconcloud.js";
+import { PPIO } from "./ppio.js";
+import { BAILIAN } from "./bailian.js";
+import { VOLCENGINE } from "./volcengine.js";
+import { HUNYUAN } from "./hunyuan.js";
+import { BAICHUAN } from "./baichuan.js";
+import { STEPFUN } from "./stepfun.js";
+import { WENXIN } from "./wenxin.js";
 
 
 export type { InkosProvider, InkosModel, ApiProtocol } from "./types.js";
 export type { InkosProvider, InkosModel, ApiProtocol } from "./types.js";
 
 
@@ -13,12 +24,8 @@ export type { InkosProvider, InkosModel, ApiProtocol } from "./types.js";
  * 但 Layer 2 还会按 PROVIDER_PRIORITY 显式排序,所以此处顺序不影响结果。
  * 但 Layer 2 还会按 PROVIDER_PRIORITY 显式排序,所以此处顺序不影响结果。
  */
  */
 const ALL_PROVIDERS: readonly InkosProvider[] = [
 const ALL_PROVIDERS: readonly InkosProvider[] = [
-  ANTHROPIC,
-  OPENAI,
-  GOOGLE,
-  DEEPSEEK,
-  QWEN,
-  MINIMAX,
+  ANTHROPIC, OPENAI, GOOGLE, DEEPSEEK, QWEN, MINIMAX,
+  MOONSHOT, ZHIPU, SILICONCLOUD, PPIO, BAILIAN, VOLCENGINE, HUNYUAN, BAICHUAN, STEPFUN, WENXIN,
 ];
 ];
 
 
 const PROVIDERS_BY_ID: Map<string, InkosProvider> = new Map(
 const PROVIDERS_BY_ID: Map<string, InkosProvider> = new Map(

+ 27 - 0
packages/core/src/llm/providers/moonshot.ts

@@ -0,0 +1,27 @@
+import type { InkosProvider } from "./types.js";
+
+export const MOONSHOT: InkosProvider = {
+  id: "moonshot",
+  label: "Moonshot (Kimi)",
+  api: "openai-completions",
+  baseUrl: "https://api.moonshot.cn/v1",
+  checkModel: "moonshot-v1-8k",
+  temperatureRange: [0, 1],
+  defaultTemperature: 0.3,
+  writingTemperature: 1,
+  temperatureHint: "kimi-k2.5 推荐 temperature=1.0",
+  models: [
+    { id: "kimi-k2.5", displayName: "Kimi K2.5", maxOutput: 32768, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true, structuredOutput: true }, enabled: true, releasedAt: "2026-01-27" },
+    { id: "kimi-k2-thinking", displayName: "Kimi K2 Thinking", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true, structuredOutput: true }, releasedAt: "2025-11-06" },
+    { id: "kimi-k2-thinking-turbo", displayName: "Kimi K2 Thinking Turbo", maxOutput: 65536, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true, structuredOutput: true }, releasedAt: "2025-11-06" },
+    { id: "kimi-k2-0905-preview", displayName: "Kimi K2 0905 Preview", maxOutput: 65536, contextWindowTokens: 262144, abilities: { functionCall: true, structuredOutput: true }, releasedAt: "2025-09-05" },
+    { id: "kimi-k2-0711-preview", displayName: "Kimi K2 0711 Preview", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-07-11" },
+    { id: "kimi-k2-turbo-preview", displayName: "Kimi K2 Turbo Preview", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true }, enabled: true, releasedAt: "2025-09-05" },
+    { id: "moonshot-v1-8k", displayName: "Moonshot V1 8K", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "moonshot-v1-32k", displayName: "Moonshot V1 32K", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "moonshot-v1-128k", displayName: "Moonshot V1 128K", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "moonshot-v1-8k-vision-preview", displayName: "Moonshot V1 8K Vision Preview", maxOutput: 4096, contextWindowTokens: 8192, abilities: { vision: true, functionCall: true }, releasedAt: "2025-01-14" },
+    { id: "moonshot-v1-32k-vision-preview", displayName: "Moonshot V1 32K Vision Preview", maxOutput: 4096, contextWindowTokens: 32768, abilities: { vision: true, functionCall: true }, releasedAt: "2025-01-14" },
+    { id: "moonshot-v1-128k-vision-preview", displayName: "Moonshot V1 128K Vision Preview", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true, functionCall: true }, releasedAt: "2025-01-14" },
+  ],
+};

+ 33 - 0
packages/core/src/llm/providers/ppio.ts

@@ -0,0 +1,33 @@
+import type { InkosProvider } from "./types.js";
+
+export const PPIO: InkosProvider = {
+  id: "ppio",
+  label: "PPIO",
+  api: "openai-completions",
+  baseUrl: "https://api.ppinfra.com/v3/openai",
+  checkModel: "deepseek/deepseek-v3",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "deepseek/deepseek-r1/community", displayName: "DeepSeek: DeepSeek R1 (Community)", maxOutput: 4096, contextWindowTokens: 64000, abilities: { reasoning: true }, enabled: true },
+    { id: "deepseek/deepseek-v3/community", displayName: "DeepSeek: DeepSeek V3 (Community)", maxOutput: 4096, contextWindowTokens: 64000, enabled: true },
+    { id: "deepseek/deepseek-r1", displayName: "DeepSeek R1", maxOutput: 4096, contextWindowTokens: 64000, abilities: { reasoning: true }, enabled: true },
+    { id: "deepseek/deepseek-v3", displayName: "DeepSeek V3", maxOutput: 4096, contextWindowTokens: 64000, enabled: true },
+    { id: "deepseek/deepseek-r1-distill-llama-70b", displayName: "DeepSeek R1 Distill Llama 70B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true }, enabled: true },
+    { id: "deepseek/deepseek-r1-distill-qwen-32b", displayName: "DeepSeek: DeepSeek R1 Distill Qwen 32B", maxOutput: 4096, contextWindowTokens: 64000, abilities: { reasoning: true }, enabled: true },
+    { id: "deepseek/deepseek-r1-distill-qwen-14b", displayName: "DeepSeek: DeepSeek R1 Distill Qwen 14B", maxOutput: 4096, contextWindowTokens: 64000, abilities: { reasoning: true }, enabled: true },
+    { id: "deepseek/deepseek-r1-distill-llama-8b", displayName: "DeepSeek: DeepSeek R1 Distill Llama 8B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true }, enabled: true },
+    { id: "qwen/qwen-2.5-72b-instruct", displayName: "qwen/qwen-2.5-72b-instruct", maxOutput: 4096, contextWindowTokens: 32768, enabled: true },
+    { id: "qwen/qwen-2-vl-72b-instruct", displayName: "qwen/qwen-2-vl-72b-instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { vision: true }, enabled: true },
+    { id: "meta-llama/llama-3.2-3b-instruct", displayName: "meta-llama/llama-3.2-3b-instruct", maxOutput: 4096, contextWindowTokens: 32768, enabled: true },
+    { id: "qwen/qwen2.5-32b-instruct", displayName: "qwen/qwen2.5-32b-instruct", maxOutput: 4096, contextWindowTokens: 32000, enabled: true },
+    { id: "baichuan/baichuan2-13b-chat", displayName: "baichuan/baichuan2-13b-chat", maxOutput: 4096, contextWindowTokens: 14336, enabled: true },
+    { id: "meta-llama/llama-3.1-70b-instruct", displayName: "meta-llama/llama-3.1-70b-instruct", maxOutput: 4096, contextWindowTokens: 32768, enabled: true },
+    { id: "meta-llama/llama-3.1-8b-instruct", displayName: "meta-llama/llama-3.1-8b-instruct", maxOutput: 4096, contextWindowTokens: 32768, enabled: true },
+    { id: "01-ai/yi-1.5-34b-chat", displayName: "01-ai/yi-1.5-34b-chat", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "01-ai/yi-1.5-9b-chat", displayName: "01-ai/yi-1.5-9b-chat", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "thudm/glm-4-9b-chat", displayName: "thudm/glm-4-9b-chat", maxOutput: 4096, contextWindowTokens: 32768, enabled: true },
+    { id: "qwen/qwen-2-7b-instruct", displayName: "qwen/qwen-2-7b-instruct", maxOutput: 4096, contextWindowTokens: 32768, enabled: true },
+  ],
+};

+ 107 - 0
packages/core/src/llm/providers/siliconcloud.ts

@@ -0,0 +1,107 @@
+import type { InkosProvider } from "./types.js";
+
+export const SILICONCLOUD: InkosProvider = {
+  id: "siliconcloud",
+  label: "硅基流动",
+  api: "openai-completions",
+  baseUrl: "https://api.siliconflow.cn/v1",
+  checkModel: "Qwen/Qwen2.5-7B-Instruct",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "Qwen/Qwen3.5-397B-A17B", displayName: "Qwen3.5 397B A17B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-16" },
+    { id: "Qwen/Qwen3.5-122B-A10B", displayName: "Qwen3.5 122B A10B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-26" },
+    { id: "Qwen/Qwen3.5-35B-A3B", displayName: "Qwen3.5 35B A3B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-25" },
+    { id: "Qwen/Qwen3.5-27B", displayName: "Qwen3.5 27B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-25" },
+    { id: "Qwen/Qwen3.5-9B", displayName: "Qwen3.5 9B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "Qwen/Qwen3.5-4B", displayName: "Qwen3.5 4B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "Pro/MiniMaxAI/MiniMax-M2.5", displayName: "MiniMax-M2.5 (Pro)", maxOutput: 4096, contextWindowTokens: 192000, abilities: { reasoning: true, functionCall: true }, releasedAt: "2026-02-13" },
+    { id: "Pro/zai-org/glm-5", displayName: "GLM-5 (Pro)", maxOutput: 4096, contextWindowTokens: 198000, abilities: { reasoning: true, functionCall: true }, releasedAt: "2026-02-12" },
+    { id: "Pro/zai-org/GLM-5.1", displayName: "GLM-5.1 (Pro)", maxOutput: 4096, contextWindowTokens: 198000, abilities: { reasoning: true, functionCall: true }, releasedAt: "2026-04-08" },
+    { id: "zai-org/GLM-4.6V", displayName: "GLM-4.6V", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true, functionCall: true }, releasedAt: "2025-12-08" },
+    { id: "deepseek-ai/DeepSeek-V3.2", displayName: "DeepSeek V3.2", maxOutput: 4096, contextWindowTokens: 163840, abilities: { reasoning: true, functionCall: true }, enabled: true, releasedAt: "2025-12-01" },
+    { id: "Pro/deepseek-ai/DeepSeek-V3.2", displayName: "DeepSeek V3.2 (Pro)", maxOutput: 4096, contextWindowTokens: 163840, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-12-01" },
+    { id: "Pro/moonshotai/Kimi-K2.5", displayName: "Kimi-K2.5 (Pro)", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true }, releasedAt: "2026-01-27" },
+    { id: "qwen/qwen3.5-397b-a17b", displayName: "Qwen3.5 397B A17B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "qwen/qwen3.5-122b-a10b", displayName: "Qwen3.5 122B A10B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "qwen/qwen3.5-35b-a3b", displayName: "Qwen3.5 35B A3B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "qwen/qwen3.5-27b", displayName: "Qwen3.5 27B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "qwen/qwen3.5-9b", displayName: "Qwen3.5 9B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "qwen/qwen3.5-4b", displayName: "Qwen3.5 4B", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-03-03" },
+    { id: "Pro/zai-org/glm-4.7", displayName: "GLM-4.7 (Pro)", maxOutput: 4096, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-12-22" },
+    { id: "moonshotai/Kimi-K2-Thinking", displayName: "Kimi K2 Thinking", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-11-07" },
+    { id: "Pro/moonshotai/Kimi-K2-Thinking", displayName: "Kimi K2 Thinking (Pro)", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-11-07" },
+    { id: "MiniMaxAI/MiniMax-M2", displayName: "MiniMax-M2", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-10-28" },
+    { id: "Qwen/Qwen3-VL-32B-Instruct", displayName: "Qwen3 VL 32B Instruct", maxOutput: 4096, contextWindowTokens: 262144, abilities: { vision: true, functionCall: true }, releasedAt: "2025-10-21" },
+    { id: "Qwen/Qwen3-VL-32B-Thinking", displayName: "Qwen3 VL 32B Thinking", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2025-10-21" },
+    { id: "deepseek-ai/DeepSeek-OCR", displayName: "DeepSeek OCR", maxOutput: 4096, contextWindowTokens: 8192, abilities: { vision: true }, releasedAt: "2025-10-20" },
+    { id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", displayName: "Qwen3 Omni 30B A3B Instruct", maxOutput: 4096, contextWindowTokens: 65536, abilities: { vision: true, functionCall: true }, releasedAt: "2025-09-22" },
+    { id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", displayName: "Qwen3 Omni 30B A3B Thinking", maxOutput: 4096, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2025-09-22" },
+    { id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", displayName: "Qwen3 Omni 30B A3B Captioner", maxOutput: 4096, contextWindowTokens: 65536, abilities: { vision: true, functionCall: true }, releasedAt: "2025-09-22" },
+    { id: "tencent/Hunyuan-MT-7B", displayName: "Hunyuan MT 7B", maxOutput: 4096, contextWindowTokens: 32768, releasedAt: "2025-09-01" },
+    { id: "Kwaipilot/KAT-Dev", displayName: "KAT-Dev 32B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-09-27" },
+    { id: "zai-org/GLM-4.6", displayName: "GLM-4.6", maxOutput: 4096, contextWindowTokens: 198000, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-09-30" },
+    { id: "Qwen/Qwen3-VL-30B-A3B-Instruct", displayName: "Qwen3 VL 30B A3B Instruct", maxOutput: 4096, contextWindowTokens: 256000, abilities: { vision: true, functionCall: true } },
+    { id: "Qwen/Qwen3-VL-30B-A3B-Thinking", displayName: "Qwen3 VL 30B A3B Thinking", maxOutput: 4096, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "Qwen/Qwen3-VL-235B-A22B-Instruct", displayName: "Qwen3 VL 235B A22B Instruct", maxOutput: 4096, contextWindowTokens: 256000, abilities: { vision: true, functionCall: true } },
+    { id: "Qwen/Qwen3-VL-235B-A22B-Thinking", displayName: "Qwen3 VL 235B A22B Thinking", maxOutput: 4096, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-V3.1-Terminus", displayName: "DeepSeek V3.1 Terminus", maxOutput: 4096, contextWindowTokens: 163840, abilities: { reasoning: true, functionCall: true } },
+    { id: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", displayName: "DeepSeek V3.1 Terminus (Pro)", maxOutput: 4096, contextWindowTokens: 163840, abilities: { reasoning: true, functionCall: true } },
+    { id: "Qwen/Qwen3-VL-8B-Instruct", displayName: "Qwen3 VL 8B Instruct", maxOutput: 4096, contextWindowTokens: 256000, abilities: { vision: true, functionCall: true }, releasedAt: "2025-10-15" },
+    { id: "Qwen/Qwen3-VL-8B-Thinking", displayName: "Qwen3 VL 8B Thinking", maxOutput: 4096, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2025-10-15" },
+    { id: "inclusionAI/Ring-flash-2.0", displayName: "Ring Flash 2.0", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-09-19" },
+    { id: "inclusionAI/Ling-flash-2.0", displayName: "Ling Flash 2.0", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-09-17" },
+    { id: "inclusionAI/Ling-mini-2.0", displayName: "Ling Mini 2.0", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-09-09" },
+    { id: "ByteDance-Seed/Seed-OSS-36B-Instruct", displayName: "Seed OSS 36B Instruct", maxOutput: 4096, contextWindowTokens: 256000, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-08-20" },
+    { id: "stepfun-ai/step3", displayName: "Step 3", maxOutput: 4096, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2025-07-31" },
+    { id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", displayName: "Qwen3 Coder 480B A35B Instruct", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true }, releasedAt: "2025-07-23" },
+    { id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", displayName: "Qwen3 Coder 30B A3B Instruct", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true }, releasedAt: "2025-07-31" },
+    { id: "zai-org/GLM-4.5V", displayName: "GLM-4.5V", maxOutput: 4096, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2025-08-11" },
+    { id: "zai-org/GLM-4.5-Air", displayName: "GLM-4.5-Air", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-07-28" },
+    { id: "ascend-tribe/pangu-pro-moe", displayName: "Pangu Pro MoE 72B A16B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true }, releasedAt: "2025-06-17" },
+    { id: "baidu/ERNIE-4.5-300B-A47B", displayName: "ERNIE 4.5 300B A47B", maxOutput: 4096, contextWindowTokens: 131072, releasedAt: "2025-06-30" },
+    { id: "moonshotai/Kimi-K2-Instruct-0905", displayName: "Kimi K2 0905", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true }, releasedAt: "2025-09-05" },
+    { id: "Pro/moonshotai/Kimi-K2-Instruct-0905", displayName: "Kimi K2 0905 (Pro)", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true }, releasedAt: "2025-09-05" },
+    { id: "moonshotai/Kimi-Dev-72B", displayName: "Kimi Dev 72B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true }, releasedAt: "2025-06-17" },
+    { id: "tencent/Hunyuan-A13B-Instruct", displayName: "Hunyuan A13B Instruct", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true }, releasedAt: "2025-06-27" },
+    { id: "MiniMaxAI/MiniMax-M1-80k", displayName: "MiniMax M1 80K", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true }, releasedAt: "2025-06-16" },
+    { id: "Tongyi-Zhiwen/QwenLong-L1-32B", displayName: "QwenLong L1 32B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true }, releasedAt: "2025-05-26" },
+    { id: "Qwen/Qwen3-235B-A22B-Thinking-2507", displayName: "Qwen3 235B A22B Thinking 2507", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-07-25" },
+    { id: "Qwen/Qwen3-235B-A22B-Instruct-2507", displayName: "Qwen3 235B A22B Instruct 2507", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true }, releasedAt: "2025-07-21" },
+    { id: "Qwen/Qwen3-30B-A3B-Thinking-2507", displayName: "Qwen3 30B A3B Thinking 2507", maxOutput: 4096, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-07-30" },
+    { id: "Qwen/Qwen3-30B-A3B-Instruct-2507", displayName: "Qwen3 30B A3B Instruct 2507", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true }, releasedAt: "2025-07-29" },
+    { id: "Qwen/Qwen3-32B", displayName: "Qwen3 32B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "Qwen/Qwen3-14B", displayName: "Qwen3 14B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "Qwen/Qwen3-8B", displayName: "Qwen3 8B (Free)", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-28" },
+    { id: "THUDM/GLM-4.1V-9B-Thinking", displayName: "GLM-4.1V 9B Thinking (Free)", maxOutput: 4096, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true }, releasedAt: "2025-07-02" },
+    { id: "Pro/THUDM/GLM-4.1V-9B-Thinking", displayName: "GLM-4.1V 9B Thinking (Pro)", maxOutput: 4096, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true }, releasedAt: "2025-07-02" },
+    { id: "THUDM/GLM-Z1-32B-0414", displayName: "GLM-Z1 32B 0414", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-14" },
+    { id: "THUDM/GLM-Z1-9B-0414", displayName: "GLM-Z1 9B 0414 (Free)", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-04-14" },
+    { id: "THUDM/GLM-4-32B-0414", displayName: "GLM-4 32B 0414", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true }, releasedAt: "2025-04-14" },
+    { id: "THUDM/GLM-4-9B-0414", displayName: "GLM-4 9B 0414 (Free)", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true }, releasedAt: "2025-04-14" },
+    { id: "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B", displayName: "DeepSeek R1 0528 Qwen3 8B (Free)", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true } },
+    { id: "deepseek-ai/DeepSeek-R1", displayName: "DeepSeek R1", maxOutput: 4096, contextWindowTokens: 98304, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-V3", displayName: "DeepSeek V3", maxOutput: 4096, contextWindowTokens: 65536, abilities: { functionCall: true } },
+    { id: "Pro/deepseek-ai/DeepSeek-R1", displayName: "DeepSeek R1 (Pro)", maxOutput: 4096, contextWindowTokens: 98304, abilities: { reasoning: true, functionCall: true } },
+    { id: "Pro/deepseek-ai/DeepSeek-V3", displayName: "DeepSeek V3 (Pro)", maxOutput: 4096, contextWindowTokens: 65536, abilities: { functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", displayName: "DeepSeek R1 Distill Qwen 32B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", displayName: "DeepSeek R1 Distill Qwen 14B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", displayName: "DeepSeek R1 Distill Qwen 7B (Free)", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "Pro/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", displayName: "DeepSeek R1 Distill Qwen 7B (Pro)", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-V2.5", displayName: "DeepSeek V2.5", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "Qwen/QVQ-72B-Preview", displayName: "QVQ 72B Preview", maxOutput: 4096, contextWindowTokens: 32768, abilities: { reasoning: true, vision: true } },
+    { id: "Qwen/QwQ-32B", displayName: "QwQ 32B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "Qwen/Qwen2.5-7B-Instruct", displayName: "Qwen2.5 7B Instruct (Free)", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "Pro/Qwen/Qwen2.5-7B-Instruct", displayName: "Qwen2.5 7B Instruct (Pro)", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "Qwen/Qwen2.5-14B-Instruct", displayName: "Qwen2.5 14B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "Qwen/Qwen2.5-32B-Instruct", displayName: "Qwen2.5 32B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "Qwen/Qwen2.5-72B-Instruct", displayName: "Qwen2.5 72B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "Qwen/Qwen2.5-72B-Instruct-128K", displayName: "Qwen2.5 72B Instruct 128K", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "Qwen/Qwen2.5-Coder-32B-Instruct", displayName: "Qwen2.5 Coder 32B Instruct", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "Qwen/Qwen2-VL-72B-Instruct", displayName: "Qwen2 VL 72B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "Qwen/Qwen2.5-VL-32B-Instruct", displayName: "Qwen2.5 VL 32B Instruct", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "Qwen/Qwen2.5-VL-72B-Instruct", displayName: "Qwen2.5 VL 72B Instruct", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "internlm/internlm2_5-7b-chat", displayName: "InternLM2.5 7B Chat (Free)", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+  ],
+};

+ 27 - 0
packages/core/src/llm/providers/stepfun.ts

@@ -0,0 +1,27 @@
+import type { InkosProvider } from "./types.js";
+
+export const STEPFUN: InkosProvider = {
+  id: "stepfun",
+  label: "阶跃星辰",
+  api: "openai-completions",
+  baseUrl: "https://api.stepfun.com/v1",
+  checkModel: "step-1-8k",
+  temperatureRange: [0, 1],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "step-3.5-flash", displayName: "Step 3.5 Flash", maxOutput: 4096, contextWindowTokens: 256000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true },
+    { id: "step-3", displayName: "Step 3", maxOutput: 4096, contextWindowTokens: 64000, abilities: { reasoning: true, vision: true }, enabled: true },
+    { id: "step-r1-v-mini", displayName: "Step R1 V Mini", maxOutput: 4096, contextWindowTokens: 100000, abilities: { reasoning: true, vision: true } },
+    { id: "step-1-8k", displayName: "Step 1 8K", maxOutput: 4096, contextWindowTokens: 8000, abilities: { functionCall: true, search: true } },
+    { id: "step-1-32k", displayName: "Step 1 32K", maxOutput: 4096, contextWindowTokens: 32000, abilities: { functionCall: true, search: true } },
+    { id: "step-1-256k", displayName: "Step 1 256K", maxOutput: 4096, contextWindowTokens: 256000, abilities: { functionCall: true, search: true } },
+    { id: "step-2-mini", displayName: "Step 2 Mini", maxOutput: 4096, contextWindowTokens: 8000, abilities: { functionCall: true, search: true }, releasedAt: "2025-01-14" },
+    { id: "step-2-16k", displayName: "Step 2 16K", maxOutput: 4096, contextWindowTokens: 16000, abilities: { functionCall: true, search: true } },
+    { id: "step-2-16k-exp", displayName: "Step 2 16K Exp", maxOutput: 4096, contextWindowTokens: 16000, abilities: { functionCall: true, search: true }, releasedAt: "2025-01-15" },
+    { id: "step-1v-8k", displayName: "Step 1V 8K", maxOutput: 4096, contextWindowTokens: 8000, abilities: { vision: true, functionCall: true, search: true } },
+    { id: "step-1v-32k", displayName: "Step 1V 32K", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true, functionCall: true, search: true } },
+    { id: "step-1o-vision-32k", displayName: "Step 1o Vision 32K", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, releasedAt: "2025-01-22" },
+    { id: "step-1o-turbo-vision", displayName: "Step 1o Turbo Vision", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, releasedAt: "2025-02-14" },
+  ],
+};

+ 44 - 0
packages/core/src/llm/providers/volcengine.ts

@@ -0,0 +1,44 @@
+import type { InkosProvider } from "./types.js";
+
+export const VOLCENGINE: InkosProvider = {
+  id: "volcengine",
+  label: "火山引擎 (豆包)",
+  api: "openai-completions",
+  baseUrl: "https://ark.cn-beijing.volces.com/api/v3",
+  checkModel: "doubao-lite-32k",
+  temperatureRange: [0, 1],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "doubao-seed-2.0-pro", displayName: "Doubao Seed 2.0 Pro", maxOutput: 128000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true }, enabled: true, releasedAt: "2026-02-15" },
+    { id: "doubao-seed-2.0-lite", displayName: "Doubao Seed 2.0 Lite", maxOutput: 128000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true }, enabled: true, releasedAt: "2026-02-15" },
+    { id: "doubao-seed-2.0-mini", displayName: "Doubao Seed 2.0 Mini", maxOutput: 128000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-15" },
+    { id: "doubao-seed-2.0-code", displayName: "Doubao Seed 2.0 Code", maxOutput: 128000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2026-02-15" },
+    { id: "doubao-seed-1.8", displayName: "Doubao Seed 1.8", maxOutput: 64000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true }, releasedAt: "2025-12-18" },
+    { id: "doubao-seed-code", displayName: "Doubao Seed Code", maxOutput: 32000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "glm-4-7", displayName: "GLM-4.7", maxOutput: 128000, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-v3.2", displayName: "DeepSeek V3.2", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-v3.1", displayName: "DeepSeek V3.1", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "kimi-k2-thinking", displayName: "Kimi K2 Thinking", maxOutput: 32768, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true } },
+    { id: "kimi-k2", displayName: "Kimi K2", maxOutput: 32768, contextWindowTokens: 262144, abilities: { functionCall: true } },
+    { id: "doubao-seed-1.6-vision", displayName: "Doubao Seed 1.6 Vision", maxOutput: 32000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "doubao-seed-1.6-thinking", displayName: "Doubao Seed 1.6 Thinking", maxOutput: 32000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "doubao-seed-1.6", displayName: "Doubao Seed 1.6", maxOutput: 32000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "doubao-seed-1.6-lite", displayName: "Doubao Seed 1.6 Lite", maxOutput: 32000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "doubao-seed-1.6-flash", displayName: "Doubao Seed 1.6 Flash", maxOutput: 32000, contextWindowTokens: 256000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "doubao-1.5-ui-tars", displayName: "Doubao 1.5 UI TARS", maxOutput: 16000, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "doubao-1.5-thinking-vision-pro", displayName: "Doubao 1.5 Thinking Vision Pro", maxOutput: 16000, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "doubao-1.5-thinking-pro", displayName: "Doubao 1.5 Thinking Pro", maxOutput: 16000, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "doubao-1.5-thinking-pro-m", displayName: "Doubao 1.5 Thinking Pro M", maxOutput: 16000, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "deepseek-r1", displayName: "DeepSeek R1", maxOutput: 16384, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-v3", displayName: "DeepSeek V3", maxOutput: 16384, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "doubao-1.5-pro-32k", displayName: "Doubao 1.5 Pro 32k", maxOutput: 16384, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "doubao-1.5-pro-256k", displayName: "Doubao 1.5 Pro 256k", maxOutput: 12288, contextWindowTokens: 256000 },
+    { id: "doubao-1.5-lite-32k", displayName: "Doubao 1.5 Lite 32k", maxOutput: 12288, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "doubao-1.5-vision-pro-32k", displayName: "Doubao 1.5 Vision Pro 32k", maxOutput: 12288, contextWindowTokens: 32768, abilities: { vision: true, functionCall: true }, releasedAt: "2025-01-15" },
+    { id: "doubao-1.5-vision-pro", displayName: "Doubao 1.5 Vision Pro", maxOutput: 16384, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true }, releasedAt: "2025-03-28" },
+    { id: "doubao-1.5-vision-lite", displayName: "Doubao 1.5 Vision Lite", maxOutput: 16384, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true }, releasedAt: "2025-03-15" },
+    { id: "doubao-lite-32k", displayName: "Doubao Lite 32k", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "doubao-pro-32k", displayName: "Doubao Pro 32k", maxOutput: 4096, contextWindowTokens: 32768 },
+  ],
+};

+ 98 - 0
packages/core/src/llm/providers/wenxin.ts

@@ -0,0 +1,98 @@
+import type { InkosProvider } from "./types.js";
+
+export const WENXIN: InkosProvider = {
+  id: "wenxin",
+  label: "文心一言 (千帆)",
+  api: "openai-completions",
+  baseUrl: "https://qianfan.baidubce.com/v2",
+  checkModel: "ernie-3.5-8k",
+  temperatureRange: [0, 1],
+  defaultTemperature: 0.95,
+  writingTemperature: 0.95,
+  models: [
+    { id: "ernie-5.0-thinking-latest", displayName: "ERNIE 5.0 Thinking", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, enabled: true, releasedAt: "2025-11-12" },
+    { id: "ernie-5.0-thinking-preview", displayName: "ERNIE 5.0 Thinking Preview", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, releasedAt: "2025-11-12" },
+    { id: "ernie-4.5-turbo-128k", displayName: "ERNIE 4.5 Turbo 128K", maxOutput: 12288, contextWindowTokens: 131072, abilities: { functionCall: true, search: true }, enabled: true },
+    { id: "ernie-4.5-turbo-128k-preview", displayName: "ERNIE 4.5 Turbo 128K Preview", maxOutput: 12288, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "ernie-4.5-turbo-32k", displayName: "ERNIE 4.5 Turbo 32K", maxOutput: 12288, contextWindowTokens: 32768, abilities: { functionCall: true, search: true } },
+    { id: "ernie-4.5-turbo-latest", displayName: "ERNIE 4.5 Turbo Latest", maxOutput: 12288, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "ernie-speed-pro-128k", displayName: "ERNIE Speed Pro 128K", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "ernie-lite-pro-128k", displayName: "ERNIE Lite Pro 128K", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "ernie-char-8k", displayName: "ERNIE Character 8K", maxOutput: 2048, contextWindowTokens: 8192 },
+    { id: "ernie-char-fiction-8k", displayName: "ERNIE Character Fiction 8K", maxOutput: 2048, contextWindowTokens: 8192 },
+    { id: "ernie-char-fiction-8k-preview", displayName: "ERNIE Character Fiction 8K Preview", maxOutput: 2048, contextWindowTokens: 8192 },
+    { id: "ernie-novel-8k", displayName: "ERNIE Novel 8K", maxOutput: 2048, contextWindowTokens: 8192 },
+    { id: "ernie-4.5-0.3b", displayName: "ERNIE 4.5 0.3B", maxOutput: 8192, contextWindowTokens: 131072 },
+    { id: "ernie-4.5-21b-a3b", displayName: "ERNIE 4.5 21B A3B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { search: true } },
+    { id: "ernie-4.5-21b-a3b-thinking", displayName: "ERNIE 4.5 21B A3B Thinking", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "ernie-4.5-vl-28b-a3b", displayName: "ERNIE 4.5 VL 28B A3B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qianfan-8b", displayName: "Qianfan 8B", maxOutput: 16384, contextWindowTokens: 32768 },
+    { id: "qianfan-70b", displayName: "Qianfan 70B", maxOutput: 16384, contextWindowTokens: 32768 },
+    { id: "qianfan-agent-intent-32k", displayName: "Qianfan Agent Intent 32K", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "qianfan-agent-lite-8k", displayName: "Qianfan Agent Lite 8K", maxOutput: 2048, contextWindowTokens: 8192 },
+    { id: "ernie-4.5-turbo-vl-preview", displayName: "ERNIE 4.5 Turbo VL Preview", maxOutput: 16384, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "ernie-4.5-turbo-vl", displayName: "ERNIE 4.5 Turbo VL", maxOutput: 16384, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "ernie-4.5-turbo-vl-32k", displayName: "ERNIE 4.5 Turbo VL 32K", maxOutput: 12288, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "ernie-4.5-turbo-vl-32k-preview", displayName: "ERNIE 4.5 Turbo VL 32K Preview", maxOutput: 16384, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "ernie-4.5-turbo-vl-latest", displayName: "ERNIE 4.5 Turbo VL Latest", maxOutput: 16384, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "ernie-4.5-8k-preview", displayName: "ERNIE 4.5 8K Preview", maxOutput: 2048, contextWindowTokens: 8192, abilities: { vision: true } },
+    { id: "ernie-x1.1", displayName: "ERNIE X1.1", maxOutput: 65536, contextWindowTokens: 65536, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true },
+    { id: "ernie-x1.1-preview", displayName: "ERNIE X1.1 Preview", maxOutput: 65536, contextWindowTokens: 65536, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "ernie-x1-turbo-32k", displayName: "ERNIE X1 Turbo 32K", maxOutput: 28160, contextWindowTokens: 32768, abilities: { reasoning: true, search: true } },
+    { id: "ernie-x1-turbo-32k-preview", displayName: "ERNIE X1 Turbo 32K Preview", maxOutput: 28160, contextWindowTokens: 32768, abilities: { reasoning: true, search: true } },
+    { id: "qianfan-composition", displayName: "Qianfan Composition", maxOutput: 8192, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qianfan-check-vl", displayName: "Qianfan Check VL", maxOutput: 131072, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qianfan-multipicocr", displayName: "Qianfan MultiPicOCR", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qianfan-vl-70b", displayName: "Qianfan VL 70B", maxOutput: 28672, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qianfan-vl-8b", displayName: "Qianfan VL 8B", maxOutput: 28672, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qianfan-llama-vl-8b", displayName: "Qianfan Llama VL 8B", maxOutput: 16384, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qianfan-qi-vl", displayName: "Qianfan QI VL", maxOutput: 131072, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qianfan-engcard-vl", displayName: "Qianfan EngCard VL", maxOutput: 4000, contextWindowTokens: 4096, abilities: { vision: true } },
+    { id: "qianfan-singlepicocr", displayName: "Qianfan SinglePicOCR", maxOutput: 4096, contextWindowTokens: 4096, abilities: { vision: true } },
+    { id: "internvl3-38b", displayName: "InternVL3 38B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "internvl3-14b", displayName: "InternVL3 14B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "internvl3-1b", displayName: "InternVL3 1B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "internvl2.5-38b-mpo", displayName: "InternVL2.5 38B MPO", maxOutput: 4096, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qwen3-vl-32b-instruct", displayName: "Qwen3 VL 32B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-32b-thinking", displayName: "Qwen3 VL 32B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-8b-instruct", displayName: "Qwen3 VL 8B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-8b-thinking", displayName: "Qwen3 VL 8B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-30b-a3b-instruct", displayName: "Qwen3 VL 30B A3B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-30b-a3b-thinking", displayName: "Qwen3 VL 30B A3B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-235b-a22b-instruct", displayName: "Qwen3 VL 235B A22B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen3-vl-235b-a22b-thinking", displayName: "Qwen3 VL 235B A22B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "qwen2.5-vl-32b-instruct", displayName: "Qwen2.5 VL 32B Instruct", maxOutput: 8192, contextWindowTokens: 32768, abilities: { vision: true } },
+    { id: "qwen2.5-vl-7b-instruct", displayName: "Qwen2.5 VL 7B Instruct", maxOutput: 4096, contextWindowTokens: 16384, abilities: { vision: true } },
+    { id: "glm-4.5v", displayName: "GLM-4.5V", maxOutput: 16384, contextWindowTokens: 65536, abilities: { vision: true } },
+    { id: "deepseek-vl2", displayName: "DeepSeek VL2", maxOutput: 2048, contextWindowTokens: 4096, abilities: { vision: true } },
+    { id: "deepseek-vl2-small", displayName: "DeepSeek VL2 Small", maxOutput: 2048, contextWindowTokens: 4096, abilities: { vision: true } },
+    { id: "deepseek-v3.2-think", displayName: "DeepSeek V3.2 Think", maxOutput: 32768, contextWindowTokens: 144000, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "deepseek-v3.1-think-250821", displayName: "DeepSeek V3.1 Think 250821", maxOutput: 32768, contextWindowTokens: 144000, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "deepseek-r1-250528", displayName: "DeepSeek R1 250528", maxOutput: 32768, contextWindowTokens: 144000, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1", displayName: "DeepSeek R1 250120", maxOutput: 32768, contextWindowTokens: 144000, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "deepseek-r1-distill-qianfan-70b", displayName: "DeepSeek R1 Distill Qianfan 70B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-qianfan-8b", displayName: "DeepSeek R1 Distill Qianfan 8B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-qianfan-llama-70b", displayName: "DeepSeek R1 Distill Qianfan Llama 70B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-llama-70b", displayName: "DeepSeek R1 Distill Llama 70B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-qwen-32b", displayName: "DeepSeek R1 Distill Qwen 32B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-qwen-14b", displayName: "DeepSeek R1 Distill Qwen 14B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-qwen-7b", displayName: "DeepSeek R1 Distill Qwen 7B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-qwen-1.5b", displayName: "DeepSeek R1 Distill Qwen 1.5B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-next-80b-a3b-thinking", displayName: "Qwen3 Next 80B A3B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-235b-a22b-thinking-2507", displayName: "Qwen3 235B A22B Thinking 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-30b-a3b-thinking-2507", displayName: "Qwen3 30B A3B Thinking 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwq-32b", displayName: "QWQ 32B", maxOutput: 8192, contextWindowTokens: 32768, abilities: { reasoning: true, functionCall: true } },
+    { id: "kimi-k2-instruct", displayName: "Kimi K2 Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen3-coder-480b-a35b-instruct", displayName: "Qwen3 Coder 480B A35B Instruct", maxOutput: 65536, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen3-235b-a22b-instruct-2507", displayName: "Qwen3 235B A22B Instruct 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen3-30b-a3b-instruct-2507", displayName: "Qwen3 30B A3B Instruct 2507", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "qwen3-30b-a3b", displayName: "Qwen3 30B A3B", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "qwen3-32b", displayName: "Qwen3 32B", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "qwen3-14b", displayName: "Qwen3 14B", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "qwen3-8b", displayName: "Qwen3 8B", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "qwen3-4b", displayName: "Qwen3 4B", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "qwen3-1.7b", displayName: "Qwen3 1.7B", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "qwen3-0.6b", displayName: "Qwen3 0.6B", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "qwen2.5-7b-instruct", displayName: "Qwen2.5 7B Instruct", maxOutput: 8192, contextWindowTokens: 32768 },
+  ],
+};

+ 51 - 0
packages/core/src/llm/providers/zhipu.ts

@@ -0,0 +1,51 @@
+import type { InkosProvider } from "./types.js";
+
+export const ZHIPU: InkosProvider = {
+  id: "zhipu",
+  label: "智谱 GLM",
+  api: "openai-completions",
+  baseUrl: "https://open.bigmodel.cn/api/paas/v4",
+  piProvider: "zai",
+  checkModel: "glm-4-flash",
+  temperatureRange: [0, 1],
+  defaultTemperature: 0.95,
+  writingTemperature: 0.95,
+  models: [
+    { id: "glm-5.1", displayName: "GLM-5.1", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2026-03-27" },
+    { id: "glm-5-turbo", displayName: "GLM-5-Turbo", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2026-03-15" },
+    { id: "glm-5", displayName: "GLM-5", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2026-02-12" },
+    { id: "glm-4.7", displayName: "GLM-4.7", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2025-12-22" },
+    { id: "glm-4.7-flash", displayName: "GLM-4.7-Flash", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2026-01-19" },
+    { id: "glm-4.7-flashx", displayName: "GLM-4.7-FlashX", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2026-01-19" },
+    { id: "glm-5v-turbo", displayName: "GLM-5V-Turbo", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, enabled: true, releasedAt: "2026-04-02" },
+    { id: "glm-4.6v", displayName: "GLM-4.6V", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, releasedAt: "2025-12-08" },
+    { id: "glm-4.6v-flashx", displayName: "GLM-4.6V-FlashX", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, releasedAt: "2025-12-08" },
+    { id: "glm-4.6v-flash", displayName: "GLM-4.6V-Flash", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, releasedAt: "2025-12-08" },
+    { id: "glm-4.6", displayName: "GLM-4.6", maxOutput: 131072, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, releasedAt: "2025-09-08" },
+    { id: "glm-4.5v", displayName: "GLM-4.5V", maxOutput: 16384, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true, functionCall: true, search: true } },
+    { id: "glm-4.5", displayName: "GLM-4.5", maxOutput: 98304, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "glm-4.5-x", displayName: "GLM-4.5-X", maxOutput: 98304, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "glm-4.5-air", displayName: "GLM-4.5-Air", maxOutput: 98304, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "glm-4.5-airx", displayName: "GLM-4.5-AirX", maxOutput: 98304, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "glm-4.1v-thinking-flashx", displayName: "GLM-4.1V-Thinking-FlashX", maxOutput: 32768, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true } },
+    { id: "glm-4.1v-thinking-flash", displayName: "GLM-4.1V-Thinking-Flash", maxOutput: 32768, contextWindowTokens: 65536, abilities: { reasoning: true, vision: true } },
+    { id: "glm-zero-preview", displayName: "GLM-Zero-Preview", maxOutput: 4096, contextWindowTokens: 16384, abilities: { reasoning: true } },
+    { id: "glm-z1-air", displayName: "GLM-Z1-Air", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, search: true } },
+    { id: "glm-z1-airx", displayName: "GLM-Z1-AirX", maxOutput: 32768, contextWindowTokens: 32768, abilities: { reasoning: true, search: true } },
+    { id: "glm-z1-flashx", displayName: "GLM-Z1-FlashX", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, search: true } },
+    { id: "glm-z1-flash", displayName: "GLM-Z1-Flash", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, search: true } },
+    { id: "glm-4-flash-250414", displayName: "GLM-4-Flash-250414", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "glm-4-flashx", displayName: "GLM-4-FlashX-250414", maxOutput: 4095, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "glm-4-long", displayName: "GLM-4-Long", maxOutput: 4095, contextWindowTokens: 1024000, abilities: { functionCall: true, search: true } },
+    { id: "glm-4-air-250414", displayName: "GLM-4-Air-250414", maxOutput: 16384, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "glm-4-airx", displayName: "GLM-4-AirX", maxOutput: 4095, contextWindowTokens: 8192, abilities: { functionCall: true, search: true } },
+    { id: "glm-4-plus", displayName: "GLM-4-Plus", maxOutput: 4095, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "glm-4-0520", displayName: "GLM-4-0520", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true, search: true } },
+    { id: "glm-4v-flash", displayName: "GLM-4V-Flash", maxOutput: 1024, contextWindowTokens: 4096, abilities: { vision: true }, releasedAt: "2024-12-09" },
+    { id: "glm-4v-plus-0111", displayName: "GLM-4V-Plus-0111", maxOutput: 8192, contextWindowTokens: 16000, abilities: { vision: true } },
+    { id: "glm-4v", displayName: "GLM-4V", maxOutput: 1024, contextWindowTokens: 4096, abilities: { vision: true } },
+    { id: "codegeex-4", displayName: "CodeGeeX-4", maxOutput: 32768, contextWindowTokens: 131072 },
+    { id: "charglm-4", displayName: "CharGLM-4", maxOutput: 4000, contextWindowTokens: 8192 },
+    { id: "emohaa", displayName: "Emohaa", maxOutput: 4000, contextWindowTokens: 8192 },
+  ],
+};