feat(auth): add DeepSeek API and fix

This commit is contained in:
Dadash Huseynzade 2026-01-26 21:21:48 +04:00
parent 301a9f5068
commit 37bee604b1
2 changed files with 32 additions and 31 deletions

View File

@ -186,37 +186,37 @@ describe("models-config", () => {
}); });
}); });
it("adds deepseek provider when DEEPSEEK_API_KEY is set", async () => { it("adds deepseek provider when DEEPSEEK_API_KEY is set", async () => {
await withTempHome(async () => { await withTempHome(async () => {
vi.resetModules(); vi.resetModules();
const prevKey = process.env.DEEPSEEK_API_KEY; const prevKey = process.env.DEEPSEEK_API_KEY;
process.env.DEEPSEEK_API_KEY = "sk-deepseek-test"; process.env.DEEPSEEK_API_KEY = "sk-deepseek-test";
try { try {
const { ensureClawdbotModelsJson } = await import("./models-config.js"); const { ensureClawdbotModelsJson } = await import("./models-config.js");
const { resolveClawdbotAgentDir } = await import("./agent-paths.js"); const { resolveClawdbotAgentDir } = await import("./agent-paths.js");
await ensureClawdbotModelsJson({}); await ensureClawdbotModelsJson({});
const modelPath = path.join(resolveClawdbotAgentDir(), "models.json"); const modelPath = path.join(resolveClawdbotAgentDir(), "models.json");
const raw = await fs.readFile(modelPath, "utf8"); const raw = await fs.readFile(modelPath, "utf8");
const parsed = JSON.parse(raw) as { const parsed = JSON.parse(raw) as {
providers: Record< providers: Record<
string, string,
{ {
baseUrl?: string; baseUrl?: string;
apiKey?: string; apiKey?: string;
models?: Array<{ id: string }>; models?: Array<{ id: string }>;
} }
>; >;
}; };
expect(parsed.providers.deepseek?.baseUrl).toBe("https://api.deepseek.com/v1"); expect(parsed.providers.deepseek?.baseUrl).toBe("https://api.deepseek.com/v1");
expect(parsed.providers.deepseek?.apiKey).toBe("DEEPSEEK_API_KEY"); expect(parsed.providers.deepseek?.apiKey).toBe("DEEPSEEK_API_KEY");
const ids = parsed.providers.deepseek?.models?.map((model) => model.id); const ids = parsed.providers.deepseek?.models?.map((model) => model.id);
expect(ids).toContain("deepseek-chat"); expect(ids).toContain("deepseek-chat");
expect(ids).toContain("deepseek-reasoner"); expect(ids).toContain("deepseek-reasoner");
} finally { } finally {
if (prevKey === undefined) delete process.env.DEEPSEEK_API_KEY; if (prevKey === undefined) delete process.env.DEEPSEEK_API_KEY;
else process.env.DEEPSEEK_API_KEY = prevKey; else process.env.DEEPSEEK_API_KEY = prevKey;
} }
});
}); });
});

View File

@ -245,6 +245,7 @@ export function buildAuthChoiceOptions(params: {
label: "MiniMax M2.1 Lightning", label: "MiniMax M2.1 Lightning",
hint: "Faster, higher output cost", hint: "Faster, higher output cost",
}); });
options.push({ value: "deepseek-api-key", label: "DeepSeek API key" });
if (params.includeSkip) { if (params.includeSkip) {
options.push({ value: "skip", label: "Skip for now" }); options.push({ value: "skip", label: "Skip for now" });
} }