

























@@ -2022,15 +2022,7 @@ async function startManualGatewayFromInstalledCli(params) {
20222022const gatewayLog = createWriteStream(params.logPath, { flags: "a" });
20232023const invocation = resolveInstalledCliInvocation(
20242024params.cliPath,
2025-[
2026-"gateway",
2027-"run",
2028-"--bind",
2029-"loopback",
2030-"--port",
2031-String(params.lane.gatewayPort),
2032-"--force",
2033-],
2025+["gateway", "run", "--bind", "loopback", "--port", String(params.lane.gatewayPort), "--force"],
20342026{
20352027comSpec: params.env?.ComSpec ?? params.env?.COMSPEC,
20362028platform: process.platform,
@@ -2072,19 +2064,26 @@ async function startManualGatewayFromInstalledCli(params) {
2072206420732065async function resolveInstalledGatewayStatusArgs(params) {
20742066const requireRpc = params.requireRpc !== false;
2075-const help = await runInstalledCli({
2076-cliPath: params.cliPath,
2077-args: ["gateway", "status", "--help"],
2078-cwd: params.cwd,
2079-env: params.env,
2080-logPath: params.logPath,
2081-timeoutMs: 15_000,
2082-check: false,
2083-});
2084-if (
2085-requireRpc &&
2086-(help.stdout.includes("--require-rpc") || help.stderr.includes("--require-rpc"))
2087-) {
2067+try {
2068+const help = await runInstalledCli({
2069+cliPath: params.cliPath,
2070+args: ["gateway", "status", "--help"],
2071+cwd: params.cwd,
2072+env: params.env,
2073+logPath: params.logPath,
2074+timeoutMs: 15_000,
2075+check: false,
2076+});
2077+return buildGatewayStatusArgsFromHelpText(`${help.stdout}\n${help.stderr}`, { requireRpc });
2078+} catch (error) {
2079+appendGatewayStatusHelpProbeFallback(params.logPath, error);
2080+return buildGatewayStatusArgsFromHelpText("--require-rpc", { requireRpc });
2081+}
2082+}
2083+2084+export function buildGatewayStatusArgsFromHelpText(helpText, options = {}) {
2085+const requireRpc = options.requireRpc !== false;
2086+if (requireRpc && helpText.includes("--require-rpc")) {
20882087return [
20892088"gateway",
20902089"status",
@@ -2096,6 +2095,13 @@ async function resolveInstalledGatewayStatusArgs(params) {
20962095return ["gateway", "status"];
20972096}
209820972098+function appendGatewayStatusHelpProbeFallback(logPath, error) {
2099+appendFileSync(
2100+logPath,
2101+`${new Date().toISOString()} gateway status help probe failed; assuming current --require-rpc support: ${formatError(error)}\n`,
2102+);
2103+}
2104+20992105export async function canConnectToLoopbackPort(port, timeoutMs = 1_000) {
21002106if (!Number.isInteger(port) || port <= 0) {
21012107return false;
@@ -3000,24 +3006,20 @@ function gatewayReadyDeadlineMs() {
30003006}
3001300730023008async function resolveGatewayStatusArgs(lane, env, logPath) {
3003-const help = await runOpenClaw({
3004- lane,
3005- env,
3006-args: ["gateway", "status", "--help"],
3007- logPath,
3008-timeoutMs: 15_000,
3009-check: false,
3010-});
3011-if (help.stdout.includes("--require-rpc") || help.stderr.includes("--require-rpc")) {
3012-return [
3013-"gateway",
3014-"status",
3015-"--require-rpc",
3016-"--timeout",
3017-String(CROSS_OS_GATEWAY_STATUS_RPC_TIMEOUT_MS),
3018-];
3009+try {
3010+const help = await runOpenClaw({
3011+ lane,
3012+ env,
3013+args: ["gateway", "status", "--help"],
3014+ logPath,
3015+timeoutMs: 15_000,
3016+check: false,
3017+});
3018+return buildGatewayStatusArgsFromHelpText(`${help.stdout}\n${help.stderr}`);
3019+} catch (error) {
3020+appendGatewayStatusHelpProbeFallback(logPath, error);
3021+return buildGatewayStatusArgsFromHelpText("--require-rpc");
30193022}
3020-return ["gateway", "status"];
30213023}
3022302430233025async function runModelsSet(params) {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。