
















@@ -5,6 +5,12 @@ import {
55readPluginPackageVersion,
66resolveAmbientNodeProxyAgent,
77} from "openclaw/plugin-sdk/extension-shared";
8+import {
9+FEISHU_HTTP_TIMEOUT_ENV_VAR,
10+FEISHU_HTTP_TIMEOUT_MAX_MS,
11+FEISHU_HTTP_TIMEOUT_MS,
12+resolveConfiguredHttpTimeoutMs,
13+} from "./client-timeout.js";
814import type { FeishuConfig, FeishuDomain, ResolvedFeishuAccount } from "./types.js";
9151016const require = createRequire(import.meta.url);
@@ -77,10 +83,7 @@ let feishuClientSdk: FeishuClientSdk = defaultFeishuClientSdk;
7783}
7884}
798580-/** Default HTTP timeout for Feishu API requests (30 seconds). */
81-export const FEISHU_HTTP_TIMEOUT_MS = 30_000;
82-export const FEISHU_HTTP_TIMEOUT_MAX_MS = 300_000;
83-export const FEISHU_HTTP_TIMEOUT_ENV_VAR = "OPENCLAW_FEISHU_HTTP_TIMEOUT_MS";
86+export { FEISHU_HTTP_TIMEOUT_ENV_VAR, FEISHU_HTTP_TIMEOUT_MAX_MS, FEISHU_HTTP_TIMEOUT_MS };
84878588type FeishuHttpInstanceLike = Pick<
8689typeof feishuClientSdk.defaultHttpInstance,
@@ -147,37 +150,6 @@ export type FeishuClientCredentials = {
147150config?: Pick<FeishuConfig, "httpTimeoutMs">;
148151};
149152150-function resolveConfiguredHttpTimeoutMs(creds: FeishuClientCredentials): number {
151-const clampTimeout = (value: number): number => {
152-const rounded = Math.floor(value);
153-return Math.min(Math.max(rounded, 1), FEISHU_HTTP_TIMEOUT_MAX_MS);
154-};
155-156-const fromDirectField = creds.httpTimeoutMs;
157-if (
158-typeof fromDirectField === "number" &&
159-Number.isFinite(fromDirectField) &&
160-fromDirectField > 0
161-) {
162-return clampTimeout(fromDirectField);
163-}
164-165-const envRaw = process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR];
166-if (envRaw) {
167-const envValue = Number(envRaw);
168-if (Number.isFinite(envValue) && envValue > 0) {
169-return clampTimeout(envValue);
170-}
171-}
172-173-const fromConfig = creds.config?.httpTimeoutMs;
174-const timeout = fromConfig;
175-if (typeof timeout !== "number" || !Number.isFinite(timeout) || timeout <= 0) {
176-return FEISHU_HTTP_TIMEOUT_MS;
177-}
178-return clampTimeout(timeout);
179-}
180-181153/**
182154 * Create or get a cached Feishu client for an account.
183155 * Accepts any object with appId, appSecret, and optional domain/accountId.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。