mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 08:10:43 +00:00
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
|
import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-loader.js";
|
|
|
|
export type BrowserControlAuth = {
|
|
token?: string;
|
|
password?: string;
|
|
};
|
|
|
|
type EnsureBrowserControlAuthParams = {
|
|
cfg: OpenClawConfig;
|
|
env?: NodeJS.ProcessEnv;
|
|
};
|
|
|
|
type EnsureBrowserControlAuthResult = {
|
|
auth: BrowserControlAuth;
|
|
generatedToken?: string;
|
|
};
|
|
|
|
type BrowserControlAuthSurface = {
|
|
resolveBrowserControlAuth: (cfg?: OpenClawConfig, env?: NodeJS.ProcessEnv) => BrowserControlAuth;
|
|
shouldAutoGenerateBrowserAuth: (env: NodeJS.ProcessEnv) => boolean;
|
|
ensureBrowserControlAuth: (
|
|
params: EnsureBrowserControlAuthParams,
|
|
) => Promise<EnsureBrowserControlAuthResult>;
|
|
};
|
|
|
|
let cachedBrowserControlAuthSurface: BrowserControlAuthSurface | undefined;
|
|
|
|
function loadBrowserControlAuthSurface(): BrowserControlAuthSurface {
|
|
cachedBrowserControlAuthSurface ??=
|
|
loadBundledPluginPublicSurfaceModuleSync<BrowserControlAuthSurface>({
|
|
dirName: "browser",
|
|
artifactBasename: "browser-control-auth.js",
|
|
});
|
|
return cachedBrowserControlAuthSurface;
|
|
}
|
|
|
|
export function resolveBrowserControlAuth(
|
|
cfg?: OpenClawConfig,
|
|
env: NodeJS.ProcessEnv = process.env,
|
|
): BrowserControlAuth {
|
|
return loadBrowserControlAuthSurface().resolveBrowserControlAuth(cfg, env);
|
|
}
|
|
|
|
export function shouldAutoGenerateBrowserAuth(env: NodeJS.ProcessEnv): boolean {
|
|
return loadBrowserControlAuthSurface().shouldAutoGenerateBrowserAuth(env);
|
|
}
|
|
|
|
export async function ensureBrowserControlAuth(
|
|
params: EnsureBrowserControlAuthParams,
|
|
): Promise<EnsureBrowserControlAuthResult> {
|
|
return await loadBrowserControlAuthSurface().ensureBrowserControlAuth(params);
|
|
}
|