

















@@ -13,6 +13,7 @@ import { PROTOCOL_VERSION } from "../../dist/gateway/protocol/index.js";
1313import { formatErrorMessage } from "../../dist/infra/errors.js";
1414import { rawDataToString } from "../../dist/infra/ws.js";
1515import { readStringValue } from "../../dist/shared/string-coerce.js";
16+import { connectMcpWithTimeout } from "./mcp-connect-timeout.ts";
16171718export const ClaudeChannelNotificationSchema = z.object({
1819method: z.literal("notifications/claude/channel"),
@@ -48,13 +49,22 @@ const GATEWAY_WS_OPEN_TIMEOUT_MS = 45_000;
4849const GATEWAY_RPC_TIMEOUT_MS = 60_000;
4950const GATEWAY_REQUEST_TIMEOUT_MS = 45_000;
5051const GATEWAY_CONNECT_RETRY_WINDOW_MS = 420_000;
52+const MCP_CONNECT_TIMEOUT_MS = readPositiveInt(
53+process.env.OPENCLAW_MCP_CHANNELS_CONNECT_TIMEOUT_MS,
54+60_000,
55+);
51565257export function assert(condition: unknown, message: string): asserts condition {
5358if (!condition) {
5459throw new Error(message);
5560}
5661}
576263+function readPositiveInt(raw: string | undefined, fallback: number) {
64+const parsed = Number.parseInt(raw ?? "", 10);
65+return Number.isInteger(parsed) && parsed > 0 ? parsed : fallback;
66+}
67+5868export function extractTextFromGatewayPayload(
5969payload: Record<string, unknown> | undefined,
6070): string | undefined {
@@ -343,7 +353,7 @@ export async function connectMcpClient(params: {
343353};
344354345355const client = new Client({ name: "docker-mcp-channels", version: "1.0.0" });
346-await client.connect(transport);
356+await connectMcpWithTimeout(client, transport, MCP_CONNECT_TIMEOUT_MS);
347357return { client, transport, rawMessages };
348358}
349359此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。