@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
TypeScript
/**
* 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;