From e96442310cad3fff0158d432e6ce792fa580dbff Mon Sep 17 00:00:00 2001 From: Tyler Gannon Date: Mon, 17 Nov 2025 00:06:40 -0600 Subject: [PATCH] chore: replace z.union with z.enum for cleaner OpenAPI generation (#4394) --- packages/opencode/src/agent/agent.ts | 2 +- packages/opencode/src/config/config.ts | 4 ++-- packages/opencode/src/server/server.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 867bc0fe..740f67b7 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -12,7 +12,7 @@ export namespace Agent { .object({ name: z.string(), description: z.string().optional(), - mode: z.union([z.literal("subagent"), z.literal("primary"), z.literal("all")]), + mode: z.enum(["subagent", "primary", "all"]), builtIn: z.boolean(), topP: z.number().optional(), temperature: z.number().optional(), diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index c7814721..51aa914a 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -337,7 +337,7 @@ export namespace Config { export const Mcp = z.discriminatedUnion("type", [McpLocal, McpRemote]) export type Mcp = z.infer - export const Permission = z.union([z.literal("ask"), z.literal("allow"), z.literal("deny")]) + export const Permission = z.enum(["ask", "allow", "deny"]) export type Permission = z.infer export const Command = z.object({ @@ -358,7 +358,7 @@ export namespace Config { tools: z.record(z.string(), z.boolean()).optional(), disable: z.boolean().optional(), description: z.string().optional().describe("Description of when to use the agent"), - mode: z.union([z.literal("subagent"), z.literal("primary"), z.literal("all")]).optional(), + mode: z.enum(["subagent", "primary", "all"]).optional(), color: z .string() .regex(/^#[0-9a-fA-F]{6}$/, "Invalid hex color format") diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index a4b2b170..9ed1cac6 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -50,7 +50,7 @@ const ERRORS = { schema: resolver( z .object({ - data: z.any().nullable(), + data: z.any(), errors: z.array(z.record(z.string(), z.any())), success: z.literal(false), })