mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 13:40:44 +00:00
62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared";
|
|
|
|
const noopAuth = async () => ({ profiles: [] });
|
|
|
|
export function createGoogleProvider(): ProviderPlugin {
|
|
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",
|
|
},
|
|
},
|
|
],
|
|
};
|
|
}
|
|
|
|
export function createGoogleGeminiCliProvider(): ProviderPlugin {
|
|
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",
|
|
},
|
|
},
|
|
};
|
|
}
|