feat: support Kimi K3

This commit is contained in:
bingqilinweimaotai
2026-07-18 17:38:32 +08:00
committed by Xubin Ren
parent b76d54aae1
commit 8c68c6fe1e
6 changed files with 82 additions and 13 deletions
@@ -222,7 +222,7 @@ type ProviderApiType = "auto" | "chat_completions" | "responses";
type ProviderForm = { apiKey: string; apiBase: string; apiType: ProviderApiType };
type CustomMcpTransport = "stdio" | "streamableHttp" | "sse";
const CONTEXT_WINDOW_TOKEN_OPTIONS = [65_536, 200_000, 262_144] as const;
const CONTEXT_WINDOW_TOKEN_OPTIONS = [65_536, 200_000, 262_144, 1_048_576] as const;
const DEFERRED_MODEL_LIST_PROVIDERS = new Set([
"aihubmix",
"atomic_chat",
@@ -2797,7 +2797,13 @@ function ModelsSettings({
options={CONTEXT_WINDOW_TOKEN_OPTIONS.map((tokens) => ({
value: String(tokens),
label:
tokens === 262_144 ? "256K" : tokens === 200_000 ? "200K" : "64K",
tokens === 1_048_576
? "1M"
: tokens === 262_144
? "256K"
: tokens === 200_000
? "200K"
: "64K",
}))}
onChange={(value) =>
setForm((prev) => ({
+1
View File
@@ -1602,6 +1602,7 @@ describe("SettingsView Apps catalog", () => {
expect(screen.getByRole("button", { name: "64K" })).toBeInTheDocument();
expect(screen.getByRole("button", { name: "200K" })).toBeInTheDocument();
expect(screen.getByRole("button", { name: "256K" })).toBeInTheDocument();
expect(screen.getByRole("button", { name: "1M" })).toBeInTheDocument();
});
it("keeps the default model distinct from the active named configuration", async () => {