refactor(config): share agent model schema

This commit is contained in:
Peter Steinberger
2026-02-15 16:53:38 +00:00
parent 9143f33a80
commit 6e36d956d6
3 changed files with 15 additions and 20 deletions

View File

@@ -1,6 +1,7 @@
import { z } from "zod"; import { z } from "zod";
import { import {
HeartbeatSchema, HeartbeatSchema,
AgentModelSchema,
MemorySearchSchema, MemorySearchSchema,
SandboxBrowserSchema, SandboxBrowserSchema,
SandboxDockerSchema, SandboxDockerSchema,
@@ -160,17 +161,7 @@ export const AgentDefaultsSchema = z
"Maximum number of active children a single agent session can spawn (default: 5).", "Maximum number of active children a single agent session can spawn (default: 5).",
), ),
archiveAfterMinutes: z.number().int().positive().optional(), archiveAfterMinutes: z.number().int().positive().optional(),
model: z model: AgentModelSchema.optional(),
.union([
z.string(),
z
.object({
primary: z.string().optional(),
fallbacks: z.array(z.string()).optional(),
})
.strict(),
])
.optional(),
thinking: z.string().optional(), thinking: z.string().optional(),
}) })
.strict() .strict()

View File

@@ -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(),
]);

View File

@@ -1,5 +1,6 @@
import { z } from "zod"; import { z } from "zod";
import { parseDurationMs } from "../cli/parse-duration.js"; import { parseDurationMs } from "../cli/parse-duration.js";
import { AgentModelSchema } from "./zod-schema.agent-model.js";
import { import {
GroupChatSchema, GroupChatSchema,
HumanDelaySchema, HumanDelaySchema,
@@ -450,15 +451,7 @@ export const MemorySearchSchema = z
}) })
.strict() .strict()
.optional(); .optional();
export const AgentModelSchema = z.union([ export { AgentModelSchema };
z.string(),
z
.object({
primary: z.string().optional(),
fallbacks: z.array(z.string()).optional(),
})
.strict(),
]);
export const AgentEntrySchema = z export const AgentEntrySchema = z
.object({ .object({
id: z.string(), id: z.string(),