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
+37 -29
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
id: z.string(), .object({
label: z.string(), id: z.string(),
description: z.string().optional(), label: z.string().nullish(),
icon: z.string().optional(), description: z.string().nullish(),
colorTier: z.string().optional(), icon: z.string().nullish(),
}); colorTier: z.string().nullish(),
})
.passthrough();
export const ProviderSummarySchema = z.object({ export const ProviderSummarySchema = z
id: z.string(), .object({
label: z.string(), id: z.string(),
modes: z.array(ProviderModeSchema), label: z.string().nullish(),
}); modes: z.array(ProviderModeSchema).nullish(),
})
.passthrough();
export const AgentSelectOptionSchema = z.object({ export const AgentSelectOptionSchema = z
id: z.string(), .object({
label: z.string(), id: z.string(),
description: z.string().optional(), label: z.string().nullish(),
isDefault: z.boolean().optional(), description: z.string().nullish(),
metadata: z.record(z.unknown()).optional(), isDefault: z.boolean().nullish(),
}); metadata: z.record(z.unknown()).nullish(),
})
.passthrough();
export const AgentModelSchema = z.object({ export const AgentModelSchema = z
provider: z.string(), .object({
id: z.string(), provider: z.string(),
label: z.string(), id: z.string(),
description: z.string().optional(), label: z.string().nullish(),
isDefault: z.boolean().optional(), description: z.string().nullish(),
metadata: z.record(z.unknown()).optional(), isDefault: z.boolean().nullish(),
thinkingOptions: z.array(AgentSelectOptionSchema).optional(), metadata: z.record(z.unknown()).nullish(),
defaultThinkingOptionId: z.string().optional(), thinkingOptions: z.array(AgentSelectOptionSchema).nullish(),
}); 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;