openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
38 lines (37 loc) • 1.73 kB
JavaScript
import { t as isContainerEnvironment } from "./container-environment-CNsJSTpY.js";
import { n as pickPrimaryTailnetIPv4 } from "./tailnet-CVdlmJeO.js";
import { t as defaultGatewayBindMode, v as resolveGatewayRequiredListenHosts } from "./net-DbNPs6Xm.js";
import { t as LOOPBACK_PORT_PROBE_HOSTS } from "./ports-probe-funEe1wt.js";
//#region src/daemon/service-env-merge.ts
function mergeGatewayServiceEnv(baseEnv, command) {
if (!command?.environment) return baseEnv;
const merged = {
...baseEnv,
...command.environment
};
for (const key of [
"OPENCLAW_LAUNCHD_LABEL",
"OPENCLAW_SYSTEMD_UNIT",
"OPENCLAW_WINDOWS_TASK_NAME"
]) {
const value = baseEnv[key]?.trim();
if (value) merged[key] = value;
}
return merged;
}
//#endregion
//#region src/daemon/gateway-service-probe-hosts.ts
async function resolveGatewayServiceProbeHosts(params) {
const mergedEnv = mergeGatewayServiceEnv(params.env ?? process.env, params.command ?? null);
const { createConfigIO } = await import("./io.runtime.js");
const cfg = await createConfigIO({
env: mergedEnv,
pluginValidation: "skip",
suppressFutureVersionWarning: true
}).readBestEffortConfig().catch(() => ({}));
const bindMode = cfg.gateway?.bind ?? defaultGatewayBindMode(cfg.gateway?.tailscale?.mode ?? "off");
const bindHost = bindMode === "lan" ? "0.0.0.0" : bindMode === "custom" ? cfg.gateway?.customBindHost?.trim() || "0.0.0.0" : bindMode === "tailnet" ? pickPrimaryTailnetIPv4() ?? LOOPBACK_PORT_PROBE_HOSTS[0] : bindMode === "auto" && isContainerEnvironment() ? "0.0.0.0" : LOOPBACK_PORT_PROBE_HOSTS[0];
return resolveGatewayRequiredListenHosts(bindHost);
}
//#endregion
export { mergeGatewayServiceEnv as n, resolveGatewayServiceProbeHosts as t };