UNPKG

buroventures-harald-code-core

Version:

Harald Code Core - Core functionality for AI-powered coding assistant

285 lines (284 loc) 10.6 kB
/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { AuthType, ContentGeneratorConfig } from '../core/contentGenerator.js'; import { PromptRegistry } from '../prompts/prompt-registry.js'; import { ToolRegistry } from '../tools/tool-registry.js'; import { GeminiClient } from '../core/client.js'; import { FileDiscoveryService } from '../services/fileDiscoveryService.js'; import { GitService } from '../services/gitService.js'; import { TelemetryTarget } from '../telemetry/index.js'; import { DEFAULT_GEMINI_FLASH_MODEL } from './models.js'; import { MCPOAuthConfig } from '../mcp/oauth-provider.js'; import { IdeClient } from '../ide/ide-client.js'; export type { MCPOAuthConfig }; import { WorkspaceContext } from '../utils/workspaceContext.js'; export declare enum ApprovalMode { DEFAULT = "default", AUTO_EDIT = "autoEdit", YOLO = "yolo" } export interface AccessibilitySettings { disableLoadingPhrases?: boolean; } export interface BugCommandSettings { urlTemplate: string; } export interface SummarizeToolOutputSettings { tokenBudget?: number; } export interface TelemetrySettings { enabled?: boolean; target?: TelemetryTarget; otlpEndpoint?: string; logPrompts?: boolean; outfile?: string; } export interface GeminiCLIExtension { name: string; version: string; isActive: boolean; path: string; } export interface FileFilteringOptions { respectGitIgnore: boolean; respectGeminiIgnore: boolean; } export declare const DEFAULT_MEMORY_FILE_FILTERING_OPTIONS: FileFilteringOptions; export declare const DEFAULT_FILE_FILTERING_OPTIONS: FileFilteringOptions; export declare class MCPServerConfig { readonly command?: string | undefined; readonly args?: string[] | undefined; readonly env?: Record<string, string> | undefined; readonly cwd?: string | undefined; readonly url?: string | undefined; readonly httpUrl?: string | undefined; readonly headers?: Record<string, string> | undefined; readonly tcp?: string | undefined; readonly timeout?: number | undefined; readonly trust?: boolean | undefined; readonly description?: string | undefined; readonly includeTools?: string[] | undefined; readonly excludeTools?: string[] | undefined; readonly extensionName?: string | undefined; readonly oauth?: MCPOAuthConfig | undefined; readonly authProviderType?: AuthProviderType | undefined; constructor(command?: string | undefined, args?: string[] | undefined, env?: Record<string, string> | undefined, cwd?: string | undefined, url?: string | undefined, httpUrl?: string | undefined, headers?: Record<string, string> | undefined, tcp?: string | undefined, timeout?: number | undefined, trust?: boolean | undefined, description?: string | undefined, includeTools?: string[] | undefined, excludeTools?: string[] | undefined, extensionName?: string | undefined, oauth?: MCPOAuthConfig | undefined, authProviderType?: AuthProviderType | undefined); } export declare enum AuthProviderType { DYNAMIC_DISCOVERY = "dynamic_discovery", GOOGLE_CREDENTIALS = "google_credentials" } export interface SandboxConfig { command: 'docker' | 'podman' | 'sandbox-exec'; image: string; } export type FlashFallbackHandler = (currentModel: string, fallbackModel: string, error?: unknown) => Promise<boolean | string | null>; export interface ConfigParameters { sessionId: string; embeddingModel?: string; sandbox?: SandboxConfig; targetDir: string; debugMode: boolean; question?: string; fullContext?: boolean; coreTools?: string[]; excludeTools?: string[]; toolDiscoveryCommand?: string; toolCallCommand?: string; mcpServerCommand?: string; mcpServers?: Record<string, MCPServerConfig>; userMemory?: string; geminiMdFileCount?: number; approvalMode?: ApprovalMode; showMemoryUsage?: boolean; contextFileName?: string | string[]; accessibility?: AccessibilitySettings; telemetry?: TelemetrySettings; usageStatisticsEnabled?: boolean; fileFiltering?: { respectGitIgnore?: boolean; respectGeminiIgnore?: boolean; enableRecursiveFileSearch?: boolean; }; checkpointing?: boolean; proxy?: string; cwd: string; fileDiscoveryService?: FileDiscoveryService; includeDirectories?: string[]; bugCommand?: BugCommandSettings; model: string; extensionContextFilePaths?: string[]; maxSessionTurns?: number; sessionTokenLimit?: number; maxFolderItems?: number; experimentalAcp?: boolean; listExtensions?: boolean; extensions?: GeminiCLIExtension[]; blockedMcpServers?: Array<{ name: string; extensionName: string; }>; noBrowser?: boolean; summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>; ideModeFeature?: boolean; ideMode?: boolean; ideClient?: IdeClient; enableOpenAILogging?: boolean; sampling_params?: Record<string, unknown>; systemPromptMappings?: Array<{ baseUrls: string[]; modelNames: string[]; template: string; }>; contentGenerator?: { timeout?: number; maxRetries?: number; }; settings?: any; } export declare class Config { private toolRegistry; private promptRegistry; private readonly sessionId; private contentGeneratorConfig; private readonly embeddingModel; private readonly sandbox; private readonly targetDir; private workspaceContext; private readonly debugMode; private readonly question; private readonly fullContext; private readonly coreTools; private readonly excludeTools; private readonly toolDiscoveryCommand; private readonly toolCallCommand; private readonly mcpServerCommand; private readonly mcpServers; private userMemory; private geminiMdFileCount; private approvalMode; private readonly showMemoryUsage; private readonly accessibility; private readonly telemetrySettings; private readonly usageStatisticsEnabled; private geminiClient; private readonly fileFiltering; private fileDiscoveryService; private gitService; private readonly checkpointing; private readonly proxy; private readonly cwd; private readonly bugCommand; private readonly model; private readonly extensionContextFilePaths; private readonly noBrowser; private readonly ideModeFeature; private ideMode; private ideClient; private inFallbackMode; private readonly systemPromptMappings?; private readonly maxSessionTurns; private readonly sessionTokenLimit; private readonly maxFolderItems; private readonly listExtensions; private readonly _extensions; private readonly _blockedMcpServers; flashFallbackHandler?: FlashFallbackHandler; private quotaErrorOccurred; private readonly summarizeToolOutput; private readonly experimentalAcp; private readonly enableOpenAILogging; private readonly sampling_params?; private readonly contentGenerator?; private readonly settings?; constructor(params: ConfigParameters); initialize(): Promise<void>; refreshAuth(authMethod: AuthType): Promise<void>; getSessionId(): string; getContentGeneratorConfig(): ContentGeneratorConfig; getModel(): string; setModel(newModel: string): void; isInFallbackMode(): boolean; setFallbackMode(active: boolean): void; setFlashFallbackHandler(handler: FlashFallbackHandler): void; getMaxSessionTurns(): number; getSessionTokenLimit(): number; getMaxFolderItems(): number; setQuotaErrorOccurred(value: boolean): void; getQuotaErrorOccurred(): boolean; getEmbeddingModel(): string; getSandbox(): SandboxConfig | undefined; isRestrictiveSandbox(): boolean; getTargetDir(): string; getProjectRoot(): string; getWorkspaceContext(): WorkspaceContext; getToolRegistry(): Promise<ToolRegistry>; getPromptRegistry(): PromptRegistry; getDebugMode(): boolean; getQuestion(): string | undefined; getFullContext(): boolean; getCoreTools(): string[] | undefined; getExcludeTools(): string[] | undefined; getToolDiscoveryCommand(): string | undefined; getToolCallCommand(): string | undefined; getMcpServerCommand(): string | undefined; getMcpServers(): Record<string, MCPServerConfig> | undefined; getUserMemory(): string; setUserMemory(newUserMemory: string): void; getGeminiMdFileCount(): number; setGeminiMdFileCount(count: number): void; getApprovalMode(): ApprovalMode; setApprovalMode(mode: ApprovalMode): void; getShowMemoryUsage(): boolean; getAccessibility(): AccessibilitySettings; getTelemetryEnabled(): boolean; getTelemetryLogPromptsEnabled(): boolean; getTelemetryOtlpEndpoint(): string; getTelemetryTarget(): TelemetryTarget; getTelemetryOutfile(): string | undefined; getGeminiClient(): GeminiClient; getGeminiDir(): string; getProjectTempDir(): string; getEnableRecursiveFileSearch(): boolean; getFileFilteringRespectGitIgnore(): boolean; getFileFilteringRespectGeminiIgnore(): boolean; getFileFilteringOptions(): FileFilteringOptions; getCheckpointingEnabled(): boolean; getProxy(): string | undefined; getWorkingDir(): string; getBugCommand(): BugCommandSettings | undefined; getFileService(): FileDiscoveryService; getUsageStatisticsEnabled(): boolean; getExtensionContextFilePaths(): string[]; getExperimentalAcp(): boolean; getListExtensions(): boolean; getExtensions(): GeminiCLIExtension[]; getBlockedMcpServers(): Array<{ name: string; extensionName: string; }>; getNoBrowser(): boolean; isBrowserLaunchSuppressed(): boolean; getSummarizeToolOutputConfig(): Record<string, SummarizeToolOutputSettings> | undefined; getIdeModeFeature(): boolean; getIdeClient(): IdeClient; getIdeMode(): boolean; setIdeMode(value: boolean): void; setIdeClientDisconnected(): void; setIdeClientConnected(): void; getEnableOpenAILogging(): boolean; getSamplingParams(): Record<string, unknown> | undefined; getContentGeneratorTimeout(): number | undefined; getContentGeneratorMaxRetries(): number | undefined; getSystemPromptMappings(): Array<{ baseUrls?: string[]; modelNames?: string[]; template?: string; }> | undefined; getGitService(): Promise<GitService>; createToolRegistry(): Promise<ToolRegistry>; } export { DEFAULT_GEMINI_FLASH_MODEL };