openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
85 lines (84 loc) • 3.49 kB
JavaScript
import { y as resolveStateDir } from "./paths-mvMm5bYV.js";
import process$1 from "node:process";
import path from "node:path";
import { randomUUID } from "node:crypto";
import { createAmbientNodeProxyAgent } from "@openclaw/proxyline";
//#region src/proxy-capture/paths.ts
function resolveDebugProxyRootDir(env = process.env) {
return path.join(resolveStateDir(env), "debug-proxy");
}
function resolveDebugProxyDbPath(env = process.env) {
return path.join(resolveDebugProxyRootDir(env), "capture.sqlite");
}
function resolveDebugProxyBlobDir(env = process.env) {
return path.join(resolveDebugProxyRootDir(env), "blobs");
}
function resolveDebugProxyCertDir(env = process.env) {
return path.join(resolveDebugProxyRootDir(env), "certs");
}
//#endregion
//#region src/proxy-capture/env.ts
const OPENCLAW_DEBUG_PROXY_ENABLED = "OPENCLAW_DEBUG_PROXY_ENABLED";
const OPENCLAW_DEBUG_PROXY_URL = "OPENCLAW_DEBUG_PROXY_URL";
const OPENCLAW_DEBUG_PROXY_DB_PATH = "OPENCLAW_DEBUG_PROXY_DB_PATH";
const OPENCLAW_DEBUG_PROXY_BLOB_DIR = "OPENCLAW_DEBUG_PROXY_BLOB_DIR";
const OPENCLAW_DEBUG_PROXY_CERT_DIR = "OPENCLAW_DEBUG_PROXY_CERT_DIR";
const OPENCLAW_DEBUG_PROXY_SESSION_ID = "OPENCLAW_DEBUG_PROXY_SESSION_ID";
const OPENCLAW_DEBUG_PROXY_REQUIRE = "OPENCLAW_DEBUG_PROXY_REQUIRE";
let cachedImplicitSessionId;
function isTruthy(value) {
return value === "1" || value === "true" || value === "yes" || value === "on";
}
function resolveDebugProxySettings(env = process$1.env) {
const enabled = isTruthy(env[OPENCLAW_DEBUG_PROXY_ENABLED]);
const sessionId = (env["OPENCLAW_DEBUG_PROXY_SESSION_ID"]?.trim() || void 0) ?? (cachedImplicitSessionId ??= randomUUID());
return {
enabled,
required: isTruthy(env[OPENCLAW_DEBUG_PROXY_REQUIRE]),
proxyUrl: env["OPENCLAW_DEBUG_PROXY_URL"]?.trim() || void 0,
dbPath: env["OPENCLAW_DEBUG_PROXY_DB_PATH"]?.trim() || resolveDebugProxyDbPath(env),
blobDir: env["OPENCLAW_DEBUG_PROXY_BLOB_DIR"]?.trim() || resolveDebugProxyBlobDir(env),
certDir: env["OPENCLAW_DEBUG_PROXY_CERT_DIR"]?.trim() || resolveDebugProxyCertDir(env),
sessionId,
sourceProcess: "openclaw"
};
}
function applyDebugProxyEnv(env, params) {
return {
...env,
[]: "1",
[]: "1",
[]: params.proxyUrl,
[]: params.dbPath ?? resolveDebugProxyDbPath(env),
[]: params.blobDir ?? resolveDebugProxyBlobDir(env),
[]: params.certDir ?? resolveDebugProxyCertDir(env),
[]: params.sessionId,
HTTP_PROXY: params.proxyUrl,
HTTPS_PROXY: params.proxyUrl,
ALL_PROXY: params.proxyUrl
};
}
function createDebugProxyWebSocketAgent(settings) {
if (!settings.enabled || !settings.proxyUrl) return;
return createAmbientNodeProxyAgent({
protocol: "https",
env: {
HTTP_PROXY: settings.proxyUrl,
HTTPS_PROXY: settings.proxyUrl,
ALL_PROXY: void 0,
NO_PROXY: void 0,
http_proxy: void 0,
https_proxy: void 0,
all_proxy: void 0,
no_proxy: void 0
}
});
}
function resolveEffectiveDebugProxyUrl(configuredProxyUrl) {
const explicit = configuredProxyUrl?.trim();
if (explicit) return explicit;
const settings = resolveDebugProxySettings();
return settings.enabled ? settings.proxyUrl : void 0;
}
//#endregion
export { resolveEffectiveDebugProxyUrl as i, createDebugProxyWebSocketAgent as n, resolveDebugProxySettings as r, applyDebugProxyEnv as t };