

























@@ -1,14 +1,11 @@
11import type { Command } from "commander";
22import type { HealthSummary } from "../../commands/health.js";
3-import { formatGatewayTransportErrorJson } from "../../gateway/call.js";
43import type { CostUsageSummary } from "../../infra/session-cost-usage.js";
54import type {
65DiagnosticStabilityBundle,
76ReadDiagnosticStabilityBundleResult,
87} from "../../logging/diagnostic-stability-bundle.js";
98import {
10-normalizeDiagnosticStabilityQuery,
11-selectDiagnosticStabilitySnapshot,
129type DiagnosticStabilityEventRecord,
1310type DiagnosticStabilitySnapshot,
1411} from "../../logging/diagnostic-stability.js";
@@ -17,21 +14,12 @@ import { defaultRuntime } from "../../runtime.js";
1714import { createLazyImportLoader } from "../../shared/lazy-promise.js";
1815import { formatDocsLink } from "../../terminal/links.js";
1916import { colorize, isRich, theme } from "../../terminal/theme.js";
20-import { runCommandWithRuntime } from "../cli-utils.js";
2117import { inheritOptionFromParent } from "../command-options.js";
2218import { addGatewayServiceCommands } from "../daemon-cli/register-service-commands.js";
2319import { formatHelpExamples } from "../help-format.js";
24-import { withProgress } from "../progress.js";
25-import { callGatewayCli, gatewayCallOpts, type GatewayRpcOpts } from "./call.js";
20+import type { GatewayRpcOpts } from "./call.js";
2621import type { GatewayDiscoverOpts } from "./discover.js";
27-import {
28-dedupeBeacons,
29-parseDiscoverTimeoutMs,
30-pickBeaconHost,
31-pickGatewayPort,
32-renderBeaconLines,
33-} from "./discover.js";
34-import { addGatewayRunCommand } from "./run.js";
22+import { addGatewayRunCommand } from "./run-command.js";
35233624const configModuleLoader = createLazyImportLoader(
3725() => import("../../config/read-best-effort-config.runtime.js"),
@@ -98,9 +86,31 @@ function loadDaemonStatusGatherModule() {
9886return daemonStatusGatherModuleLoader.load();
9987}
10088101-function runGatewayCommand(action: () => Promise<void>, label?: string, opts?: { json?: boolean }) {
102-return runCommandWithRuntime(defaultRuntime, action, (err) => {
89+function gatewayCallOpts(cmd: Command): Command {
90+return cmd
91+.option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)")
92+.option("--token <token>", "Gateway token (if required)")
93+.option("--password <password>", "Gateway password (password auth)")
94+.option("--timeout <ms>", "Timeout in ms", "10000")
95+.option("--expect-final", "Wait for final response (agent)", false)
96+.option("--json", "Output JSON", false);
97+}
98+99+async function callGatewayCli(method: string, opts: GatewayRpcOpts, params?: unknown) {
100+const mod = await import("./call.js");
101+return mod.callGatewayCli(method, opts, params);
102+}
103+104+async function runGatewayCommand(
105+action: () => Promise<void>,
106+label?: string,
107+opts?: { json?: boolean },
108+) {
109+try {
110+await action();
111+} catch (err) {
103112if (opts?.json) {
113+const { formatGatewayTransportErrorJson } = await import("../../gateway/call.js");
104114const payload = formatGatewayTransportErrorJson(err);
105115if (payload) {
106116defaultRuntime.writeJson(payload);
@@ -111,7 +121,7 @@ function runGatewayCommand(action: () => Promise<void>, label?: string, opts?: {
111121const message = String(err);
112122defaultRuntime.error(label ? `${label}: ${message}` : message);
113123defaultRuntime.exit(1);
114-});
124+}
115125}
116126117127function parseDaysOption(raw: unknown, fallback = 30): number {
@@ -550,6 +560,8 @@ export function registerGatewayCli(program: Command) {
550560.option("--output <path>", "Diagnostics export output .zip path")
551561.action(async (opts, command) => {
552562await runGatewayCommand(async () => {
563+const { normalizeDiagnosticStabilityQuery, selectDiagnosticStabilitySnapshot } =
564+await import("../../logging/diagnostic-stability.js");
553565const rpcOpts = resolveGatewayRpcOptions(opts, command);
554566const query = normalizeDiagnosticStabilityQuery(
555567{
@@ -676,10 +688,20 @@ export function registerGatewayCli(program: Command) {
676688{ readSourceConfigBestEffort },
677689{ discoverGatewayBeacons },
678690{ resolveWideAreaDiscoveryDomain },
691+{
692+ dedupeBeacons,
693+ parseDiscoverTimeoutMs,
694+ pickBeaconHost,
695+ pickGatewayPort,
696+ renderBeaconLines,
697+},
698+{ withProgress },
679699] = await Promise.all([
680700loadConfigModule(),
681701loadBonjourDiscoveryModule(),
682702loadWideAreaDnsModule(),
703+import("./discover.js"),
704+import("../progress.js"),
683705]);
684706const cfg = await readSourceConfigBestEffort();
685707const wideAreaDomain = resolveWideAreaDiscoveryDomain({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。