From c3aa0c21216ebf9be3dd2997b53829ccc2e3574d Mon Sep 17 00:00:00 2001 From: Ayush Ojha Date: Fri, 30 Jan 2026 00:01:04 -0800 Subject: [PATCH] fix(config): add firecrawl and readability to web fetch schema The tools.web.fetch schema used .strict() (additionalProperties: false) and was missing the readability boolean and firecrawl nested object. This caused config validation to reject firecrawl settings even though the code in web-fetch.ts and the uiHints already supported them. Add ToolsWebFetchFirecrawlSchema with all six documented properties (enabled, apiKey, baseUrl, onlyMainContent, maxAgeMs, timeoutSeconds) and the readability boolean to ToolsWebFetchSchema. Fixes #2527 --- src/config/zod-schema.agent-runtime.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/config/zod-schema.agent-runtime.ts b/src/config/zod-schema.agent-runtime.ts index 7e95c3538..2360ef29f 100644 --- a/src/config/zod-schema.agent-runtime.ts +++ b/src/config/zod-schema.agent-runtime.ts @@ -182,6 +182,18 @@ export const ToolsWebSearchSchema = z .strict() .optional(); +export const ToolsWebFetchFirecrawlSchema = z + .object({ + enabled: z.boolean().optional(), + apiKey: z.string().optional(), + baseUrl: z.string().optional(), + onlyMainContent: z.boolean().optional(), + maxAgeMs: z.number().nonnegative().optional(), + timeoutSeconds: z.number().int().positive().optional(), + }) + .strict() + .optional(); + export const ToolsWebFetchSchema = z .object({ enabled: z.boolean().optional(), @@ -190,6 +202,8 @@ export const ToolsWebFetchSchema = z cacheTtlMinutes: z.number().nonnegative().optional(), maxRedirects: z.number().int().nonnegative().optional(), userAgent: z.string().optional(), + readability: z.boolean().optional(), + firecrawl: ToolsWebFetchFirecrawlSchema, }) .strict() .optional();