mirror of
https://fastgit.cc/github.com/openclaw/openclaw
synced 2026-04-30 22:12:32 +08:00
Tighten Google Vertex ADC manifest evidence to canonical project env vars and canonical ADC fallback paths only. Local proof: - OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test src/agents/model-auth.profiles.test.ts src/plugins/manifest-registry.test.ts src/secrets/provider-env-vars.dynamic.test.ts - pnpm exec oxfmt --check --threads=1 docs/plugins/manifest.md extensions/google/openclaw.plugin.json src/agents/model-auth-env.ts src/agents/model-auth.profiles.test.ts src/plugins/manifest.ts - git diff --check origin/main...HEAD CI note: checks-node-core-support-boundary was red on an unrelated tooling assertion in test/scripts/test-projects.test.ts for packages/sdk/src/index.test.ts routing; that file and scripts/test-projects.mjs are unchanged from origin/main.
186 lines
5.1 KiB
JSON
186 lines
5.1 KiB
JSON
{
|
|
"id": "google",
|
|
"activation": {
|
|
"onStartup": false
|
|
},
|
|
"enabledByDefault": true,
|
|
"providers": ["google", "google-gemini-cli", "google-vertex"],
|
|
"autoEnableWhenConfiguredProviders": ["google-gemini-cli"],
|
|
"modelIdNormalization": {
|
|
"providers": {
|
|
"google": {
|
|
"aliases": {
|
|
"gemini-3-pro": "gemini-3-pro-preview",
|
|
"gemini-3-flash": "gemini-3-flash-preview",
|
|
"gemini-3.1-pro": "gemini-3.1-pro-preview",
|
|
"gemini-3.1-flash-lite": "gemini-3.1-flash-lite-preview",
|
|
"gemini-3.1-flash": "gemini-3-flash-preview",
|
|
"gemini-3.1-flash-preview": "gemini-3-flash-preview"
|
|
}
|
|
},
|
|
"google-vertex": {
|
|
"aliases": {
|
|
"gemini-3-pro": "gemini-3-pro-preview",
|
|
"gemini-3-flash": "gemini-3-flash-preview",
|
|
"gemini-3.1-pro": "gemini-3.1-pro-preview",
|
|
"gemini-3.1-flash-lite": "gemini-3.1-flash-lite-preview",
|
|
"gemini-3.1-flash": "gemini-3-flash-preview",
|
|
"gemini-3.1-flash-preview": "gemini-3-flash-preview"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"modelPricing": {
|
|
"providers": {
|
|
"google-gemini-cli": {
|
|
"openRouter": {
|
|
"provider": "google"
|
|
},
|
|
"liteLLM": {
|
|
"provider": "google"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"providerEndpoints": [
|
|
{
|
|
"endpointClass": "google-generative-ai",
|
|
"hosts": ["generativelanguage.googleapis.com"]
|
|
},
|
|
{
|
|
"endpointClass": "google-vertex",
|
|
"hosts": ["aiplatform.googleapis.com"],
|
|
"googleVertexRegion": "global"
|
|
},
|
|
{
|
|
"endpointClass": "google-vertex",
|
|
"hostSuffixes": ["-aiplatform.googleapis.com"],
|
|
"googleVertexRegionHostSuffix": "-aiplatform.googleapis.com"
|
|
}
|
|
],
|
|
"providerRequest": {
|
|
"providers": {
|
|
"google": {
|
|
"family": "google"
|
|
},
|
|
"google-gemini-cli": {
|
|
"family": "google"
|
|
},
|
|
"google-vertex": {
|
|
"family": "google"
|
|
}
|
|
}
|
|
},
|
|
"setup": {
|
|
"providers": [
|
|
{
|
|
"id": "google-vertex",
|
|
"authMethods": ["api-key"],
|
|
"envVars": ["GOOGLE_CLOUD_API_KEY"],
|
|
"authEvidence": [
|
|
{
|
|
"type": "local-file-with-env",
|
|
"fileEnvVar": "GOOGLE_APPLICATION_CREDENTIALS",
|
|
"fallbackPaths": [
|
|
"${HOME}/.config/gcloud/application_default_credentials.json",
|
|
"${APPDATA}/gcloud/application_default_credentials.json"
|
|
],
|
|
"requiresAnyEnv": ["GOOGLE_CLOUD_PROJECT", "GCLOUD_PROJECT"],
|
|
"requiresAllEnv": ["GOOGLE_CLOUD_LOCATION"],
|
|
"credentialMarker": "gcp-vertex-credentials",
|
|
"source": "gcloud adc"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"cliBackends": ["google-gemini-cli"],
|
|
"providerAuthEnvVars": {
|
|
"google": ["GEMINI_API_KEY", "GOOGLE_API_KEY"]
|
|
},
|
|
"providerAuthChoices": [
|
|
{
|
|
"provider": "google",
|
|
"method": "api-key",
|
|
"choiceId": "gemini-api-key",
|
|
"choiceLabel": "Google Gemini API key",
|
|
"groupId": "google",
|
|
"groupLabel": "Google",
|
|
"groupHint": "Gemini API key + OAuth",
|
|
"optionKey": "geminiApiKey",
|
|
"cliFlag": "--gemini-api-key",
|
|
"cliOption": "--gemini-api-key <key>",
|
|
"cliDescription": "Gemini API key"
|
|
},
|
|
{
|
|
"provider": "google-gemini-cli",
|
|
"method": "oauth",
|
|
"choiceId": "google-gemini-cli",
|
|
"choiceLabel": "Gemini CLI OAuth",
|
|
"choiceHint": "Google OAuth with project-aware token payload",
|
|
"groupId": "google",
|
|
"groupLabel": "Google",
|
|
"groupHint": "Gemini API key + OAuth"
|
|
}
|
|
],
|
|
"uiHints": {
|
|
"webSearch.apiKey": {
|
|
"label": "Gemini Search API Key",
|
|
"help": "Gemini API key for Google Search grounding (fallback: GEMINI_API_KEY env var).",
|
|
"sensitive": true,
|
|
"placeholder": "AIza..."
|
|
},
|
|
"webSearch.model": {
|
|
"label": "Gemini Search Model",
|
|
"help": "Gemini model override for web search grounding."
|
|
}
|
|
},
|
|
"contracts": {
|
|
"mediaUnderstandingProviders": ["google"],
|
|
"memoryEmbeddingProviders": ["gemini"],
|
|
"imageGenerationProviders": ["google"],
|
|
"musicGenerationProviders": ["google"],
|
|
"realtimeVoiceProviders": ["google"],
|
|
"speechProviders": ["google"],
|
|
"videoGenerationProviders": ["google"],
|
|
"webSearchProviders": ["gemini"]
|
|
},
|
|
"mediaUnderstandingProviderMetadata": {
|
|
"google": {
|
|
"capabilities": ["image", "audio", "video"],
|
|
"defaultModels": {
|
|
"image": "gemini-3-flash-preview",
|
|
"audio": "gemini-3-flash-preview",
|
|
"video": "gemini-3-flash-preview"
|
|
},
|
|
"autoPriority": {
|
|
"image": 30,
|
|
"audio": 40,
|
|
"video": 10
|
|
},
|
|
"nativeDocumentInputs": ["pdf"]
|
|
}
|
|
},
|
|
"configContracts": {
|
|
"compatibilityRuntimePaths": ["tools.web.search.apiKey"]
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"webSearch": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"apiKey": {
|
|
"type": ["string", "object"]
|
|
},
|
|
"model": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|