|
| 1 | +import fsSync from "node:fs"; |
1 | 2 | import fs from "node:fs/promises"; |
2 | 3 | import os from "node:os"; |
3 | 4 | import path from "node:path"; |
@@ -91,6 +92,50 @@ vi.mock("../pi-tools.abort.js", () => ({ |
91 | 92 | wrapToolWithAbortSignal: vi.fn((tool) => tool), |
92 | 93 | })); |
93 | 94 |
|
| 95 | +vi.mock("../auth-profiles.js", () => ({ |
| 96 | + ensureAuthProfileStore: (agentDir?: string) => { |
| 97 | + if (!agentDir) { |
| 98 | + return { version: 1, profiles: {} }; |
| 99 | + } |
| 100 | + const pathname = path.join(agentDir, "auth-profiles.json"); |
| 101 | + try { |
| 102 | + return JSON.parse(fsSync.readFileSync(pathname, "utf8")) as { |
| 103 | + version?: number; |
| 104 | + profiles?: Record<string, { provider?: string }>; |
| 105 | + }; |
| 106 | + } catch { |
| 107 | + return { version: 1, profiles: {} }; |
| 108 | + } |
| 109 | + }, |
| 110 | + listProfilesForProvider: ( |
| 111 | + store: { profiles?: Record<string, { provider?: string }> }, |
| 112 | + provider: string, |
| 113 | + ) => Object.values(store.profiles ?? {}).filter((profile) => profile?.provider === provider), |
| 114 | +})); |
| 115 | + |
| 116 | +vi.mock("../model-auth.js", () => ({ |
| 117 | + resolveEnvApiKey: (provider: string) => { |
| 118 | + const envVarByProvider: Record<string, string[]> = { |
| 119 | + anthropic: ["ANTHROPIC_API_KEY", "ANTHROPIC_OAUTH_TOKEN"], |
| 120 | + minimax: ["MINIMAX_API_KEY", "MINIMAX_OAUTH_TOKEN"], |
| 121 | + "minimax-portal": ["MINIMAX_OAUTH_TOKEN"], |
| 122 | + moonshot: ["MOONSHOT_API_KEY"], |
| 123 | + openai: ["OPENAI_API_KEY"], |
| 124 | + openrouter: ["OPENROUTER_API_KEY"], |
| 125 | + zai: ["ZAI_API_KEY", "Z_AI_API_KEY"], |
| 126 | + }; |
| 127 | + const envVar = (envVarByProvider[provider] ?? []).find((key) => { |
| 128 | + const value = process.env[key]; |
| 129 | + return typeof value === "string" && value.length > 0; |
| 130 | + }); |
| 131 | + return { |
| 132 | + apiKey: envVar ? process.env[envVar] : undefined, |
| 133 | + source: envVar ? "env" : undefined, |
| 134 | + envVar, |
| 135 | + }; |
| 136 | + }, |
| 137 | +})); |
| 138 | + |
94 | 139 | vi.mock("../openclaw-tools.js", async () => { |
95 | 140 | const { createImageTool } = await import("./image-tool.js"); |
96 | 141 | return { |
|
0 commit comments