buroventures-harald-code-core
Version:
Harald Code Core - Core functionality for AI-powered coding assistant
47 lines (46 loc) • 1.93 kB
TypeScript
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { CountTokensResponse, GenerateContentResponse, GenerateContentParameters, CountTokensParameters, EmbedContentResponse, EmbedContentParameters } from '@google/genai';
import { Config } from '../config/config.js';
import { UserTierId } from '../code_assist/types.js';
/**
* Interface abstracting the core functionalities for generating content and counting tokens.
*/
export interface ContentGenerator {
generateContent(request: GenerateContentParameters, userPromptId: string): Promise<GenerateContentResponse>;
generateContentStream(request: GenerateContentParameters, userPromptId: string): Promise<AsyncGenerator<GenerateContentResponse>>;
countTokens(request: CountTokensParameters): Promise<CountTokensResponse>;
embedContent(request: EmbedContentParameters): Promise<EmbedContentResponse>;
userTier?: UserTierId;
}
export declare enum AuthType {
LOGIN_WITH_GOOGLE = "oauth-personal",
USE_GEMINI = "gemini-api-key",
USE_VERTEX_AI = "vertex-ai",
CLOUD_SHELL = "cloud-shell",
USE_OPENAI = "openai"
}
export type ContentGeneratorConfig = {
model: string;
apiKey?: string;
vertexai?: boolean;
authType?: AuthType | undefined;
enableOpenAILogging?: boolean;
timeout?: number;
maxRetries?: number;
samplingParams?: {
top_p?: number;
top_k?: number;
repetition_penalty?: number;
presence_penalty?: number;
frequency_penalty?: number;
temperature?: number;
max_tokens?: number;
};
proxy?: string | undefined;
};
export declare function createContentGeneratorConfig(config: Config, authType: AuthType | undefined): ContentGeneratorConfig;
export declare function createContentGenerator(config: ContentGeneratorConfig, gcConfig: Config, sessionId?: string, settings?: any): Promise<ContentGenerator>;