refactor(auth): reuse oauth auth result helper

This commit is contained in:
Peter Steinberger
2026-02-15 19:36:02 +00:00
parent 342e9cac03
commit 59c0b2bb37
2 changed files with 18 additions and 52 deletions

View File

@@ -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;

View File

@@ -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(