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

View File

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