fix: align env config schema

This commit is contained in:
Peter Steinberger
2026-01-08 22:40:47 +01:00
parent 59f89678b2
commit cda2025c49
3 changed files with 13 additions and 16 deletions

View File

@@ -368,11 +368,14 @@ describe("config env vars", () => {
"utf-8",
);
await withEnvOverride({ OPENROUTER_API_KEY: "existing-key" }, async () => {
const { loadConfig } = await import("./config.js");
loadConfig();
expect(process.env.OPENROUTER_API_KEY).toBe("existing-key");
});
await withEnvOverride(
{ OPENROUTER_API_KEY: "existing-key" },
async () => {
const { loadConfig } = await import("./config.js");
loadConfig();
expect(process.env.OPENROUTER_API_KEY).toBe("existing-key");
},
);
});
});
@@ -426,11 +429,7 @@ describe("config pruning defaults", () => {
await fs.mkdir(configDir, { recursive: true });
await fs.writeFile(
path.join(configDir, "clawdbot.json"),
JSON.stringify(
{ agent: { contextPruning: { mode: "off" } } },
null,
2,
),
JSON.stringify({ agent: { contextPruning: { mode: "off" } } }, null, 2),
"utf-8",
);

View File

@@ -13,11 +13,11 @@ import {
findDuplicateAgentDirs,
} from "./agent-dirs.js";
import {
applyContextPruningDefaults,
applyIdentityDefaults,
applyLoggingDefaults,
applyMessageDefaults,
applyModelDefaults,
applyContextPruningDefaults,
applySessionDefaults,
applyTalkApiKey,
} from "./defaults.js";
@@ -79,10 +79,7 @@ function warnOnConfigMiskeys(
}
}
function applyConfigEnv(
cfg: ClawdbotConfig,
env: NodeJS.ProcessEnv,
): void {
function applyConfigEnv(cfg: ClawdbotConfig, env: NodeJS.ProcessEnv): void {
const envConfig = cfg.env;
if (!envConfig) return;

View File

@@ -641,6 +641,7 @@ const RoutingSchema = z
workspace: z.string().optional(),
agentDir: z.string().optional(),
model: z.string().optional(),
mentionPatterns: z.array(z.string()).optional(),
subagents: z
.object({
allowAgents: z.array(z.string()).optional(),
@@ -793,7 +794,7 @@ export const ClawdbotSchema = z.object({
timeoutMs: z.number().int().nonnegative().optional(),
})
.optional(),
vars: z.record(z.string()).optional(),
vars: z.record(z.string(), z.string()).optional(),
})
.catchall(z.string())
.optional(),