openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
39 lines (38 loc) • 1.78 kB
JavaScript
import { h as resolveProviderHttpRequestConfig } from "./shared-DRwlUeUJ.mjs";
import "./provider-http-JgjW-z-k.mjs";
import { p as normalizeGoogleGenerativeAiBaseUrl, s as DEFAULT_GOOGLE_API_BASE_URL } from "./provider-policy-BSO8o2tf.mjs";
import { t as parseGeminiAuth } from "./gemini-auth-CUKsnejN.mjs";
import { t as resolveGoogleApiClientHeaders } from "./google-api-client-header-CD7xWInc.mjs";
//#region extensions/google/http-request.ts
function resolveTrustedGoogleGenerativeAiBaseUrl(baseUrl) {
const normalized = normalizeGoogleGenerativeAiBaseUrl(baseUrl) ?? "https://generativelanguage.googleapis.com/v1beta";
const url = URL.parse(normalized);
if (!url) throw new Error("Google Generative AI baseUrl must be a valid https URL on generativelanguage.googleapis.com");
if (url.protocol !== "https:" || url.hostname.toLowerCase() !== "generativelanguage.googleapis.com") throw new Error("Google Generative AI baseUrl must use https://generativelanguage.googleapis.com");
return normalized;
}
function resolveGoogleGenerativeAiHttpRequestConfig(params) {
const baseUrl = resolveTrustedGoogleGenerativeAiBaseUrl(params.baseUrl);
return resolveProviderHttpRequestConfig({
baseUrl,
defaultBaseUrl: DEFAULT_GOOGLE_API_BASE_URL,
allowPrivateNetwork: params.request?.allowPrivateNetwork,
headers: params.headers,
request: params.request,
defaultHeaders: {
...parseGeminiAuth(params.apiKey).headers,
...resolveGoogleApiClientHeaders({
baseUrl,
api: "google-generative-ai",
capability: params.capability,
transport: params.transport
})
},
provider: "google",
api: "google-generative-ai",
capability: params.capability,
transport: params.transport
});
}
//#endregion
export { resolveGoogleGenerativeAiHttpRequestConfig as t };