All files / packages/gemini-core/src/code_assist codeAssist.ts

70% Statements 7/10
66.66% Branches 2/3
100% Functions 1/1
70% Lines 7/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37              6x 6x 6x   6x     6x           6x       6x                        
/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
 
import type { ContentGenerator } from '../core/contentGenerator';
import { AuthType } from '../core/contentGenerator';
import { getOauthClient } from './oauth2';
import { setupUser } from './setup';
import type { HttpOptions } from './server';
import { CodeAssistServer } from './server';
import type { Config } from '../config/config';
 
export async function createCodeAssistContentGenerator(
  httpOptions: HttpOptions,
  authType: AuthType,
  config: Config,
  sessionId?: string,
): Promise<ContentGenerator> {
  if (
    authType === AuthType.LOGIN_WITH_GOOGLE ||
    authType === AuthType.CLOUD_SHELL
  ) {
    const authClient = await getOauthClient(authType, config);
    const userData = await setupUser(authClient);
    return new CodeAssistServer(
      authClient,
      userData.projectId,
      httpOptions,
      sessionId,
      userData.userTier,
    );
  }
 
  throw new Error(`Unsupported authType: ${authType}`);
}