openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
45 lines (44 loc) • 1.73 kB
JavaScript
import { c as normalizeOptionalString } from "./string-coerce-mnp54Vah.js";
import { c as isRecord } from "./utils-CCC-BEJH.js";
import "./string-coerce-runtime-CEGJWkQ_.js";
import { existsSync, readFileSync } from "node:fs";
import { join } from "node:path";
import { homedir } from "node:os";
//#region extensions/google/oauth.settings.ts
const defaultFs = {
existsSync,
readFileSync,
homedir
};
let oauthSettingsFs = defaultFs;
function readSettingsFile() {
const settingsPath = join(oauthSettingsFs.homedir(), ".gemini", "settings.json");
if (!oauthSettingsFs.existsSync(settingsPath)) return null;
try {
const parsed = JSON.parse(oauthSettingsFs.readFileSync(settingsPath, "utf8"));
return isRecord(parsed) ? parsed : null;
} catch {
return null;
}
}
function setOAuthSettingsFsForTest(overrides) {
oauthSettingsFs = overrides ? {
...defaultFs,
...overrides
} : defaultFs;
}
function resolveGeminiCliSelectedAuthType() {
const settings = readSettingsFile();
if (settings) {
const security = isRecord(settings.security) ? settings.security : void 0;
const auth = isRecord(security?.auth) ? security.auth : void 0;
const selectedAuthType = normalizeOptionalString(auth?.selectedType) ?? normalizeOptionalString(auth?.enforcedType) ?? normalizeOptionalString(settings.selectedAuthType) ?? normalizeOptionalString(settings.enforcedAuthType);
if (selectedAuthType) return selectedAuthType;
}
if (process.env.GOOGLE_GENAI_USE_GCA === "true") return "oauth-personal";
}
function isGeminiCliPersonalOAuth() {
return resolveGeminiCliSelectedAuthType() === "oauth-personal";
}
//#endregion
export { resolveGeminiCliSelectedAuthType as n, setOAuthSettingsFsForTest as r, isGeminiCliPersonalOAuth as t };