diff --git a/open-sse/handlers/responseTranslator.ts b/open-sse/handlers/responseTranslator.ts index 931b944403..5989874527 100644 --- a/open-sse/handlers/responseTranslator.ts +++ b/open-sse/handlers/responseTranslator.ts @@ -265,7 +265,15 @@ export function translateNonStreamingResponse( if (toolCalls.length > 0) { message.tool_calls = toolCalls; } - if (message.content === undefined) { + if ( + (!message.content || + (typeof message.content === "string" && message.content.trim().length === 0)) && + toolCalls.length === 0 && + replayableReasoningContent && + replayableReasoningContent.trim().length > 0 + ) { + message.content = replayableReasoningContent; + } else if (message.content === undefined) { message.content = ""; } diff --git a/open-sse/mcp-server/server.ts b/open-sse/mcp-server/server.ts index 89f7b6385d..73e3a387dc 100644 --- a/open-sse/mcp-server/server.ts +++ b/open-sse/mcp-server/server.ts @@ -90,7 +90,7 @@ import { clampMcpAccessibilityConfig, type McpAccessibilityConfig, } from "../services/compression/engines/mcpAccessibility/constants.ts"; -import { getDbInstance } from "../../src/lib/db/core.ts"; +import { getDbInstance, ensureDbInitialized } from "../../src/lib/db/core.ts"; import { normalizeQuotaResponse } from "../../src/shared/contracts/quota.ts"; import { resolveOmniRouteBaseUrl } from "../../src/shared/utils/resolveOmniRouteBaseUrl.ts"; import { sanitizeErrorMessage } from "../utils/error.ts"; @@ -1527,10 +1527,10 @@ export function createMcpServer(options?: CreateMcpServerOptions): McpServer { * Called when `omniroute --mcp` is used. */ export async function startMcpStdio(): Promise { + await ensureDbInitialized(); // Stdout is reserved for JSON-RPC — bin/mcpStdioConsoleGuard.mjs is preloaded via // `node --import` (see bin/mcp-server.mjs) so console.log/warn already redirect to - // stderr before this module's own imports evaluate (DB init happens as a side effect of - // createMcpServer()'s tool registration, earlier than any code placed here could catch). + // stderr before this module's own imports evaluate. const server = createMcpServer(); const transport = new StdioServerTransport(); const version = process.env.npm_package_version || "1.8.1";