fix: minimax apiKey optional for providers (#656) (thanks @mneves75)

This commit is contained in:
Peter Steinberger
2026-01-10 15:08:12 +01:00
parent 3e2e3eb023
commit 65c2532cd5
5 changed files with 53 additions and 50 deletions

View File

@@ -240,6 +240,57 @@ describe("config identity defaults", () => {
});
});
it("accepts blank model provider apiKey values", async () => {
await withTempHome(async (home) => {
const configDir = path.join(home, ".clawdbot");
await fs.mkdir(configDir, { recursive: true });
await fs.writeFile(
path.join(configDir, "clawdbot.json"),
JSON.stringify(
{
models: {
mode: "merge",
providers: {
minimax: {
baseUrl: "https://api.minimax.io/anthropic",
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "MiniMax-M2.1",
name: "MiniMax M2.1",
reasoning: false,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 8192,
},
],
},
},
},
},
null,
2,
),
"utf-8",
);
vi.resetModules();
const { loadConfig } = await import("./config.js");
const cfg = loadConfig();
expect(cfg.models?.providers?.minimax?.baseUrl).toBe(
"https://api.minimax.io/anthropic",
);
});
});
it("respects empty responsePrefix to disable identity defaults", async () => {
await withTempHome(async (home) => {
const configDir = path.join(home, ".clawdbot");

View File

@@ -40,7 +40,7 @@ const ModelDefinitionSchema = z.object({
const ModelProviderSchema = z.object({
baseUrl: z.string().min(1),
apiKey: z.string().min(1).optional(),
apiKey: z.string().optional(),
api: ModelApiSchema.optional(),
headers: z.record(z.string(), z.string()).optional(),
authHeader: z.boolean().optional(),