import { requireApiKey, resolveApiKeyForProvider } from "../agents/model-auth.js"; import type { EmbeddingProviderOptions } from "./embeddings.js"; type RemoteEmbeddingProviderId = "openai" | "voyage"; export async function resolveRemoteEmbeddingBearerClient(params: { provider: RemoteEmbeddingProviderId; options: EmbeddingProviderOptions; defaultBaseUrl: string; }): Promise<{ baseUrl: string; headers: Record }> { const remote = params.options.remote; const remoteApiKey = remote?.apiKey?.trim(); const remoteBaseUrl = remote?.baseUrl?.trim(); const providerConfig = params.options.config.models?.providers?.[params.provider]; const apiKey = remoteApiKey ? remoteApiKey : requireApiKey( await resolveApiKeyForProvider({ provider: params.provider, cfg: params.options.config, agentDir: params.options.agentDir, }), params.provider, ); const baseUrl = remoteBaseUrl || providerConfig?.baseUrl?.trim() || params.defaultBaseUrl; const headerOverrides = Object.assign({}, providerConfig?.headers, remote?.headers); const headers: Record = { "Content-Type": "application/json", Authorization: `Bearer ${apiKey}`, ...headerOverrides, }; return { baseUrl, headers }; }