mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-05 14:21:32 +00:00
46 lines
1.8 KiB
TypeScript
46 lines
1.8 KiB
TypeScript
// Public runtime auth helpers for provider plugins.
|
|
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
|
|
export { resolveEnvApiKey } from "../agents/model-auth-env.js";
|
|
export { NON_ENV_SECRETREF_MARKER } from "../agents/model-auth-markers.js";
|
|
export {
|
|
requireApiKey,
|
|
resolveAwsSdkEnvVarName,
|
|
type ResolvedProviderAuth,
|
|
} from "../agents/model-auth-runtime-shared.js";
|
|
|
|
type ResolveApiKeyForProvider = typeof import("../agents/model-auth.js").resolveApiKeyForProvider;
|
|
type RuntimeModelAuthModule = typeof import("../plugins/runtime/runtime-model-auth.runtime.js");
|
|
const RUNTIME_MODEL_AUTH_CANDIDATES = [
|
|
"./runtime-model-auth.runtime",
|
|
"../plugins/runtime/runtime-model-auth.runtime",
|
|
] as const;
|
|
const RUNTIME_MODEL_AUTH_EXTENSIONS = [".js", ".ts", ".mjs", ".mts", ".cjs", ".cts"] as const;
|
|
|
|
function resolveRuntimeModelAuthModuleHref(): string {
|
|
const baseDir = path.dirname(fileURLToPath(import.meta.url));
|
|
for (const relativeBase of RUNTIME_MODEL_AUTH_CANDIDATES) {
|
|
for (const ext of RUNTIME_MODEL_AUTH_EXTENSIONS) {
|
|
const candidate = path.resolve(baseDir, `${relativeBase}${ext}`);
|
|
if (fs.existsSync(candidate)) {
|
|
return pathToFileURL(candidate).href;
|
|
}
|
|
}
|
|
}
|
|
throw new Error(`Unable to resolve runtime model auth module from ${import.meta.url}`);
|
|
}
|
|
|
|
async function loadRuntimeModelAuthModule(): Promise<RuntimeModelAuthModule> {
|
|
return (await import(resolveRuntimeModelAuthModuleHref())) as RuntimeModelAuthModule;
|
|
}
|
|
|
|
export async function resolveApiKeyForProvider(
|
|
params: Parameters<ResolveApiKeyForProvider>[0],
|
|
): Promise<Awaited<ReturnType<ResolveApiKeyForProvider>>> {
|
|
const { resolveApiKeyForProvider } = await loadRuntimeModelAuthModule();
|
|
return resolveApiKeyForProvider(params);
|
|
}
|