openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
51 lines (50 loc) • 3.38 kB
JavaScript
import { t as createLazyImportLoader } from "./lazy-promise-DGqyc4Y4.js";
import { n as inheritOptionFromParent } from "./command-options-BDuSHeWG.js";
import { n as resolveGatewayLocalPortOverride } from "./gateway-port-option-0NYr1eQR.js";
//#region src/cli/gateway-rpc.ts
const gatewayRpcRuntimeLoader = createLazyImportLoader(() => import("./gateway-rpc.runtime.js"));
async function loadGatewayRpcRuntime() {
return gatewayRpcRuntimeLoader.load();
}
function addGatewayClientOptions(cmd, defaults) {
return cmd.option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--port <port>", "Local Gateway port").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--timeout <ms>", "Timeout in ms", String(defaults?.timeoutMs ?? 3e4)).option("--expect-final", "Wait for final response (agent)", false);
}
function resolveGatewayRpcOptions(opts, command) {
return {
...opts,
token: opts.token ?? inheritOptionFromParent(command, "token"),
password: opts.password ?? inheritOptionFromParent(command, "password")
};
}
function resolveGatewayRpcOptionsWithLocalPort(opts, command) {
const port = command?.getOptionValueSource("port") === "default" ? void 0 : opts.port;
const rpcOpts = {
...resolveGatewayRpcOptions(opts, command),
port: port ?? inheritOptionFromParent(command, "port")
};
return {
...rpcOpts,
localPortOverride: resolveGatewayLocalPortOverride(rpcOpts)
};
}
async function callGatewayFromCli(method, opts, params, extra) {
return await callGatewayFromCliWithTransport(method, opts, params, extra);
}
/** Resolve whether CLI Gateway options select the implicit local Gateway. */
async function isImplicitLocalGatewayTargetFromCli(opts) {
return await (await loadGatewayRpcRuntime()).isImplicitLocalGatewayTargetFromCliRuntime(opts);
}
/** Local fallback is safe only for unavailable or explicitly supported older local Gateways. */
async function canFallbackToImplicitLocalGateway(params) {
const gateway = await import("./call-Bo4Qx1ax.js");
const { isGatewayRpcUnavailableError } = await import("./transport-error-DQWf6F1-.js");
const { config, error, legacyMethod, legacyAgentId } = params;
const isLegacyError = legacyMethod !== void 0 && gateway.isGatewayClientRequestError(error) && error.gatewayCode === "INVALID_REQUEST" && (error.message === `unknown method: ${legacyMethod}` || legacyAgentId === true && (error.message === `invalid ${legacyMethod} params: unexpected property agentId` || error.message === `invalid ${legacyMethod} params: at root: unexpected property 'agentId'`));
return (gateway.isGatewayCredentialsRequiredError(error) || isGatewayRpcUnavailableError(error) || isLegacyError) && await gateway.isImplicitLocalGatewayTarget({ config });
}
/** Internal CLI facade for callers that need transport or auth policy overrides. */
async function callGatewayFromCliWithTransport(method, opts, params, extra) {
return await (await loadGatewayRpcRuntime()).callGatewayFromCliRuntime(method, opts, params, extra);
}
//#endregion
export { isImplicitLocalGatewayTargetFromCli as a, canFallbackToImplicitLocalGateway as i, callGatewayFromCli as n, resolveGatewayRpcOptions as o, callGatewayFromCliWithTransport as r, resolveGatewayRpcOptionsWithLocalPort as s, addGatewayClientOptions as t };