mirror of https://github.com/openclaw/openclaw.git
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import { resolveProviderEndpoint } from "../agents/provider-attribution.js";
|
|
|
|
export const DEFAULT_GOOGLE_API_BASE_URL = "https://generativelanguage.googleapis.com/v1beta";
|
|
|
|
function trimTrailingSlashes(value: string): string {
|
|
return value.replace(/\/+$/, "");
|
|
}
|
|
|
|
function isCanonicalGoogleApiOriginShorthand(value: string): boolean {
|
|
return /^https:\/\/generativelanguage\.googleapis\.com\/?$/i.test(value);
|
|
}
|
|
|
|
export function normalizeGoogleApiBaseUrl(baseUrl?: string): string {
|
|
const raw = trimTrailingSlashes(baseUrl?.trim() || DEFAULT_GOOGLE_API_BASE_URL);
|
|
try {
|
|
const url = new URL(raw);
|
|
url.hash = "";
|
|
url.search = "";
|
|
if (
|
|
resolveProviderEndpoint(url.toString()).endpointClass === "google-generative-ai" &&
|
|
trimTrailingSlashes(url.pathname || "") === ""
|
|
) {
|
|
url.pathname = "/v1beta";
|
|
}
|
|
return trimTrailingSlashes(url.toString());
|
|
} catch {
|
|
if (isCanonicalGoogleApiOriginShorthand(raw)) {
|
|
return DEFAULT_GOOGLE_API_BASE_URL;
|
|
}
|
|
return raw;
|
|
}
|
|
}
|