UNPKG

@entro314labs/ai-changelog-generator

Version:

AI-powered changelog generator with MCP server support - works with most providers, online and local models

176 lines (175 loc) 5.48 kB
/** * Unified Credential Manager * * Single source of truth for all credential operations. * Manages storage backends, priority system, user preferences, and audit logging. * * Priority System: * 1. User Preference (if explicitly set) * 2. Primary Storage (env, config, keychain) - user-configured * 3. Discovered Storage (gemini-cli, claude-code, etc.) - user opted-in * * Within same priority level: * - OAuth tokens > API keys * - Newer credentials > Older credentials */ /** * Storage type enum */ export declare const StorageType: { ENV: string; CONFIG: string; KEYCHAIN: string; DISCOVERED: string; }; /** * Auth type enum */ export declare const AuthType: { API_KEY: string; OAUTH_TOKEN: string; SERVICE_ACCOUNT: string; }; export declare class UnifiedCredentialManager { [key: string]: any; constructor(options?: Record<string, any>); /** * Get credential for a provider * Returns the active credential based on priority system * * @param {string} provider - Provider name (openai, anthropic, etc.) * @returns {Promise<string|null>} Credential value or null */ getCredential(provider: any): Promise<any>; /** * Get active credential with full metadata * * @param {string} provider - Provider name * @returns {Promise<Object|null>} { value, source, priority, authType, metadata } */ getActiveCredential(provider: any): Promise<any>; /** * Get all available credentials for a provider (for UI display) * * @param {string} provider - Provider name * @returns {Promise<Array>} Array of credential info objects */ getAllCredentialsForProvider(provider: any): Promise<any[]>; getProviderConfig(provider: any): Promise<any>; /** * Internal: Get all credentials for a provider * @private */ _getAllCredentialsForProvider(provider: any): Promise<any[]>; /** * Get credential from specific source * @private */ _getFromSource(provider: any, source: any): Promise<any>; /** * Set credential for a provider * * @param {string} provider - Provider name * @param {string} credential - Credential value * @param {string} storageType - Where to store (env, config, keychain) * @param {Object} metadata - Additional metadata * @returns {Promise<void>} */ setCredential(provider: any, credential: any, storageType: any, metadata?: Record<string, any>): Promise<void>; /** * Delete credential for a provider * * @param {string} provider - Provider name * @param {string} storageType - Which storage to delete from (optional, deletes from all if not specified) * @returns {Promise<boolean>} */ deleteCredential(provider: any, storageType?: any): Promise<boolean>; /** * List all providers with credentials * * @returns {Promise<string[]>} */ listProviders(): Promise<any[]>; /** * Set user preference for provider storage * * @param {string} provider - Provider name * @param {string} storageType - Preferred storage type */ setPreferredSource(provider: any, storageType: any): void; /** * Get user preference for provider storage * * @param {string} provider - Provider name * @returns {string|null} */ getPreferredSource(provider: any): any; clearPreferredSource(provider: any): void; /** * Add discovered credential (from CLI tools, etc.) * * @param {string} provider - Provider name * @param {Object} credential - Credential info */ addDiscoveredCredential(provider: any, credential: any): void; /** * Import discovered credential to primary storage * * @param {string} provider - Provider name * @param {number} discoveryIndex - Which discovered credential to import (default 0) * @param {string} targetStorage - Where to import to (default 'config') * @returns {Promise<boolean>} */ importDiscoveredCredential(provider: any, discoveryIndex?: number, targetStorage?: string): Promise<boolean>; /** * Get credential status for all providers (for UI) * * @returns {Promise<Array>} */ getCredentialStatus(): Promise<any[]>; /** * Log credential usage for audit * * @param {string} provider - Provider name * @param {boolean} success - Whether the operation succeeded * @param {string} error - Error message if failed */ logCredentialUsage(provider: any, success: any, error?: any): void; /** * Get audit log * * @param {Object} filter - Filter options * @returns {Array} */ getAuditLog(filter?: Record<string, any>): any[]; /** * Internal: Add entry to audit log * @private */ _logAudit(entry: any): void; /** * Redact credential value for display * @private */ _redactValue(provider: any, value: any): string; /** * Get human-readable source label * @private */ _getSourceLabel(source: any): any; /** * Get diagnostics information * * @returns {Promise<Object>} */ getDiagnostics(): Promise<{ storageBackends: {}; providers: any[]; userPreferences: { [k: string]: any; }; discoveredCount: any; auditLogSize: any; }>; } export default UnifiedCredentialManager;