openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
48 lines (47 loc) • 1.63 kB
JavaScript
import { a as prepareProviderRuntimeAuth } from "./provider-runtime.runtime.js";
import { t as resolveApiKeyForProviderCore } from "./model-auth-provider-Dd_3dXeY.js";
import { i as getApiKeyForModelCore } from "./model-auth-C48_DZ-I.js";
//#region src/plugins/runtime/runtime-model-auth.runtime.ts
async function getApiKeyForModel(params) {
return getApiKeyForModelCore(params);
}
async function resolveProviderRuntimeApiKey(params) {
return resolveApiKeyForProviderCore(params);
}
/**
* Resolve request-ready auth for a runtime model, applying any provider-owned
* `prepareRuntimeAuth` exchange on top of the standard credential lookup.
*/
async function getRuntimeAuthForModelCore(params) {
const resolvedAuth = await getApiKeyForModelCore({
model: params.model,
cfg: params.cfg,
workspaceDir: params.workspaceDir
});
if (!resolvedAuth.apiKey || resolvedAuth.mode === "aws-sdk") return resolvedAuth;
const preparedAuth = await prepareProviderRuntimeAuth({
provider: params.model.provider,
config: params.cfg,
workspaceDir: params.workspaceDir,
env: process.env,
context: {
config: params.cfg,
workspaceDir: params.workspaceDir,
env: process.env,
provider: params.model.provider,
modelId: params.model.id,
model: params.model,
apiKey: resolvedAuth.apiKey,
authMode: resolvedAuth.mode,
profileId: resolvedAuth.profileId
}
});
if (!preparedAuth) return resolvedAuth;
return {
...resolvedAuth,
...preparedAuth,
apiKey: preparedAuth.apiKey ?? resolvedAuth.apiKey
};
}
//#endregion
export { getApiKeyForModel, getRuntimeAuthForModelCore, resolveProviderRuntimeApiKey };