diff --git a/extensions/google-antigravity-auth/index.ts b/extensions/google-antigravity-auth/index.ts index 15f1bf1ee2..055cb15e00 100644 --- a/extensions/google-antigravity-auth/index.ts +++ b/extensions/google-antigravity-auth/index.ts @@ -1,6 +1,7 @@ import { createHash, randomBytes } from "node:crypto"; import { createServer } from "node:http"; import { + buildOauthProviderAuthResult, emptyPluginConfigSchema, isWSL2Sync, type OpenClawPluginApi, @@ -396,37 +397,19 @@ const antigravityPlugin = { progress: spin, }); - const profileId = `google-antigravity:${result.email ?? "default"}`; - return { - profiles: [ - { - profileId, - credential: { - type: "oauth", - provider: "google-antigravity", - access: result.access, - refresh: result.refresh, - expires: result.expires, - email: result.email, - projectId: result.projectId, - }, - }, - ], - configPatch: { - agents: { - defaults: { - models: { - [DEFAULT_MODEL]: {}, - }, - }, - }, - }, + return buildOauthProviderAuthResult({ + providerId: "google-antigravity", defaultModel: DEFAULT_MODEL, + access: result.access, + refresh: result.refresh, + expires: result.expires, + email: result.email, + credentialExtra: { projectId: result.projectId }, notes: [ "Antigravity uses Google Cloud project quotas.", "Enable Gemini for Google Cloud on your project if requests fail.", ], - }; + }); } catch (err) { spin.stop("Antigravity OAuth failed"); throw err; diff --git a/extensions/google-gemini-cli-auth/index.ts b/extensions/google-gemini-cli-auth/index.ts index ba7913e2d8..89b7c4d1cf 100644 --- a/extensions/google-gemini-cli-auth/index.ts +++ b/extensions/google-gemini-cli-auth/index.ts @@ -1,4 +1,5 @@ import { + buildOauthProviderAuthResult, emptyPluginConfigSchema, type OpenClawPluginApi, type ProviderAuthContext, @@ -46,34 +47,16 @@ const geminiCliPlugin = { }); spin.stop("Gemini CLI OAuth complete"); - const profileId = `google-gemini-cli:${result.email ?? "default"}`; - return { - profiles: [ - { - profileId, - credential: { - type: "oauth", - provider: PROVIDER_ID, - access: result.access, - refresh: result.refresh, - expires: result.expires, - email: result.email, - projectId: result.projectId, - }, - }, - ], - configPatch: { - agents: { - defaults: { - models: { - [DEFAULT_MODEL]: {}, - }, - }, - }, - }, + return buildOauthProviderAuthResult({ + providerId: PROVIDER_ID, defaultModel: DEFAULT_MODEL, + access: result.access, + refresh: result.refresh, + expires: result.expires, + email: result.email, + credentialExtra: { projectId: result.projectId }, notes: ["If requests fail, set GOOGLE_CLOUD_PROJECT or GOOGLE_CLOUD_PROJECT_ID."], - }; + }); } catch (err) { spin.stop("Gemini CLI OAuth failed"); await ctx.prompter.note(