adpa-enterprise-framework-automation
Version:
Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe
60 lines • 1.98 kB
TypeScript
/**
* Provider Manager for Requirements Gathering Agent
* Handles provider configuration, validation, and failover
*/
interface ProviderConfig {
name: string;
check: () => Promise<boolean>;
priority: number;
description: string;
setupGuide?: string;
endpoint?: string;
tokenLimit: number;
costPerToken?: number;
}
interface ProviderMetrics {
totalRequests: number;
successfulRequests: number;
failedRequests: number;
averageResponseTime: number;
lastError: string | null;
lastErrorTime: Date | null;
tokenUsage: {
total: number;
average: number;
};
}
export declare class ProviderManager {
private providers;
private metrics;
private quotas;
private activeProvider;
private fallbackQueue;
private rateLimiters;
constructor();
private initializeProviders;
private setDefaultQuotas;
private initializeMetrics;
private addProvider;
validateConfigurations(): Promise<Map<string, boolean>>;
getActiveProvider(): string | null;
switchProvider(): Promise<boolean>;
updateMetrics(providerName: string, success: boolean, responseTime: number, tokenCount: number, error?: Error): void;
getProviderMetrics(providerName?: string): Map<string, ProviderMetrics> | ProviderMetrics | null;
getProviderConfig(providerName: string): ProviderConfig | null;
validateProvider(providerName: string): Promise<boolean>;
getTokenLimit(providerName?: string): number;
checkRateLimit(providerName: string): Promise<boolean>;
getDailyTokenUsage(providerName: string): number;
getDailyCost(providerName: string): number;
checkQuota(providerName: string): boolean;
getProviderStatus(providerName: string): {
available: boolean;
withinRateLimit: boolean;
withinQuota: boolean;
quotaRemaining?: number;
estimatedCost?: number;
};
}
export {};
//# sourceMappingURL=ProviderManager.d.ts.map