mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
b1117d9862
* refactor: extract gateway client package * chore: drop generated gateway package artifacts * refactor: move gateway protocol package * refactor: remove old gateway protocol tree * test: keep auth compat split in run mode * test: expose gateway wrapper options for internals * fix: watch moved gateway package sources * test: normalize slash command import guard * chore: teach knip gateway package entries * ci: route gateway client package checks * fix: reuse ipaddr for gateway client hosts * fix: sync gateway protocol usage schema
53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
import type { Command } from "commander";
|
|
import {
|
|
GATEWAY_CLIENT_MODES,
|
|
GATEWAY_CLIENT_NAMES,
|
|
} from "../../../packages/gateway-protocol/src/client-info.js";
|
|
import type { OpenClawConfig } from "../../config/types.openclaw.js";
|
|
import { callGateway } from "../../gateway/call.js";
|
|
import { parseTimeoutMsWithFallback } from "../parse-timeout.js";
|
|
import { withProgress } from "../progress.js";
|
|
|
|
export type GatewayRpcOpts = {
|
|
config?: OpenClawConfig;
|
|
url?: string;
|
|
token?: string;
|
|
password?: string;
|
|
timeout?: string;
|
|
expectFinal?: boolean;
|
|
json?: boolean;
|
|
};
|
|
|
|
const DEFAULT_GATEWAY_RPC_TIMEOUT_MS = 10_000;
|
|
|
|
export const gatewayCallOpts = (cmd: Command) =>
|
|
cmd
|
|
.option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)")
|
|
.option("--token <token>", "Gateway token (if required)")
|
|
.option("--password <password>", "Gateway password (password auth)")
|
|
.option("--timeout <ms>", "Timeout in ms", "10000")
|
|
.option("--expect-final", "Wait for final response (agent)", false)
|
|
.option("--json", "Output JSON", false);
|
|
|
|
export const callGatewayCli = async (method: string, opts: GatewayRpcOpts, params?: unknown) =>
|
|
withProgress(
|
|
{
|
|
label: `Gateway ${method}`,
|
|
indeterminate: true,
|
|
enabled: opts.json !== true,
|
|
},
|
|
async () =>
|
|
await callGateway({
|
|
config: opts.config,
|
|
url: opts.url,
|
|
token: opts.token,
|
|
password: opts.password,
|
|
method,
|
|
params,
|
|
expectFinal: Boolean(opts.expectFinal),
|
|
timeoutMs: parseTimeoutMsWithFallback(opts.timeout, DEFAULT_GATEWAY_RPC_TIMEOUT_MS),
|
|
clientName: GATEWAY_CLIENT_NAMES.CLI,
|
|
mode: GATEWAY_CLIENT_MODES.CLI,
|
|
}),
|
|
);
|