From 684e3f4ea73cd789723e9bf1f3f6dc480c3f3c21 Mon Sep 17 00:00:00 2001 From: Christiaan Arnoldus Date: Sat, 18 Apr 2026 11:39:12 +0200 Subject: [PATCH] Enable reasoning summaries by default --- .../admin/custom-llms/CustomLlmsContent.tsx | 2 +- .../src/app/api/openrouter/[...path]/route.ts | 3 ++ .../web/src/lib/ai-gateway/providers/index.ts | 7 ---- .../providers/openrouter/request-helpers.ts | 14 +++++++ packages/db/src/schema-types.ts | 39 +++++++++---------- 5 files changed, 36 insertions(+), 29 deletions(-) diff --git a/apps/web/src/app/admin/custom-llms/CustomLlmsContent.tsx b/apps/web/src/app/admin/custom-llms/CustomLlmsContent.tsx index a49c34873..1bdbc5fd1 100644 --- a/apps/web/src/app/admin/custom-llms/CustomLlmsContent.tsx +++ b/apps/web/src/app/admin/custom-llms/CustomLlmsContent.tsx @@ -101,7 +101,7 @@ export function CustomLlmsContent() { return; } - const result = CustomLlmDefinitionSchema.safeParse(parsed); + const result = CustomLlmDefinitionSchema.strict().safeParse(parsed); if (!result.success) { const messages = result.error.issues .map(issue => `${issue.path.join('.')}: ${issue.message}`) diff --git a/apps/web/src/app/api/openrouter/[...path]/route.ts b/apps/web/src/app/api/openrouter/[...path]/route.ts index 60115c538..a88489df1 100644 --- a/apps/web/src/app/api/openrouter/[...path]/route.ts +++ b/apps/web/src/app/api/openrouter/[...path]/route.ts @@ -89,6 +89,7 @@ import type { MicrodollarUsageContext, PromptInfo } from '@/lib/ai-gateway/proce import { extractResponsesPromptInfo } from '@/lib/ai-gateway/processUsage.responses'; import { extractMessagesPromptInfo } from '@/lib/ai-gateway/processUsage.messages'; import { + enableReasoningSummaries, fixResponsesRequest, getMaxTokens, hasMiddleOutTransform, @@ -503,6 +504,8 @@ export async function POST(request: NextRequest): Promise; -export const CustomLlmDefinitionSchema = z - .object({ - internal_id: z.string(), - display_name: z.string(), - context_length: z.number(), - max_completion_tokens: z.number(), - base_url: z.string(), - api_key: z.string(), - organization_ids: z.array(z.string()), - supports_image_input: z.boolean().optional(), - add_cache_breakpoints: z.boolean().optional(), - inject_reasoning_into_content: z.boolean().optional(), - reasoning_summary: z.enum(['auto', 'concise', 'detailed']).optional(), - extra_headers: CustomLlmExtraHeadersSchema.optional(), - extra_body: CustomLlmExtraBodySchema.optional(), - remove_from_body: z.array(z.string()).optional(), - opencode_settings: OpenCodeSettingsSchema.optional(), - openclaw_settings: OpenClawModelSettingsSchema.optional(), - pricing: CustomLlmPricingSchema.optional(), - }) - .strict(); +export const CustomLlmDefinitionSchema = z.object({ + internal_id: z.string(), + display_name: z.string(), + context_length: z.number(), + max_completion_tokens: z.number(), + base_url: z.string(), + api_key: z.string(), + organization_ids: z.array(z.string()), + supports_image_input: z.boolean().optional(), + add_cache_breakpoints: z.boolean().optional(), + inject_reasoning_into_content: z.boolean().optional(), + extra_headers: CustomLlmExtraHeadersSchema.optional(), + extra_body: CustomLlmExtraBodySchema.optional(), + remove_from_body: z.array(z.string()).optional(), + opencode_settings: OpenCodeSettingsSchema.optional(), + openclaw_settings: OpenClawModelSettingsSchema.optional(), + pricing: CustomLlmPricingSchema.optional(), +}); export type CustomLlmDefinition = z.infer;