diff --git a/src/config/zod-schema.agent-defaults.ts b/src/config/zod-schema.agent-defaults.ts index d655a797ad2..302335a1d52 100644 --- a/src/config/zod-schema.agent-defaults.ts +++ b/src/config/zod-schema.agent-defaults.ts @@ -1,6 +1,7 @@ import { z } from "zod"; import { HeartbeatSchema, + AgentModelSchema, MemorySearchSchema, SandboxBrowserSchema, SandboxDockerSchema, @@ -160,17 +161,7 @@ export const AgentDefaultsSchema = z "Maximum number of active children a single agent session can spawn (default: 5).", ), archiveAfterMinutes: z.number().int().positive().optional(), - model: z - .union([ - z.string(), - z - .object({ - primary: z.string().optional(), - fallbacks: z.array(z.string()).optional(), - }) - .strict(), - ]) - .optional(), + model: AgentModelSchema.optional(), thinking: z.string().optional(), }) .strict() diff --git a/src/config/zod-schema.agent-model.ts b/src/config/zod-schema.agent-model.ts new file mode 100644 index 00000000000..3a6bac05c24 --- /dev/null +++ b/src/config/zod-schema.agent-model.ts @@ -0,0 +1,11 @@ +import { z } from "zod"; + +export const AgentModelSchema = z.union([ + z.string(), + z + .object({ + primary: z.string().optional(), + fallbacks: z.array(z.string()).optional(), + }) + .strict(), +]); diff --git a/src/config/zod-schema.agent-runtime.ts b/src/config/zod-schema.agent-runtime.ts index bab2b645115..197f29368ca 100644 --- a/src/config/zod-schema.agent-runtime.ts +++ b/src/config/zod-schema.agent-runtime.ts @@ -1,5 +1,6 @@ import { z } from "zod"; import { parseDurationMs } from "../cli/parse-duration.js"; +import { AgentModelSchema } from "./zod-schema.agent-model.js"; import { GroupChatSchema, HumanDelaySchema, @@ -450,15 +451,7 @@ export const MemorySearchSchema = z }) .strict() .optional(); -export const AgentModelSchema = z.union([ - z.string(), - z - .object({ - primary: z.string().optional(), - fallbacks: z.array(z.string()).optional(), - }) - .strict(), -]); +export { AgentModelSchema }; export const AgentEntrySchema = z .object({ id: z.string(),