Refactor the logic for deciding whether to launch a browser into config (#4622)

This commit is contained in:
Marat Boshernitsan
2025-07-21 16:23:28 -07:00
committed by GitHub
parent 97cf26ec53
commit 5066bc5384
5 changed files with 10 additions and 6 deletions

View File

@@ -38,6 +38,7 @@ vi.mock('../utils/browser.js', () => ({
const mockConfig = {
getNoBrowser: () => false,
getProxy: () => 'http://test.proxy.com:8080',
isBrowserLaunchSuppressed: () => false,
} as unknown as Config;
// Mock fetch globally
@@ -180,6 +181,7 @@ describe('oauth2', () => {
const mockConfigWithNoBrowser = {
getNoBrowser: () => true,
getProxy: () => 'http://test.proxy.com:8080',
isBrowserLaunchSuppressed: () => true,
} as unknown as Config;
const mockCodeVerifier = {

View File

@@ -26,7 +26,6 @@ import {
clearCachedGoogleAccount,
} from '../utils/user_account.js';
import { AuthType } from '../core/contentGenerator.js';
import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
import readline from 'node:readline';
// OAuth Client ID used to initiate OAuth2Client class.
@@ -122,7 +121,7 @@ export async function getOauthClient(
}
}
if (config.getNoBrowser() || !shouldAttemptBrowserLaunch()) {
if (config.isBrowserLaunchSuppressed()) {
let success = false;
const maxRetries = 2;
for (let i = 0; !success && i < maxRetries; i++) {

View File

@@ -44,6 +44,7 @@ import {
DEFAULT_GEMINI_FLASH_MODEL,
} from './models.js';
import { ClearcutLogger } from '../telemetry/clearcut-logger/clearcut-logger.js';
import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
export enum ApprovalMode {
DEFAULT = 'default',
@@ -542,6 +543,10 @@ export class Config {
return this.noBrowser;
}
isBrowserLaunchSuppressed(): boolean {
return this.getNoBrowser() || !shouldAttemptBrowserLaunch();
}
getSummarizeToolOutputConfig():
| Record<string, SummarizeToolOutputSettings>
| undefined {