mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-27 21:52:08 +00:00
fix: map canonical kimi env auth
This commit is contained in:
@@ -7,6 +7,9 @@ const envKeys = [
|
||||
"GOOGLE_APPLICATION_CREDENTIALS",
|
||||
"GOOGLE_CLOUD_LOCATION",
|
||||
"GOOGLE_CLOUD_PROJECT",
|
||||
"KIMI_API_KEY",
|
||||
"KIMICODE_API_KEY",
|
||||
"MOONSHOT_API_KEY",
|
||||
] as const;
|
||||
|
||||
const previousEnv = new Map<string, string | undefined>();
|
||||
@@ -61,6 +64,32 @@ describe("getEnvApiKey", () => {
|
||||
expect(getEnvApiKey("google-vertex")).toBe("<authenticated>");
|
||||
});
|
||||
|
||||
it("detects canonical Moonshot and Kimi provider credentials", async () => {
|
||||
setEnv("MOONSHOT_API_KEY", "moonshot-key");
|
||||
setEnv("KIMI_API_KEY", "kimi-key");
|
||||
setEnv("KIMICODE_API_KEY", "kimicode-key");
|
||||
|
||||
vi.resetModules();
|
||||
const { findEnvKeys, getEnvApiKey } = await import("./env-api-keys.js");
|
||||
|
||||
expect(findEnvKeys("moonshot")).toEqual(["MOONSHOT_API_KEY", "KIMI_API_KEY"]);
|
||||
expect(getEnvApiKey("moonshot")).toBe("moonshot-key");
|
||||
expect(findEnvKeys("kimi")).toEqual(["KIMI_API_KEY", "KIMICODE_API_KEY"]);
|
||||
expect(getEnvApiKey("kimi")).toBe("kimi-key");
|
||||
expect(findEnvKeys("kimi-coding")).toEqual(["KIMI_API_KEY", "KIMICODE_API_KEY"]);
|
||||
expect(getEnvApiKey("kimi-coding")).toBe("kimi-key");
|
||||
});
|
||||
|
||||
it("falls back to alternate canonical Kimi env vars", async () => {
|
||||
setEnv("KIMICODE_API_KEY", "kimicode-key");
|
||||
|
||||
vi.resetModules();
|
||||
const { findEnvKeys, getEnvApiKey } = await import("./env-api-keys.js");
|
||||
|
||||
expect(findEnvKeys("kimi")).toEqual(["KIMICODE_API_KEY"]);
|
||||
expect(getEnvApiKey("kimi")).toBe("kimicode-key");
|
||||
});
|
||||
|
||||
it("does not cache missing Google Vertex ADC credentials", async () => {
|
||||
const dir = await mkdtemp(join(tmpdir(), "openclaw-vertex-adc-"));
|
||||
tempDirs.push(dir);
|
||||
|
||||
@@ -145,6 +145,14 @@ function getApiKeyEnvVars(provider: string): readonly string[] | undefined {
|
||||
return ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"];
|
||||
}
|
||||
|
||||
if (provider === "moonshot") {
|
||||
return ["MOONSHOT_API_KEY", "KIMI_API_KEY"];
|
||||
}
|
||||
|
||||
if (provider === "kimi" || provider === "kimi-coding") {
|
||||
return ["KIMI_API_KEY", "KIMICODE_API_KEY"];
|
||||
}
|
||||
|
||||
const envMap: Record<string, string> = {
|
||||
openai: "OPENAI_API_KEY",
|
||||
"azure-openai-responses": "AZURE_OPENAI_API_KEY",
|
||||
@@ -167,7 +175,6 @@ function getApiKeyEnvVars(provider: string): readonly string[] | undefined {
|
||||
together: "TOGETHER_API_KEY",
|
||||
opencode: "OPENCODE_API_KEY",
|
||||
"opencode-go": "OPENCODE_API_KEY",
|
||||
"kimi-coding": "KIMI_API_KEY",
|
||||
"cloudflare-workers-ai": "CLOUDFLARE_API_KEY",
|
||||
"cloudflare-ai-gateway": "CLOUDFLARE_API_KEY",
|
||||
xiaomi: "XIAOMI_API_KEY",
|
||||
|
||||
Reference in New Issue
Block a user