Skip to content

Commit 34bdfcd

Browse files
committed
Migrate deprecated Zod 3 patterns to Zod 4 equivalents
1 parent d1f9e89 commit 34bdfcd

File tree

4 files changed

+47
-59
lines changed

4 files changed

+47
-59
lines changed

apps/code/src/main/services/agent/schemas.ts

Lines changed: 41 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -63,50 +63,42 @@ export const modelOptionSchema = z.object({
6363

6464
export type ModelOption = z.infer<typeof modelOptionSchema>;
6565

66-
const sessionConfigSelectOptionSchema = z
67-
.object({
68-
value: z.string(),
69-
name: z.string(),
70-
description: z.string().nullish(),
71-
_meta: z.record(z.string(), z.unknown()).nullish(),
72-
})
73-
.passthrough();
74-
75-
const sessionConfigSelectGroupSchema = z
76-
.object({
77-
group: z.string(),
78-
name: z.string(),
79-
options: z.array(sessionConfigSelectOptionSchema),
80-
_meta: z.record(z.string(), z.unknown()).nullish(),
81-
})
82-
.passthrough();
83-
84-
const sessionConfigSelectSchema = z
85-
.object({
86-
id: z.string(),
87-
name: z.string(),
88-
type: z.literal("select"),
89-
currentValue: z.string(),
90-
options: z
91-
.array(sessionConfigSelectOptionSchema)
92-
.or(z.array(sessionConfigSelectGroupSchema)),
93-
category: z.string().nullish(),
94-
description: z.string().nullish(),
95-
_meta: z.record(z.string(), z.unknown()).nullish(),
96-
})
97-
.passthrough();
98-
99-
const sessionConfigBooleanSchema = z
100-
.object({
101-
id: z.string(),
102-
name: z.string(),
103-
type: z.literal("boolean"),
104-
currentValue: z.boolean(),
105-
category: z.string().nullish(),
106-
description: z.string().nullish(),
107-
_meta: z.record(z.string(), z.unknown()).nullish(),
108-
})
109-
.passthrough();
66+
const sessionConfigSelectOptionSchema = z.looseObject({
67+
value: z.string(),
68+
name: z.string(),
69+
description: z.string().nullish(),
70+
_meta: z.record(z.string(), z.unknown()).nullish(),
71+
});
72+
73+
const sessionConfigSelectGroupSchema = z.looseObject({
74+
group: z.string(),
75+
name: z.string(),
76+
options: z.array(sessionConfigSelectOptionSchema),
77+
_meta: z.record(z.string(), z.unknown()).nullish(),
78+
});
79+
80+
const sessionConfigSelectSchema = z.looseObject({
81+
id: z.string(),
82+
name: z.string(),
83+
type: z.literal("select"),
84+
currentValue: z.string(),
85+
options: z
86+
.array(sessionConfigSelectOptionSchema)
87+
.or(z.array(sessionConfigSelectGroupSchema)),
88+
category: z.string().nullish(),
89+
description: z.string().nullish(),
90+
_meta: z.record(z.string(), z.unknown()).nullish(),
91+
});
92+
93+
const sessionConfigBooleanSchema = z.looseObject({
94+
id: z.string(),
95+
name: z.string(),
96+
type: z.literal("boolean"),
97+
currentValue: z.boolean(),
98+
category: z.string().nullish(),
99+
description: z.string().nullish(),
100+
_meta: z.record(z.string(), z.unknown()).nullish(),
101+
});
110102

111103
export const sessionConfigOptionSchema = z.union([
112104
sessionConfigSelectSchema,
@@ -124,13 +116,11 @@ export const sessionResponseSchema = z.object({
124116
export type SessionResponse = z.infer<typeof sessionResponseSchema>;
125117

126118
// Prompt input/output
127-
export const contentBlockSchema = z
128-
.object({
129-
type: z.string(),
130-
text: z.string().optional(),
131-
_meta: z.record(z.string(), z.unknown()).nullish(),
132-
})
133-
.passthrough();
119+
export const contentBlockSchema = z.looseObject({
120+
type: z.string(),
121+
text: z.string().optional(),
122+
_meta: z.record(z.string(), z.unknown()).nullish(),
123+
});
134124

135125
export const promptInput = z.object({
136126
sessionId: z.string(),

apps/code/src/main/services/oauth/schemas.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,6 @@ export const cancelFlowOutput = z.object({
6666
export type CancelFlowOutput = z.infer<typeof cancelFlowOutput>;
6767

6868
export const openExternalUrlInput = z.object({
69-
url: z.string().url(),
69+
url: z.url(),
7070
});
7171
export type OpenExternalUrlInput = z.infer<typeof openExternalUrlInput>;

packages/agent/src/server/bin.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,9 @@ const envSchema = z.object({
1010
error: "JWT_PUBLIC_KEY is required for authenticating client connections",
1111
})
1212
.min(1, "JWT_PUBLIC_KEY cannot be empty"),
13-
POSTHOG_API_URL: z
14-
.string({
15-
error: "POSTHOG_API_URL is required for LLM gateway communication",
16-
})
17-
.url("POSTHOG_API_URL must be a valid URL"),
13+
POSTHOG_API_URL: z.url({
14+
error: "POSTHOG_API_URL is required for LLM gateway communication",
15+
}),
1816
POSTHOG_PERSONAL_API_KEY: z
1917
.string({
2018
error:
@@ -32,7 +30,7 @@ const envSchema = z.object({
3230

3331
const program = new Command();
3432

35-
function parseJsonOption<S extends z.ZodTypeAny>(
33+
function parseJsonOption<S extends z.ZodType>(
3634
raw: string | undefined,
3735
schema: S,
3836
flag: string,

packages/agent/src/server/schemas.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const httpHeaderSchema = z.object({
88
const remoteMcpServerSchema = z.object({
99
type: z.enum(["http", "sse"]),
1010
name: z.string().min(1, "MCP server name is required"),
11-
url: z.string().url("MCP server url must be a valid URL"),
11+
url: z.url({ error: "MCP server url must be a valid URL" }),
1212
headers: z.array(httpHeaderSchema).default([]),
1313
});
1414

0 commit comments

Comments
 (0)