fix(mcp): accept null in list_models output schema

This commit is contained in:
Mohamed Boudra
2026-04-20 11:06:21 +07:00
parent 8600f183b1
commit 951fadc104
+32 -24
View File
@@ -18,38 +18,46 @@ export const AgentProviderEnum = z.string();
export const AgentStatusEnum = z.enum(["initializing", "idle", "running", "error", "closed"]); export const AgentStatusEnum = z.enum(["initializing", "idle", "running", "error", "closed"]);
export const ProviderModeSchema = z.object({ export const ProviderModeSchema = z
.object({
id: z.string(), id: z.string(),
label: z.string(), label: z.string().nullish(),
description: z.string().optional(), description: z.string().nullish(),
icon: z.string().optional(), icon: z.string().nullish(),
colorTier: z.string().optional(), colorTier: z.string().nullish(),
}); })
.passthrough();
export const ProviderSummarySchema = z.object({ export const ProviderSummarySchema = z
.object({
id: z.string(), id: z.string(),
label: z.string(), label: z.string().nullish(),
modes: z.array(ProviderModeSchema), modes: z.array(ProviderModeSchema).nullish(),
}); })
.passthrough();
export const AgentSelectOptionSchema = z.object({ export const AgentSelectOptionSchema = z
.object({
id: z.string(), id: z.string(),
label: z.string(), label: z.string().nullish(),
description: z.string().optional(), description: z.string().nullish(),
isDefault: z.boolean().optional(), isDefault: z.boolean().nullish(),
metadata: z.record(z.unknown()).optional(), metadata: z.record(z.unknown()).nullish(),
}); })
.passthrough();
export const AgentModelSchema = z.object({ export const AgentModelSchema = z
.object({
provider: z.string(), provider: z.string(),
id: z.string(), id: z.string(),
label: z.string(), label: z.string().nullish(),
description: z.string().optional(), description: z.string().nullish(),
isDefault: z.boolean().optional(), isDefault: z.boolean().nullish(),
metadata: z.record(z.unknown()).optional(), metadata: z.record(z.unknown()).nullish(),
thinkingOptions: z.array(AgentSelectOptionSchema).optional(), thinkingOptions: z.array(AgentSelectOptionSchema).nullish(),
defaultThinkingOptionId: z.string().optional(), defaultThinkingOptionId: z.string().nullish(),
}); })
.passthrough();
// 30 seconds - surface friendly message before SDK tool timeout (~60s) // 30 seconds - surface friendly message before SDK tool timeout (~60s)
export const AGENT_WAIT_TIMEOUT_MS = 30000; export const AGENT_WAIT_TIMEOUT_MS = 30000;