openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
70 lines (69 loc) • 1.75 kB
JavaScript
//#region extensions/google/provider-contract-api.ts
const noopAuth = async () => ({ profiles: [] });
function createGoogleProvider() {
return {
id: "google",
label: "Google AI Studio",
docsPath: "/providers/models",
hookAliases: ["google-antigravity", "google-vertex"],
envVars: ["GEMINI_API_KEY", "GOOGLE_API_KEY"],
auth: [{
id: "api-key",
kind: "api_key",
label: "Google Gemini API key",
hint: "AI Studio / Gemini API key",
run: noopAuth,
wizard: {
choiceId: "gemini-api-key",
choiceLabel: "Google Gemini API key",
groupId: "google",
groupLabel: "Google",
groupHint: "Gemini API key + OAuth"
}
}]
};
}
function createGoogleVertexProvider() {
return {
id: "google-vertex",
label: "Google Vertex AI",
docsPath: "/providers/models",
envVars: [
"GOOGLE_CLOUD_API_KEY",
"GOOGLE_CLOUD_PROJECT",
"GCLOUD_PROJECT",
"GOOGLE_CLOUD_LOCATION",
"GOOGLE_APPLICATION_CREDENTIALS"
],
auth: []
};
}
function createGoogleGeminiCliProvider() {
return {
id: "google-gemini-cli",
label: "Gemini CLI OAuth",
docsPath: "/providers/models",
aliases: ["gemini-cli"],
envVars: [
"OPENCLAW_GEMINI_OAUTH_CLIENT_ID",
"OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET",
"GEMINI_CLI_OAUTH_CLIENT_ID",
"GEMINI_CLI_OAUTH_CLIENT_SECRET"
],
auth: [{
id: "oauth",
kind: "oauth",
label: "Google OAuth",
hint: "PKCE + localhost callback",
run: noopAuth
}],
wizard: { setup: {
choiceId: "google-gemini-cli",
choiceLabel: "Gemini CLI OAuth",
choiceHint: "Google OAuth with project-aware token payload",
methodId: "oauth"
} }
};
}
//#endregion
export { createGoogleProvider as n, createGoogleVertexProvider as r, createGoogleGeminiCliProvider as t };